| Index: src/org/adblockplus/android/ProxySettings.java | 
| diff --git a/src/org/adblockplus/android/ProxySettings.java b/src/org/adblockplus/android/ProxySettings.java | 
| deleted file mode 100644 | 
| index 5f08503bbc35381417a18d6cb8e9b7de1f0bd87f..0000000000000000000000000000000000000000 | 
| --- a/src/org/adblockplus/android/ProxySettings.java | 
| +++ /dev/null | 
| @@ -1,248 +0,0 @@ | 
| -/* | 
| - * This file is part of Adblock Plus <http://adblockplus.org/>, | 
| - * Copyright (C) 2006-2014 Eyeo GmbH | 
| - * | 
| - * Adblock Plus is free software: you can redistribute it and/or modify | 
| - * it under the terms of the GNU General Public License version 3 as | 
| - * published by the Free Software Foundation. | 
| - * | 
| - * Adblock Plus is distributed in the hope that it will be useful, | 
| - * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| - * GNU General Public License for more details. | 
| - * | 
| - * You should have received a copy of the GNU General Public License | 
| - * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
| - */ | 
| - | 
| -package org.adblockplus.android; | 
| - | 
| -import java.lang.reflect.Constructor; | 
| -import java.lang.reflect.Method; | 
| - | 
| -import android.content.Context; | 
| -import android.content.Intent; | 
| -import android.net.ConnectivityManager; | 
| -import android.net.NetworkInfo; | 
| -import android.os.Parcelable; | 
| -import android.util.Log; | 
| - | 
| -public class ProxySettings | 
| -{ | 
| -  private static final String TAG = Utils.getTag(ProxySettings.class); | 
| - | 
| -  public static Object getActiveLinkProxy(final ConnectivityManager connectivityManager) throws Exception | 
| -  { | 
| -    /* | 
| -     * LinkProperties lp = connectivityManager.getActiveLinkProperties() | 
| -     */ | 
| -    final Method method = connectivityManager.getClass().getMethod("getActiveLinkProperties"); | 
| -    final Object lp = method.invoke(connectivityManager); | 
| - | 
| -    final Object pp = ProxySettings.getLinkProxy(lp); | 
| -    return pp; | 
| -  } | 
| - | 
| -  /** | 
| -   * Reads proxy settings from link properties on Android 3.1+ using Java | 
| -   * reflection. | 
| -   * | 
| -   * @param linkProperties | 
| -   *          android.net.LinkProperties | 
| -   * @return ProxyProperties | 
| -   * @throws Exception | 
| -   */ | 
| -  public static Object getLinkProxy(final Object linkProperties) throws Exception | 
| -  { | 
| -    /* | 
| -     * linkProperties.getHttpProxy(); | 
| -     */ | 
| -    final Method method = linkProperties.getClass().getMethod("getHttpProxy"); | 
| -    final Object pp = method.invoke(linkProperties); | 
| -    return pp; | 
| -  } | 
| - | 
| -  /** | 
| -   * Reads system proxy settings on Android 3.1+ using Java reflection. | 
| -   * | 
| -   * @return string array of host, port and exclusion list | 
| -   */ | 
| -  public static String[] getUserProxy(final Context context) | 
| -  { | 
| -    Method method = null; | 
| -    try | 
| -    { | 
| -      /* | 
| -       * ProxyProperties proxyProperties = ConnectivityManager.getProxy(); | 
| -       */ | 
| -      method = ConnectivityManager.class.getMethod("getProxy"); | 
| -    } | 
| -    catch (final NoSuchMethodException e) | 
| -    { | 
| -      // This is normal situation for pre-ICS devices | 
| -      return null; | 
| -    } | 
| -    catch (final Exception e) | 
| -    { | 
| -      // This should not happen | 
| -      Log.e(TAG, "getProxy failure", e); | 
| -      return null; | 
| -    } | 
| - | 
| -    try | 
| -    { | 
| -      final ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); | 
| -      final Object pp = method.invoke(connectivityManager); | 
| -      if (pp == null) | 
| -        return null; | 
| - | 
| -      return getUserProxy(pp); | 
| -    } | 
| -    catch (final Exception e) | 
| -    { | 
| -      // This should not happen | 
| -      Log.e(TAG, "getProxy failure", e); | 
| -      return null; | 
| -    } | 
| -  } | 
| - | 
| -  /** | 
| -   * Reads system proxy settings on Android 3.1+ using Java reflection. | 
| -   * | 
| -   * @param pp | 
| -   *          ProxyProperties object | 
| -   * @return string array of host, port and exclusion list | 
| -   * @throws Exception | 
| -   */ | 
| -  protected static String[] getUserProxy(final Object pp) throws Exception | 
| -  { | 
| -    final String[] userProxy = new String[3]; | 
| - | 
| -    final String className = "android.net.ProxyProperties"; | 
| -    final Class<?> c = Class.forName(className); | 
| -    Method method; | 
| - | 
| -    /* | 
| -     * String proxyHost = pp.getHost() | 
| -     */ | 
| -    method = c.getMethod("getHost"); | 
| -    userProxy[0] = (String) method.invoke(pp); | 
| - | 
| -    /* | 
| -     * int proxyPort = pp.getPort(); | 
| -     */ | 
| -    method = c.getMethod("getPort"); | 
| -    userProxy[1] = String.valueOf(method.invoke(pp)); | 
| - | 
| -    /* | 
| -     * String proxyEL = pp.getExclusionList() | 
| -     */ | 
| -    method = c.getMethod("getExclusionList"); | 
| -    userProxy[2] = (String) method.invoke(pp); | 
| - | 
| -    if (userProxy[0] != null) | 
| -      return userProxy; | 
| -    else | 
| -      return null; | 
| -  } | 
| - | 
| -  /** | 
| -   * Tries to set local proxy in system settings via native call on Android 3.1+ | 
| -   * devices using Java reflection. | 
| -   * | 
| -   * @return true if device supports native proxy setting | 
| -   */ | 
| -  public static boolean setConnectionProxy(final Context context, final String host, final int port, final String excl) | 
| -  { | 
| -    Method method = null; | 
| -    try | 
| -    { | 
| -      /* | 
| -       * android.net.LinkProperties lp = | 
| -       * ConnectivityManager.getActiveLinkProperties(); | 
| -       */ | 
| -      method = ConnectivityManager.class.getMethod("getActiveLinkProperties"); | 
| -    } | 
| -    catch (final NoSuchMethodException e) | 
| -    { | 
| -      // This is normal situation for pre-ICS devices | 
| -      return false; | 
| -    } | 
| -    catch (final Exception e) | 
| -    { | 
| -      // This should not happen | 
| -      Log.e(TAG, "setHttpProxy failure", e); | 
| -      return false; | 
| -    } | 
| -    try | 
| -    { | 
| -      final ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); | 
| -      final Object lp = method.invoke(connectivityManager); | 
| -      // There is no active link now, but device has native proxy support | 
| -      if (lp == null) | 
| -        return true; | 
| - | 
| -      final String className = "android.net.ProxyProperties"; | 
| -      final Class<?> c = Class.forName(className); | 
| -      method = lp.getClass().getMethod("setHttpProxy", c); | 
| -      if (host != null) | 
| -      { | 
| -        /* | 
| -         * ProxyProperties pp = new ProxyProperties(host, port, excl); | 
| -         */ | 
| -        final Class<?>[] parameter = new Class[] { String.class, int.class, String.class }; | 
| -        final Object args[] = new Object[3]; | 
| -        args[0] = host; | 
| -        args[1] = Integer.valueOf(port); | 
| -        args[2] = excl; | 
| -        final Constructor<?> cons = c.getConstructor(parameter); | 
| -        final Object pp = cons.newInstance(args); | 
| -        /* | 
| -         * lp.setHttpProxy(pp); | 
| -         */ | 
| -        method.invoke(lp, pp); | 
| -      } | 
| -      else | 
| -      { | 
| -        /* | 
| -         * lp.setHttpProxy(null); | 
| -         */ | 
| -        method.invoke(lp, new Object[] { null }); | 
| -      } | 
| - | 
| -      Intent intent = null; | 
| -      final NetworkInfo ni = connectivityManager.getActiveNetworkInfo(); | 
| -      switch (ni.getType()) | 
| -      { | 
| -        case ConnectivityManager.TYPE_WIFI: | 
| -          intent = new Intent("android.net.wifi.LINK_CONFIGURATION_CHANGED"); | 
| -          break; | 
| -        case ConnectivityManager.TYPE_MOBILE: | 
| -          // TODO We leave it here for future, it does not work now | 
| -          // intent = new Intent("android.intent.action.ANY_DATA_STATE"); | 
| -          break; | 
| -      } | 
| -      if (intent != null) | 
| -      { | 
| -        if (lp != null) | 
| -        { | 
| -          intent.putExtra("linkProperties", (Parcelable) lp); | 
| -        } | 
| -        context.sendBroadcast(intent); | 
| -      } | 
| - | 
| -      return true; | 
| -    } | 
| -    catch (final SecurityException e) | 
| -    { | 
| -      // This is ok for 4.1.2+, 4.2.2+ and later | 
| -      return false; | 
| -    } | 
| -    catch (final Exception e) | 
| -    { | 
| -      // This should not happen | 
| -      Log.e(TAG, "setHttpProxy failure", e); | 
| -      return false; | 
| -    } | 
| -  } | 
| -} | 
|  |