package aegon.chrome.net; import aegon.chrome.base.BuildConfig; import aegon.chrome.base.ContextUtils; import aegon.chrome.base.annotations.JNINamespace; import aegon.chrome.base.annotations.NativeClassQualifiedName; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.ProxyInfo; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.text.TextUtils; import android.util.Log; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @JNINamespace("net") public class ProxyChangeListener { static final /* synthetic */ boolean $assertionsDisabled = false; private static final String TAG = "ProxyChangeListener"; private static boolean sEnabled = true; private Delegate mDelegate; private final Handler mHandler; private final Looper mLooper; private long mNativePtr; private ProxyReceiver mProxyReceiver; private BroadcastReceiver mRealProxyReceiver; public interface Delegate { void proxySettingsChanged(); } /* access modifiers changed from: package-private */ public static class ProxyConfig { public static final ProxyConfig DIRECT = new ProxyConfig("", 0, "", new String[0]); public final String[] mExclusionList; public final String mHost; public final String mPacUrl; public final int mPort; public ProxyConfig(String str, int i, String str2, String[] strArr) { this.mHost = str; this.mPort = i; this.mPacUrl = str2; this.mExclusionList = strArr; } /* access modifiers changed from: private */ public static ProxyConfig fromProxyInfo(ProxyInfo proxyInfo) { String str = null; if (proxyInfo == null) { return null; } Uri pacFileUrl = proxyInfo.getPacFileUrl(); String host = proxyInfo.getHost(); int port = proxyInfo.getPort(); if (!Uri.EMPTY.equals(pacFileUrl)) { str = pacFileUrl.toString(); } return new ProxyConfig(host, port, str, proxyInfo.getExclusionList()); } } /* access modifiers changed from: package-private */ public class ProxyReceiver extends BroadcastReceiver { private ProxyReceiver() { } private ProxyConfig extractNewProxy(Intent intent) { Bundle extras = intent.getExtras(); if (extras == null) { return null; } if (Build.VERSION.SDK_INT >= 21) { return ProxyConfig.fromProxyInfo((ProxyInfo) extras.get("android.intent.extra.PROXY_INFO")); } try { Object obj = extras.get("proxy"); if (obj == null) { return null; } Class<?> cls = Class.forName("android.net.ProxyProperties"); Method declaredMethod = cls.getDeclaredMethod("getHost", new Class[0]); Method declaredMethod2 = cls.getDeclaredMethod("getPort", new Class[0]); Method declaredMethod3 = cls.getDeclaredMethod("getExclusionList", new Class[0]); String str = (String) declaredMethod.invoke(obj, new Object[0]); int intValue = ((Integer) declaredMethod2.invoke(obj, new Object[0])).intValue(); String[] split = ((String) declaredMethod3.invoke(obj, new Object[0])).split(","); if (Build.VERSION.SDK_INT >= 19) { String str2 = (String) cls.getDeclaredMethod("getPacFileUrl", new Class[0]).invoke(obj, new Object[0]); if (!TextUtils.isEmpty(str2)) { return new ProxyConfig(str, intValue, str2, split); } } return new ProxyConfig(str, intValue, null, split); } catch (ClassNotFoundException | IllegalAccessException | NoSuchMethodException | NullPointerException | InvocationTargetException e) { Log.e(ProxyChangeListener.TAG, "Using no proxy configuration due to exception:" + e); return null; } } public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.PROXY_CHANGE")) { ProxyChangeListener.this.runOnThread(ProxyChangeListener$ProxyReceiver$$Lambda$1.lambdaFactory$(this, intent)); } } } private ProxyChangeListener() { Looper myLooper = Looper.myLooper(); this.mLooper = myLooper; this.mHandler = new Handler(myLooper); } private void assertOnThread() { if (BuildConfig.DCHECK_IS_ON && !onThread()) { throw new IllegalStateException("Must be called on ProxyChangeListener thread."); } } public static ProxyChangeListener create() { return new ProxyChangeListener(); } public static String getProperty(String str) { return System.getProperty(str); } private ProxyConfig getProxyConfig() { ProxyInfo defaultProxy = ((ConnectivityManager) ContextUtils.getApplicationContext().getSystemService("connectivity")).getDefaultProxy(); return defaultProxy == null ? ProxyConfig.DIRECT : ProxyConfig.fromProxyInfo(defaultProxy); } @NativeClassQualifiedName("ProxyConfigServiceAndroid::JNIDelegate") private native void nativeProxySettingsChanged(long j); @NativeClassQualifiedName("ProxyConfigServiceAndroid::JNIDelegate") private native void nativeProxySettingsChangedTo(long j, String str, int i, String str2, String[] strArr); private boolean onThread() { return this.mLooper == Looper.myLooper(); } /* access modifiers changed from: private */ /* access modifiers changed from: public */ public void proxySettingsChanged(ProxyConfig proxyConfig) { assertOnThread(); if (sEnabled) { Delegate delegate = this.mDelegate; if (delegate != null) { delegate.proxySettingsChanged(); } long j = this.mNativePtr; if (j != 0) { if (proxyConfig != null) { nativeProxySettingsChangedTo(j, proxyConfig.mHost, proxyConfig.mPort, proxyConfig.mPacUrl, proxyConfig.mExclusionList); } else { nativeProxySettingsChanged(j); } } } } private void registerReceiver() { Context applicationContext; BroadcastReceiver broadcastReceiver; assertOnThread(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.PROXY_CHANGE"); this.mProxyReceiver = new ProxyReceiver(); if (Build.VERSION.SDK_INT < 23) { applicationContext = ContextUtils.getApplicationContext(); broadcastReceiver = this.mProxyReceiver; } else { ContextUtils.getApplicationContext().registerReceiver(this.mProxyReceiver, new IntentFilter()); this.mRealProxyReceiver = new ProxyBroadcastReceiver(this); applicationContext = ContextUtils.getApplicationContext(); broadcastReceiver = this.mRealProxyReceiver; } applicationContext.registerReceiver(broadcastReceiver, intentFilter); } /* access modifiers changed from: private */ /* access modifiers changed from: public */ private void runOnThread(Runnable runnable) { if (onThread()) { runnable.run(); } else { this.mHandler.post(runnable); } } public static void setEnabled(boolean z) { sEnabled = z; } private void unregisterReceiver() { assertOnThread(); ContextUtils.getApplicationContext().unregisterReceiver(this.mProxyReceiver); if (this.mRealProxyReceiver != null) { ContextUtils.getApplicationContext().unregisterReceiver(this.mRealProxyReceiver); } this.mProxyReceiver = null; this.mRealProxyReceiver = null; } public void setDelegateForTesting(Delegate delegate) { this.mDelegate = delegate; } public void start(long j) { assertOnThread(); this.mNativePtr = j; registerReceiver(); } public void stop() { assertOnThread(); this.mNativePtr = 0; unregisterReceiver(); } /* access modifiers changed from: package-private */ public void updateProxyConfigFromConnectivityManager() { Runnable lambdaFactory$ = ProxyChangeListener$$Lambda$1.lambdaFactory$(this); runOnThread(lambdaFactory$); this.mHandler.postDelayed(lambdaFactory$, 500); } }