[PT11] Move handleDeprecatedGlobalHttpProxy to ProxyTracker
This contains a significant logic change : it will load the deprecated proxy settings synchronously instead of on the next run loop. I think this is okay because it would happen almost immediately anyway, and there is nothing in ConnectivityService that might be changing this setting in the mean time. As for the possibility that this was executed in the handler because of possible disk access, I want to point out that the loadGlobalProxy method that now calls this was already doing those same similar accesses. Test: runtest Change-Id: Idc6f260e2a337689dc274eb758eb00f6a31089bb
This commit is contained in:
@@ -1798,7 +1798,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
|
||||
private void sendStickyBroadcast(Intent intent) {
|
||||
synchronized (this) {
|
||||
if (!mSystemReady) {
|
||||
if (!mSystemReady
|
||||
&& intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
|
||||
mInitialBroadcast = new Intent(intent);
|
||||
}
|
||||
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
|
||||
@@ -1847,8 +1848,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
mInitialBroadcast = null;
|
||||
}
|
||||
}
|
||||
// load the global proxy at startup
|
||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_APPLY_GLOBAL_HTTP_PROXY));
|
||||
|
||||
// Try bringing up tracker, but KeyStore won't be ready yet for secondary users so wait
|
||||
// for user to unlock device too.
|
||||
@@ -3089,7 +3088,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
break;
|
||||
}
|
||||
case EVENT_APPLY_GLOBAL_HTTP_PROXY: {
|
||||
handleDeprecatedGlobalHttpProxy();
|
||||
mProxyTracker.loadDeprecatedGlobalHttpProxy();
|
||||
break;
|
||||
}
|
||||
case EVENT_PROXY_HAS_CHANGED: {
|
||||
@@ -3483,29 +3482,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
private void handleDeprecatedGlobalHttpProxy() {
|
||||
final String proxy = Settings.Global.getString(mContext.getContentResolver(),
|
||||
Settings.Global.HTTP_PROXY);
|
||||
if (!TextUtils.isEmpty(proxy)) {
|
||||
String data[] = proxy.split(":");
|
||||
if (data.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
final String proxyHost = data[0];
|
||||
int proxyPort = 8080;
|
||||
if (data.length > 1) {
|
||||
try {
|
||||
proxyPort = Integer.parseInt(data[1]);
|
||||
} catch (NumberFormatException e) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
final ProxyInfo p = new ProxyInfo(proxyHost, proxyPort, "");
|
||||
setGlobalProxy(p);
|
||||
}
|
||||
}
|
||||
|
||||
private static class SettingsObserver extends ContentObserver {
|
||||
final private HashMap<Uri, Integer> mUriEventMap;
|
||||
final private Context mContext;
|
||||
|
||||
@@ -167,9 +167,36 @@ public class ProxyTracker {
|
||||
mGlobalProxy = proxyProperties;
|
||||
}
|
||||
}
|
||||
loadDeprecatedGlobalHttpProxy();
|
||||
// TODO : shouldn't this function call mPacManager.setCurrentProxyScriptUrl ?
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the global proxy from the deprecated Settings.Global.HTTP_PROXY setting and apply it.
|
||||
*/
|
||||
public void loadDeprecatedGlobalHttpProxy() {
|
||||
final String proxy = Settings.Global.getString(mContext.getContentResolver(),
|
||||
Settings.Global.HTTP_PROXY);
|
||||
if (!TextUtils.isEmpty(proxy)) {
|
||||
String data[] = proxy.split(":");
|
||||
if (data.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
final String proxyHost = data[0];
|
||||
int proxyPort = 8080;
|
||||
if (data.length > 1) {
|
||||
try {
|
||||
proxyPort = Integer.parseInt(data[1]);
|
||||
} catch (NumberFormatException e) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
final ProxyInfo p = new ProxyInfo(proxyHost, proxyPort, "");
|
||||
setGlobalProxy(p);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the system broadcast informing apps about a new proxy configuration.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user