OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 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 | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU General Public License | 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/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
16 */ | 16 */ |
17 | 17 |
18 package org.adblockplus.browser; | 18 package org.adblockplus.browser; |
19 | 19 |
| 20 import java.util.HashMap; |
| 21 import java.util.Map; |
| 22 |
20 import android.annotation.SuppressLint; | 23 import android.annotation.SuppressLint; |
21 import android.os.Handler; | 24 import android.os.Handler; |
22 import android.os.HandlerThread; | 25 import android.os.HandlerThread; |
23 import android.util.Log; | 26 import android.util.Log; |
24 | 27 |
25 import org.json.JSONException; | 28 import org.json.JSONException; |
26 import org.json.JSONObject; | 29 import org.json.JSONObject; |
27 import org.mozilla.gecko.GeckoAppShell; | 30 import org.mozilla.gecko.GeckoAppShell; |
28 import org.mozilla.gecko.util.GeckoRequest; | 31 import org.mozilla.gecko.util.GeckoRequest; |
29 import org.mozilla.gecko.util.NativeJSObject; | 32 import org.mozilla.gecko.util.NativeJSObject; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 public static void setBoolean(final AdblockPlusApiCallback callback, final Str
ing name, | 130 public static void setBoolean(final AdblockPlusApiCallback callback, final Str
ing name, |
128 final boolean enable) | 131 final boolean enable) |
129 { | 132 { |
130 Log.d(TAG, "setBoolean " + enable + " for " + name); | 133 Log.d(TAG, "setBoolean " + enable + " for " + name); |
131 GeckoAppShell.sendRequestToGecko( | 134 GeckoAppShell.sendRequestToGecko( |
132 new ChainedRequest( | 135 new ChainedRequest( |
133 createRequestData("set" + makeFirstCharacterUppercase(name), enable)
, | 136 createRequestData("set" + makeFirstCharacterUppercase(name), enable)
, |
134 callback)); | 137 callback)); |
135 } | 138 } |
136 | 139 |
137 private static void sendSubscriptionRequest(final AdblockPlusApiCallback callb
ack, | 140 private static void callFunction(final AdblockPlusApiCallback callback, final
String name, |
138 final String action, final String url, final String title) | 141 final Map<String, Object> parameters) |
139 { | 142 { |
140 final JSONObject obj = createRequestData(action); | 143 final JSONObject requestData = createRequestData(name); |
141 try | 144 try |
142 { | 145 { |
143 obj.put("url", url); | 146 for (Map.Entry<String, Object> entry : parameters.entrySet()) |
144 if (title != null) | 147 requestData.put(entry.getKey(), entry.getValue()); |
145 { | |
146 obj.put("title", title); | |
147 } | |
148 } | 148 } |
149 catch (JSONException e) | 149 catch (JSONException e) |
150 { | 150 { |
151 // we're only adding sane objects | 151 // we're only adding sane objects |
152 Log.e(TAG, "Creating request data failed with: " + e.getMessage(), e); | 152 Log.e(TAG, "Creating request data failed with: " + e.getMessage(), e); |
153 } | 153 } |
154 GeckoAppShell.sendRequestToGecko(new ChainedRequest(obj, callback)); | 154 GeckoAppShell.sendRequestToGecko(new ChainedRequest(requestData, callback)); |
155 } | 155 } |
156 | 156 |
157 public static void querySubscriptionListStatus(final AdblockPlusApiCallback ca
llback, | 157 public static void querySubscriptionListStatus(final AdblockPlusApiCallback ca
llback, |
158 final String url) | 158 final String url) |
159 { | 159 { |
160 Log.d(TAG, "querySubscriptionListStatus for " + url); | 160 Log.d(TAG, "querySubscriptionListStatus for " + url); |
161 sendSubscriptionRequest(callback, "isSubscriptionListed", url, null); | 161 final Map<String, Object> parameters = new HashMap<String, Object>(); |
| 162 parameters.put("url", url); |
| 163 callFunction(callback, "isSubscriptionListed", parameters); |
162 } | 164 } |
163 | 165 |
164 public static void addSubscription(final AdblockPlusApiCallback callback, | 166 public static void addSubscription(final AdblockPlusApiCallback callback, |
165 final String url, final String title) | 167 final String url, final String title) |
166 { | 168 { |
167 Log.d(TAG, "addSubscription for " + url + " (" + title + ")"); | 169 Log.d(TAG, "addSubscription for " + url + " (" + title + ")"); |
168 sendSubscriptionRequest(callback, "addSubscription", url, title); | 170 final Map<String, Object> parameters = new HashMap<String, Object>(); |
| 171 parameters.put("url", url); |
| 172 parameters.put("title", title); |
| 173 callFunction(callback, "addSubscription", parameters); |
169 } | 174 } |
170 | 175 |
171 public static void removeSubscription(final AdblockPlusApiCallback callback, | 176 public static void removeSubscription(final AdblockPlusApiCallback callback, |
172 final String url) | 177 final String url) |
173 { | 178 { |
174 Log.d(TAG, "removeSubscription for " + url); | 179 Log.d(TAG, "removeSubscription for " + url); |
175 sendSubscriptionRequest(callback, "removeSubscription", url, null); | 180 final Map<String, Object> parameters = new HashMap<String, Object>(); |
| 181 parameters.put("url", url); |
| 182 callFunction(callback, "removeSubscription", parameters); |
| 183 } |
| 184 |
| 185 public static void queryIsLocal(final AdblockPlusApiCallback callback, |
| 186 final String url) |
| 187 { |
| 188 Log.d(TAG, "queryIsLocal for " + url); |
| 189 final Map<String, Object> parameters = new HashMap<String, Object>(); |
| 190 parameters.put("url", url); |
| 191 callFunction(callback, "isLocal", parameters); |
| 192 } |
| 193 |
| 194 public static void queryIsPageWhitelisted(final AdblockPlusApiCallback callbac
k, |
| 195 final String url) |
| 196 { |
| 197 Log.d(TAG, "queryIsPageWhitelisted for " + url); |
| 198 final Map<String, Object> parameters = new HashMap<String, Object>(); |
| 199 parameters.put("url", url); |
| 200 callFunction(callback, "isPageWhitelisted", parameters); |
| 201 } |
| 202 |
| 203 public static void whitelistSite(final AdblockPlusApiCallback callback, final
String url, |
| 204 final boolean whitelisted) |
| 205 { |
| 206 Log.d(TAG, "whitelistSite for " + url); |
| 207 final Map<String, Object> parameters = new HashMap<String, Object>(); |
| 208 parameters.put("url", url); |
| 209 parameters.put("whitelisted", whitelisted); |
| 210 callFunction(callback, "whitelistSite", parameters); |
176 } | 211 } |
177 | 212 |
178 private static class ChainedRequest extends GeckoRequest | 213 private static class ChainedRequest extends GeckoRequest |
179 { | 214 { |
180 private final JSONObject value; | 215 private final JSONObject value; |
181 private final AdblockPlusApiCallback apiCallback; | 216 private final AdblockPlusApiCallback apiCallback; |
182 private final boolean checkForFiltersLoaded; | 217 private final boolean checkForFiltersLoaded; |
183 private final long creationTime; | 218 private final long creationTime; |
184 | 219 |
185 public ChainedRequest(final JSONObject value, final AdblockPlusApiCallback c
allback, | 220 public ChainedRequest(final JSONObject value, final AdblockPlusApiCallback c
allback, |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 this.invokeSuccessCallback(jsObject); | 327 this.invokeSuccessCallback(jsObject); |
293 } | 328 } |
294 else | 329 else |
295 { | 330 { |
296 this.invokeFailureCallback(jsObject); | 331 this.invokeFailureCallback(jsObject); |
297 } | 332 } |
298 } | 333 } |
299 } | 334 } |
300 } | 335 } |
301 } | 336 } |
OLD | NEW |