[PT05] Move sendProxyBroadcast into ProxyTracker.
Test: runtest
Change-Id: I2c149d29d4b75d3978021b940b6bc58f677b8d17
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 76a4078..3d923a9 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -3341,7 +3341,7 @@
if (mProxyTracker.mGlobalProxy == null) {
proxyProperties = mProxyTracker.mDefaultProxy;
}
- sendProxyBroadcast(proxyProperties);
+ mProxyTracker.sendProxyBroadcast(proxyProperties);
}
}
@@ -3400,14 +3400,14 @@
&& (!Uri.EMPTY.equals(proxy.getPacFileUrl()))
&& proxy.getPacFileUrl().equals(mProxyTracker.mGlobalProxy.getPacFileUrl())) {
mProxyTracker.mGlobalProxy = proxy;
- sendProxyBroadcast(mProxyTracker.mGlobalProxy);
+ mProxyTracker.sendProxyBroadcast(mProxyTracker.mGlobalProxy);
return;
}
mProxyTracker.mDefaultProxy = proxy;
if (mProxyTracker.mGlobalProxy != null) return;
if (!mProxyTracker.mDefaultProxyDisabled) {
- sendProxyBroadcast(proxy);
+ mProxyTracker.sendProxyBroadcast(proxy);
}
}
}
@@ -3422,7 +3422,7 @@
ProxyInfo oldProxyInfo = oldLp == null ? null : oldLp.getHttpProxy();
if (!ProxyTracker.proxyInfoEqual(newProxyInfo, oldProxyInfo)) {
- sendProxyBroadcast(mProxyTracker.getDefaultProxy());
+ mProxyTracker.sendProxyBroadcast(mProxyTracker.getDefaultProxy());
}
}
@@ -3449,22 +3449,6 @@
}
}
- private void sendProxyBroadcast(ProxyInfo proxy) {
- if (proxy == null) proxy = new ProxyInfo("", 0, "");
- if (mProxyTracker.setCurrentProxyScriptUrl(proxy)) return;
- if (DBG) log("sending Proxy Broadcast for " + proxy);
- Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
- intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
- Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
- intent.putExtra(Proxy.EXTRA_PROXY_INFO, proxy);
- final long ident = Binder.clearCallingIdentity();
- try {
- mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private static class SettingsObserver extends ContentObserver {
final private HashMap<Uri, Integer> mUriEventMap;
final private Context mContext;
@@ -5483,7 +5467,7 @@
mProxyTracker.mDefaultProxyDisabled = true;
if (mProxyTracker.mGlobalProxy == null
&& mProxyTracker.mDefaultProxy != null) {
- sendProxyBroadcast(null);
+ mProxyTracker.sendProxyBroadcast(null);
}
}
}
@@ -5513,7 +5497,7 @@
mProxyTracker.mDefaultProxyDisabled = false;
if (mProxyTracker.mGlobalProxy == null
&& mProxyTracker.mDefaultProxy != null) {
- sendProxyBroadcast(mProxyTracker.mDefaultProxy);
+ mProxyTracker.sendProxyBroadcast(mProxyTracker.mDefaultProxy);
}
}
}
diff --git a/services/core/java/com/android/server/connectivity/ProxyTracker.java b/services/core/java/com/android/server/connectivity/ProxyTracker.java
index c41779a..89cacdc 100644
--- a/services/core/java/com/android/server/connectivity/ProxyTracker.java
+++ b/services/core/java/com/android/server/connectivity/ProxyTracker.java
@@ -19,10 +19,15 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
+import android.content.Intent;
+import android.net.Proxy;
import android.net.ProxyInfo;
import android.net.Uri;
+import android.os.Binder;
import android.os.Handler;
+import android.os.UserHandle;
import android.text.TextUtils;
+import android.util.Slog;
import com.android.internal.annotations.GuardedBy;
@@ -34,6 +39,12 @@
* @hide
*/
public class ProxyTracker {
+ private static final String TAG = ProxyTracker.class.getSimpleName();
+ private static final boolean DBG = true;
+
+ @NonNull
+ private final Context mContext;
+
// TODO : make this private and import as much managing logic from ConnectivityService as
// possible
@NonNull
@@ -52,6 +63,7 @@
public ProxyTracker(@NonNull final Context context,
@NonNull final Handler connectivityServiceInternalHandler, final int pacChangedEvent) {
+ mContext = context;
mPacManager = new PacManager(context, connectivityServiceInternalHandler, pacChangedEvent);
}
@@ -105,4 +117,21 @@
public boolean setCurrentProxyScriptUrl(@NonNull final ProxyInfo proxy) {
return mPacManager.setCurrentProxyScriptUrl(proxy);
}
+
+ // TODO : make the argument NonNull final
+ public void sendProxyBroadcast(@Nullable ProxyInfo proxy) {
+ if (proxy == null) proxy = new ProxyInfo("", 0, "");
+ if (setCurrentProxyScriptUrl(proxy)) return;
+ if (DBG) Slog.d(TAG, "sending Proxy Broadcast for " + proxy);
+ Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
+ intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
+ Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+ intent.putExtra(Proxy.EXTRA_PROXY_INFO, proxy);
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
}