1 // Copyright 2017 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.net.impl; 6 7 import android.content.Context; 8 9 import org.chromium.net.CronetEngine; 10 import org.chromium.net.CronetProvider; 11 import org.chromium.net.ExperimentalCronetEngine; 12 import org.chromium.net.ICronetEngineBuilder; 13 14 import java.util.Arrays; 15 16 /** 17 * Implementation of {@link CronetProvider} that creates {@link CronetEngine.Builder} 18 * for building the Java-based implementation of {@link CronetEngine}. 19 */ 20 public class JavaCronetProvider extends CronetProvider { 21 /** 22 * Constructor. 23 * 24 * @param context Android context to use. 25 */ JavaCronetProvider(Context context)26 public JavaCronetProvider(Context context) { 27 super(context); 28 } 29 30 @Override createBuilder()31 public CronetEngine.Builder createBuilder() { 32 ICronetEngineBuilder impl = new JavaCronetEngineBuilderImpl(mContext); 33 return new ExperimentalCronetEngine.Builder(impl); 34 } 35 36 @Override getName()37 public String getName() { 38 return CronetProvider.PROVIDER_NAME_FALLBACK; 39 } 40 41 @Override getVersion()42 public String getVersion() { 43 return ImplVersion.getCronetVersion(); 44 } 45 46 @Override isEnabled()47 public boolean isEnabled() { 48 return true; 49 } 50 51 @Override hashCode()52 public int hashCode() { 53 return Arrays.hashCode(new Object[] {JavaCronetProvider.class, mContext}); 54 } 55 56 @Override equals(Object other)57 public boolean equals(Object other) { 58 return other == this 59 || (other instanceof JavaCronetProvider 60 && this.mContext.equals(((JavaCronetProvider) other).mContext)); 61 } 62 } 63