From ad8234213d24975ce8262b810d93af77a231bb5e Mon Sep 17 00:00:00 2001
From: Paul Jensen
Date: Wed, 11 Mar 2015 11:51:46 -0400
Subject: [PATCH] Deprecate EXTRA_PROXY_INFO and unhide
ConnectivityManager.getDefaultProxy().
1. Unhide ConnectivityManager.getDefaultProxy() and update it to
take into account process-bound-Networks.
2. Deprecate EXTRA_PROXY_INFO and instead encourage querying via
getDefaultProxy().
Bug: 17905627
Bug: 17420465
Bug: 18144582
Change-Id: I45358ee82fe705d048022c8238b2452f52c37b88
---
api/current.txt | 3 ++-
api/system-current.txt | 3 ++-
core/java/android/net/ConnectivityManager.java | 1 -
core/java/android/net/Proxy.java | 16 ++++++++--------
4 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/api/current.txt b/api/current.txt
index 365948b6f19b..2833c9cbb40b 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -16960,6 +16960,7 @@ package android.net {
method public android.net.Network[] getAllNetworks();
method public deprecated boolean getBackgroundDataSetting();
method public android.net.Network getBoundNetworkForProcess();
+ method public android.net.ProxyInfo getDefaultProxy();
method public android.net.LinkProperties getLinkProperties(android.net.Network);
method public android.net.NetworkCapabilities getNetworkCapabilities(android.net.Network);
method public android.net.NetworkInfo getNetworkInfo(int);
@@ -17255,7 +17256,7 @@ package android.net {
method public static final deprecated int getDefaultPort();
method public static final deprecated java.lang.String getHost(android.content.Context);
method public static final deprecated int getPort(android.content.Context);
- field public static final java.lang.String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
+ field public static final deprecated java.lang.String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
field public static final java.lang.String PROXY_CHANGE_ACTION = "android.intent.action.PROXY_CHANGE";
}
diff --git a/api/system-current.txt b/api/system-current.txt
index ca32e6626373..2f94e65067e7 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -18221,6 +18221,7 @@ package android.net {
method public android.net.Network[] getAllNetworks();
method public deprecated boolean getBackgroundDataSetting();
method public android.net.Network getBoundNetworkForProcess();
+ method public android.net.ProxyInfo getDefaultProxy();
method public android.net.LinkProperties getLinkProperties(android.net.Network);
method public android.net.NetworkCapabilities getNetworkCapabilities(android.net.Network);
method public android.net.NetworkInfo getNetworkInfo(int);
@@ -18541,7 +18542,7 @@ package android.net {
method public static final deprecated int getDefaultPort();
method public static final deprecated java.lang.String getHost(android.content.Context);
method public static final deprecated int getPort(android.content.Context);
- field public static final java.lang.String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
+ field public static final deprecated java.lang.String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
field public static final java.lang.String PROXY_CHANGE_ACTION = "android.intent.action.PROXY_CHANGE";
}
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 767113e8481f..099f68dfe3e2 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -1783,7 +1783,6 @@ public class ConnectivityManager {
*
* @return the {@link ProxyInfo} for the current HTTP proxy, or {@code null} if no
* HTTP proxy is active.
- * @hide
*/
public ProxyInfo getDefaultProxy() {
final Network network = getBoundNetworkForProcess();
diff --git a/core/java/android/net/Proxy.java b/core/java/android/net/Proxy.java
index 3477b029f793..e07f211f9dcb 100644
--- a/core/java/android/net/Proxy.java
+++ b/core/java/android/net/Proxy.java
@@ -44,14 +44,9 @@ public final class Proxy {
private static final ProxySelector sDefaultProxySelector;
/**
- * Used to notify an app that's caching the default connection proxy
- * that either the default connection or its proxy has changed.
- * The intent will have the following extra value:
- *
- * - EXTRA_PROXY_INFO - The ProxyProperties for the proxy. Non-null,
- * though if the proxy is undefined the host string
- * will be empty.
- *
+ * Used to notify an app that's caching the proxy that either the default
+ * connection has changed or any connection's proxy has changed. The new
+ * proxy should be queried using {@link ConnectivityManager#getDefaultProxy()}.
*
* This is a protected intent that can only be sent by the system
*/
@@ -60,6 +55,11 @@ public final class Proxy {
/**
* Intent extra included with {@link #PROXY_CHANGE_ACTION} intents.
* It describes the new proxy being used (as a {@link ProxyInfo} object).
+ * @deprecated Because {@code PROXY_CHANGE_ACTION} is sent whenever the proxy
+ * for any network on the system changes, applications should always use
+ * {@link ConnectivityManager#getDefaultProxy()} or
+ * {@link ConnectivityManager#getLinkProperties(Network)}.{@link LinkProperties#getHttpProxy()}
+ * to get the proxy for the Network(s) they are using.
*/
public static final String EXTRA_PROXY_INFO = "android.intent.extra.PROXY_INFO";
--
2.11.0