blob: 5dc28d86591f45726c389d34f5462b676962683e [file] [log] [blame]
Pragnya Paramitad7c397d2015-12-08 16:16:23 +05301/*
2 ** Copyright (c) 2015, The Linux Foundation. All rights reserved.
3
4 ** Redistribution and use in source and binary forms, with or without
5 ** modification, are permitted provided that the following conditions are
6 ** met:
7 ** * Redistributions of source code must retain the above copyright
8 ** notice, this list of conditions and the following disclaimer.
9 ** * Redistributions in binary form must reproduce the above
10 ** copyright notice, this list of conditions and the following
11 ** disclaimer in the documentation and/or other materials provided
12 ** with the distribution.
13 ** * Neither the name of The Linux Foundation nor the names of its
14 ** contributors may be used to endorse or promote products derived
15 ** from this software without specific prior written permission.
16
17 ** THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 ** BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 ** BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 ** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 ** OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 ** IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30package org.apache.http.impl.client;
31
32import java.lang.reflect.Method;
33import java.lang.reflect.InvocationTargetException;
34
35public final class ZeroBalanceHelperClass {
36
37 protected static boolean getFeatureFlagValue() {
38 try {
39 Class<?> ZeroBalanceHelper = Class
40 .forName("android.net.ZeroBalanceHelper");
41 Object helperObject = ZeroBalanceHelper.newInstance();
42 boolean isFeatureEnabled = false;
43 Method featureFlagValue = ZeroBalanceHelper.getMethod(
44 "getFeatureConfigValue");
45 featureFlagValue.setAccessible(true);
46 isFeatureEnabled = (Boolean)featureFlagValue.invoke(helperObject);
47 return isFeatureEnabled;
48 } catch (ClassNotFoundException ex) {
49 ex.printStackTrace();
50 } catch (LinkageError ex) {
51 ex.printStackTrace();
52 } catch (NoSuchMethodException ex) {
53 ex.printStackTrace();
54 } catch (InstantiationException ex) {
55 ex.printStackTrace();
56 } catch (IllegalAccessException ex) {
57 ex.printStackTrace();
58 } catch (InvocationTargetException ex) {
59 ex.printStackTrace();
60 }
61 return false;
62 }
63
64 protected static boolean getBackgroundDataProperty() {
65 try {
66 Class<?> ZeroBalanceHelper = Class
67 .forName("android.net.ZeroBalanceHelper");
68 Object helperObject = ZeroBalanceHelper.newInstance();
69 boolean isDisabled = false;
70 Method bgDataProperty = ZeroBalanceHelper.getMethod(
71 "getBgDataProperty");
72 bgDataProperty.setAccessible(true);
73 isDisabled = Boolean.valueOf(((String)bgDataProperty.invoke(helperObject)));
74 return isDisabled;
75 } catch (ClassNotFoundException ex) {
76 ex.printStackTrace();
77 } catch (LinkageError ex) {
78 ex.printStackTrace();
79 } catch (NoSuchMethodException ex) {
80 ex.printStackTrace();
81 } catch (InstantiationException ex) {
82 ex.printStackTrace();
83 } catch (IllegalAccessException ex) {
84 ex.printStackTrace();
85 } catch (InvocationTargetException ex) {
86 ex.printStackTrace();
87 }
88 return false;
89 }
90
91 protected static void setHttpRedirectCount(String url) {
92 try {
93 Class<?> ZeroBalanceHelper = Class
94 .forName("android.net.ZeroBalanceHelper");
95 Object helperObject = ZeroBalanceHelper.newInstance();
96 Method setHttpRedirectCount = ZeroBalanceHelper.getMethod(
97 "setHttpRedirectCount", String.class);
98 setHttpRedirectCount.setAccessible(true);
99 setHttpRedirectCount.invoke(helperObject, url);
100 } catch (ClassNotFoundException ex) {
101 ex.printStackTrace();
102 } catch (LinkageError ex) {
103 ex.printStackTrace();
104 } catch (NoSuchMethodException ex) {
105 ex.printStackTrace();
106 } catch (InstantiationException ex) {
107 ex.printStackTrace();
108 } catch (IllegalAccessException ex) {
109 ex.printStackTrace();
110 } catch (InvocationTargetException ex) {
111 ex.printStackTrace();
112 }
113 }
114}