| OLD | NEW | 
| (Empty) |  | 
 |    1 /* | 
 |    2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
 |    3  * Copyright (C) 2006-2014 Eyeo GmbH | 
 |    4  * | 
 |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |    6  * it under the terms of the GNU General Public License version 3 as | 
 |    7  * published by the Free Software Foundation. | 
 |    8  * | 
 |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |   12  * GNU General Public License for more details. | 
 |   13  * | 
 |   14  * You should have received a copy of the GNU General Public License | 
 |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |   16  */ | 
 |   17  | 
 |   18 package org.adblockplus.android.compat; | 
 |   19  | 
 |   20 import android.content.Context; | 
 |   21 import android.net.ConnectivityManager; | 
 |   22  | 
 |   23 public class LinkProperties | 
 |   24 { | 
 |   25   private final Object linkProperties; | 
 |   26  | 
 |   27   public LinkProperties(final Object linkProperties) | 
 |   28   { | 
 |   29     this.linkProperties = linkProperties; | 
 |   30   } | 
 |   31  | 
 |   32   public boolean isValid() | 
 |   33   { | 
 |   34     return this.linkProperties != null; | 
 |   35   } | 
 |   36  | 
 |   37   public static LinkProperties getActiveLinkProperties(final ConnectivityManager
      manager) throws CompatibilityException | 
 |   38   { | 
 |   39     try | 
 |   40     { | 
 |   41       return new LinkProperties( | 
 |   42           manager.getClass() | 
 |   43               .getMethod("getActiveLinkProperties") | 
 |   44               .invoke(manager)); | 
 |   45     } | 
 |   46     catch (final Throwable t) | 
 |   47     { | 
 |   48       throw new CompatibilityException(t); | 
 |   49     } | 
 |   50   } | 
 |   51  | 
 |   52   public static LinkProperties getLinkProperties(final ConnectivityManager manag
     er, final int networkType) throws CompatibilityException | 
 |   53   { | 
 |   54     try | 
 |   55     { | 
 |   56       return new LinkProperties( | 
 |   57           manager.getClass() | 
 |   58               .getMethod("getLinkProperties", int.class) | 
 |   59               .invoke(manager, networkType)); | 
 |   60     } | 
 |   61     catch (final Throwable t) | 
 |   62     { | 
 |   63       throw new CompatibilityException(t); | 
 |   64     } | 
 |   65   } | 
 |   66  | 
 |   67   public static LinkProperties fromContext(final Context context) | 
 |   68   { | 
 |   69     try | 
 |   70     { | 
 |   71       return getActiveLinkProperties(((ConnectivityManager) context.getSystemSer
     vice(Context.CONNECTIVITY_SERVICE))); | 
 |   72     } | 
 |   73     catch (final CompatibilityException e) | 
 |   74     { | 
 |   75       return null; | 
 |   76     } | 
 |   77   } | 
 |   78  | 
 |   79   public Object getLinkProperties() | 
 |   80   { | 
 |   81     return this.linkProperties; | 
 |   82   } | 
 |   83  | 
 |   84   public String getInterfaceName() throws CompatibilityException | 
 |   85   { | 
 |   86     try | 
 |   87     { | 
 |   88       return (String) Class.forName("android.net.LinkProperties") | 
 |   89           .getMethod("getInterfaceName") | 
 |   90           .invoke(this.linkProperties); | 
 |   91     } | 
 |   92     catch (final Throwable t) | 
 |   93     { | 
 |   94       throw new CompatibilityException(t); | 
 |   95     } | 
 |   96   } | 
 |   97  | 
 |   98   public void setHttpProxy(final ProxyProperties proxyProperties) throws Compati
     bilityException | 
 |   99   { | 
 |  100     try | 
 |  101     { | 
 |  102       Class.forName("android.net.LinkProperties") | 
 |  103           .getMethod("setHttpProxy", Class.forName("android.net.ProxyProperties"
     )) | 
 |  104           .invoke(this.linkProperties, proxyProperties != null ? proxyProperties
     .toAndroidNetProxyProperties() : null); | 
 |  105     } | 
 |  106     catch (final CompatibilityException e) | 
 |  107     { | 
 |  108       throw e; | 
 |  109     } | 
 |  110     catch (final Throwable t) | 
 |  111     { | 
 |  112       throw new CompatibilityException(t); | 
 |  113     } | 
 |  114   } | 
 |  115  | 
 |  116   public ProxyProperties getHttpProxy() throws CompatibilityException | 
 |  117   { | 
 |  118     try | 
 |  119     { | 
 |  120       return ProxyProperties.fromObject( | 
 |  121           Class.forName("android.net.LinkProperties") | 
 |  122               .getMethod("getHttpProxy") | 
 |  123               .invoke(this.linkProperties)); | 
 |  124     } | 
 |  125     catch (final CompatibilityException e) | 
 |  126     { | 
 |  127       throw e; | 
 |  128     } | 
 |  129     catch (final Throwable t) | 
 |  130     { | 
 |  131       throw new CompatibilityException(t); | 
 |  132     } | 
 |  133   } | 
 |  134  | 
 |  135   @Override | 
 |  136   public String toString() | 
 |  137   { | 
 |  138     return this.isValid() ? this.linkProperties.toString() : null; | 
 |  139   } | 
 |  140 } | 
| OLD | NEW |