[PT05] Move sendProxyBroadcast into ProxyTracker.
Test: runtest Change-Id: I2c149d29d4b75d3978021b940b6bc58f677b8d17
This commit is contained in:
@@ -3341,7 +3341,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
if (mProxyTracker.mGlobalProxy == null) {
|
if (mProxyTracker.mGlobalProxy == null) {
|
||||||
proxyProperties = mProxyTracker.mDefaultProxy;
|
proxyProperties = mProxyTracker.mDefaultProxy;
|
||||||
}
|
}
|
||||||
sendProxyBroadcast(proxyProperties);
|
mProxyTracker.sendProxyBroadcast(proxyProperties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3400,14 +3400,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
&& (!Uri.EMPTY.equals(proxy.getPacFileUrl()))
|
&& (!Uri.EMPTY.equals(proxy.getPacFileUrl()))
|
||||||
&& proxy.getPacFileUrl().equals(mProxyTracker.mGlobalProxy.getPacFileUrl())) {
|
&& proxy.getPacFileUrl().equals(mProxyTracker.mGlobalProxy.getPacFileUrl())) {
|
||||||
mProxyTracker.mGlobalProxy = proxy;
|
mProxyTracker.mGlobalProxy = proxy;
|
||||||
sendProxyBroadcast(mProxyTracker.mGlobalProxy);
|
mProxyTracker.sendProxyBroadcast(mProxyTracker.mGlobalProxy);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mProxyTracker.mDefaultProxy = proxy;
|
mProxyTracker.mDefaultProxy = proxy;
|
||||||
|
|
||||||
if (mProxyTracker.mGlobalProxy != null) return;
|
if (mProxyTracker.mGlobalProxy != null) return;
|
||||||
if (!mProxyTracker.mDefaultProxyDisabled) {
|
if (!mProxyTracker.mDefaultProxyDisabled) {
|
||||||
sendProxyBroadcast(proxy);
|
mProxyTracker.sendProxyBroadcast(proxy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3422,7 +3422,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
ProxyInfo oldProxyInfo = oldLp == null ? null : oldLp.getHttpProxy();
|
ProxyInfo oldProxyInfo = oldLp == null ? null : oldLp.getHttpProxy();
|
||||||
|
|
||||||
if (!ProxyTracker.proxyInfoEqual(newProxyInfo, oldProxyInfo)) {
|
if (!ProxyTracker.proxyInfoEqual(newProxyInfo, oldProxyInfo)) {
|
||||||
sendProxyBroadcast(mProxyTracker.getDefaultProxy());
|
mProxyTracker.sendProxyBroadcast(mProxyTracker.getDefaultProxy());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3449,22 +3449,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
private static class SettingsObserver extends ContentObserver {
|
||||||
final private HashMap<Uri, Integer> mUriEventMap;
|
final private HashMap<Uri, Integer> mUriEventMap;
|
||||||
final private Context mContext;
|
final private Context mContext;
|
||||||
@@ -5483,7 +5467,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mProxyTracker.mDefaultProxyDisabled = true;
|
mProxyTracker.mDefaultProxyDisabled = true;
|
||||||
if (mProxyTracker.mGlobalProxy == null
|
if (mProxyTracker.mGlobalProxy == null
|
||||||
&& mProxyTracker.mDefaultProxy != null) {
|
&& mProxyTracker.mDefaultProxy != null) {
|
||||||
sendProxyBroadcast(null);
|
mProxyTracker.sendProxyBroadcast(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5513,7 +5497,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mProxyTracker.mDefaultProxyDisabled = false;
|
mProxyTracker.mDefaultProxyDisabled = false;
|
||||||
if (mProxyTracker.mGlobalProxy == null
|
if (mProxyTracker.mGlobalProxy == null
|
||||||
&& mProxyTracker.mDefaultProxy != null) {
|
&& mProxyTracker.mDefaultProxy != null) {
|
||||||
sendProxyBroadcast(mProxyTracker.mDefaultProxy);
|
mProxyTracker.sendProxyBroadcast(mProxyTracker.mDefaultProxy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,15 @@ package com.android.server.connectivity;
|
|||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.Proxy;
|
||||||
import android.net.ProxyInfo;
|
import android.net.ProxyInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Binder;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Slog;
|
||||||
|
|
||||||
import com.android.internal.annotations.GuardedBy;
|
import com.android.internal.annotations.GuardedBy;
|
||||||
|
|
||||||
@@ -34,6 +39,12 @@ import java.util.Objects;
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public class ProxyTracker {
|
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
|
// TODO : make this private and import as much managing logic from ConnectivityService as
|
||||||
// possible
|
// possible
|
||||||
@NonNull
|
@NonNull
|
||||||
@@ -52,6 +63,7 @@ public class ProxyTracker {
|
|||||||
|
|
||||||
public ProxyTracker(@NonNull final Context context,
|
public ProxyTracker(@NonNull final Context context,
|
||||||
@NonNull final Handler connectivityServiceInternalHandler, final int pacChangedEvent) {
|
@NonNull final Handler connectivityServiceInternalHandler, final int pacChangedEvent) {
|
||||||
|
mContext = context;
|
||||||
mPacManager = new PacManager(context, connectivityServiceInternalHandler, pacChangedEvent);
|
mPacManager = new PacManager(context, connectivityServiceInternalHandler, pacChangedEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,4 +117,21 @@ public class ProxyTracker {
|
|||||||
public boolean setCurrentProxyScriptUrl(@NonNull final ProxyInfo proxy) {
|
public boolean setCurrentProxyScriptUrl(@NonNull final ProxyInfo proxy) {
|
||||||
return mPacManager.setCurrentProxyScriptUrl(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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user