diff options
Diffstat (limited to 'core/java/android/app')
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 6b4db10..bcd8fb4 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -44,7 +44,10 @@ import android.database.sqlite.SQLiteDebug.DbStats; import android.graphics.Bitmap; import android.graphics.Canvas; import android.hardware.display.DisplayManagerGlobal; +import android.net.ConnectivityManager; import android.net.IConnectivityManager; +import android.net.LinkProperties; +import android.net.Network; import android.net.Proxy; import android.net.ProxyInfo; import android.net.Uri; @@ -839,7 +842,13 @@ public final class ActivityThread { } public void setHttpProxy(String host, String port, String exclList, Uri pacFileUrl) { - Proxy.setHttpProxySystemProperty(host, port, exclList, pacFileUrl); + final Network network = ConnectivityManager.getProcessDefaultNetwork(); + if (network != null) { + Proxy.setHttpProxySystemProperty( + ConnectivityManager.from(getSystemContext()).getDefaultProxy()); + } else { + Proxy.setHttpProxySystemProperty(host, port, exclList, pacFileUrl); + } } public void processInBackground() { @@ -4430,7 +4439,7 @@ public final class ActivityThread { // crash if we can't get it. IConnectivityManager service = IConnectivityManager.Stub.asInterface(b); try { - ProxyInfo proxyInfo = service.getProxy(); + final ProxyInfo proxyInfo = service.getDefaultProxy(); Proxy.setHttpProxySystemProperty(proxyInfo); } catch (RemoteException e) {} } |
