Left: | ||
Right: |
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, |
René Jeschke
2015/05/06 10:56:33
I must admit, that I would prefer
'final JSONObje
Felix Dahlke
2015/05/06 16:42:50
As discussed on IRC: A Map is not great, but we'd
| |
138 final String action, final String url, final String title) | 141 final Map<String, String> 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, String> 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, String> parameters = new HashMap<String, String>(); |
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, String> parameters = new HashMap<String, String>(); |
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, String> parameters = new HashMap<String, String>(); |
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, String> parameters = new HashMap<String, String>(); | |
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, String> parameters = new HashMap<String, String>(); | |
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, String> parameters = new HashMap<String, String>(); | |
208 parameters.put("url", url); | |
209 parameters.put("whitelisted", String.valueOf(whitelisted)); | |
René Jeschke
2015/05/06 10:56:33
See comment in Api.jsm and above ... having a JSON
| |
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 |