1 // Copyright 2014 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.cronet_sample_apk; 6 7 import android.app.Application; 8 9 import androidx.annotation.OptIn; 10 11 import org.chromium.net.ConnectionMigrationOptions; 12 import org.chromium.net.CronetEngine; 13 import org.chromium.net.DnsOptions; 14 import org.chromium.net.QuicOptions; 15 16 /** Application for managing the Cronet Sample. */ 17 public class CronetSampleApplication extends Application { 18 private CronetEngine mCronetEngine; 19 20 @Override onCreate()21 public void onCreate() { 22 super.onCreate(); 23 CronetEngine.Builder myBuilder = new CronetEngine.Builder(this); 24 myBuilder 25 .enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 100 * 1024) 26 .enableHttp2(true) 27 .enableQuic(true); 28 mCronetEngine = myBuilder.build(); 29 } 30 getCronetEngine()31 public CronetEngine getCronetEngine() { 32 return mCronetEngine; 33 } 34 35 @OptIn( 36 markerClass = { 37 org.chromium.net.QuicOptions.Experimental.class, 38 org.chromium.net.ConnectionMigrationOptions.Experimental.class 39 }) restartCronetEngine()40 public void restartCronetEngine() { 41 mCronetEngine.shutdown(); 42 CronetEngine.Builder myBuilder = new CronetEngine.Builder(this); 43 ConnectionMigrationOptions.Builder connecMigrationBuilder = 44 ConnectionMigrationOptions.builder(); 45 QuicOptions.Builder quicOptionsBuilder = QuicOptions.builder(); 46 DnsOptions.Builder dnsOptionsBuilder = DnsOptions.builder(); 47 ActionData actionData = 48 (new ActionData.Builder()) 49 .setCronetEngineBuilder(myBuilder) 50 .setMigrationBuilder(connecMigrationBuilder) 51 .setQuicBuilder(quicOptionsBuilder) 52 .setDnsBuilder(dnsOptionsBuilder) 53 .build(); 54 for (Options.Option<?> option : Options.getOptions()) { 55 option.configure(actionData); 56 } 57 mCronetEngine = 58 myBuilder 59 .setConnectionMigrationOptions(connecMigrationBuilder) 60 .setQuicOptions(quicOptionsBuilder) 61 .setDnsOptions(dnsOptionsBuilder) 62 .enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 100 * 1024) 63 .enableHttp2(true) 64 .enableQuic(true) 65 .build(); 66 } 67 } 68