diff options
author | sgurun@chromium.org <sgurun@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-30 20:19:58 +0000 |
---|---|---|
committer | sgurun@chromium.org <sgurun@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-30 20:19:58 +0000 |
commit | dda20cf7d744030a2764d8359d2b348600df3652 (patch) | |
tree | 869c7b156f4562fd1ae6725ac198f9a62fe7e48f /net | |
parent | 09c1e73c0875f053fb97ca008b8eb1cc1723fc62 (diff) | |
download | chromium_src-dda20cf7d744030a2764d8359d2b348600df3652.zip chromium_src-dda20cf7d744030a2764d8359d2b348600df3652.tar.gz chromium_src-dda20cf7d744030a2764d8359d2b348600df3652.tar.bz2 |
Start using L preview API for receiving proxy information.
BUG=398612
Android L preview API added a proxyinfo class for receiving proxy
information. start using it.
Review URL: https://codereview.chromium.org/426063006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286588 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/android/java/src/org/chromium/net/ProxyChangeListener.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/net/android/java/src/org/chromium/net/ProxyChangeListener.java b/net/android/java/src/org/chromium/net/ProxyChangeListener.java index 634c379..7b57396 100644 --- a/net/android/java/src/org/chromium/net/ProxyChangeListener.java +++ b/net/android/java/src/org/chromium/net/ProxyChangeListener.java @@ -9,6 +9,8 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Proxy; +import android.os.Build; +import android.util.Log; import org.chromium.base.CalledByNative; import org.chromium.base.JNINamespace; @@ -92,18 +94,23 @@ public class ProxyChangeListener { // tne Android SDK, so we have to use reflection to get at it and invoke // methods on it. If we fail, return an empty proxy config (meaning // 'direct'). - // TODO(ellyjones): once android.net.ProxyProperties is exported, - // rewrite this. + // TODO(sgurun): once android.net.ProxyInfo is public, rewrite this. private ProxyConfig extractNewProxy(Intent intent) { try { - final String CLASS_NAME = "android.net.ProxyProperties"; final String GET_HOST_NAME = "getHost"; final String GET_PORT_NAME = "getPort"; Object props = intent.getExtras().get("proxy"); if (props == null) { return null; } - Class<?> cls = Class.forName(CLASS_NAME); + String className; + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) { + className = "android.net.ProxyProperties"; + } else { + className = "android.net.ProxyInfo"; + } + + Class<?> cls = Class.forName(className); Method getHostMethod = cls.getDeclaredMethod(GET_HOST_NAME); Method getPortMethod = cls.getDeclaredMethod(GET_PORT_NAME); @@ -112,14 +119,19 @@ public class ProxyChangeListener { return new ProxyConfig(host, port); } catch (ClassNotFoundException ex) { + Log.e(TAG, "Using no proxy configuration due to exception:" + ex); return null; } catch (NoSuchMethodException ex) { + Log.e(TAG, "Using no proxy configuration due to exception:" + ex); return null; } catch (IllegalAccessException ex) { + Log.e(TAG, "Using no proxy configuration due to exception:" + ex); return null; } catch (InvocationTargetException ex) { + Log.e(TAG, "Using no proxy configuration due to exception:" + ex); return null; } catch (NullPointerException ex) { + Log.e(TAG, "Using no proxy configuration due to exception:" + ex); return null; } } |