Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: libadblockplus-android/src/org/adblockplus/libadblockplus/android/AndroidWebRequestResourceWrapper.java

Issue 29678581: Issue 6000 - Rename "libadblockplus-android" (Closed)
Patch Set: addressed comments Created Jan. 29, 2018, 11:04 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: libadblockplus-android/src/org/adblockplus/libadblockplus/android/AndroidWebRequestResourceWrapper.java
diff --git a/libadblockplus-android/src/org/adblockplus/libadblockplus/android/AndroidWebRequestResourceWrapper.java b/libadblockplus-android/src/org/adblockplus/libadblockplus/android/AndroidWebRequestResourceWrapper.java
deleted file mode 100644
index 9bd0cafcd63b9d614976f52f87c31a6635a84e47..0000000000000000000000000000000000000000
--- a/libadblockplus-android/src/org/adblockplus/libadblockplus/android/AndroidWebRequestResourceWrapper.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * This file is part of Adblock Plus <https://adblockplus.org/>,
- * Copyright (C) 2006-present 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.libadblockplus.android;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.util.Log;
-
-import org.adblockplus.libadblockplus.HeaderEntry;
-import org.adblockplus.libadblockplus.ServerResponse;
-import org.adblockplus.libadblockplus.WebRequest;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * WebRequest wrapper to return request response from android resources for selected URLs
- */
-public class AndroidWebRequestResourceWrapper implements WebRequest
-{
- private static final String TAG = Utils.getTag(AndroidWebRequestResourceWrapper.class);
-
- public static final String EASYLIST =
- "https://easylist-downloads.adblockplus.org/easylist.txt";
- public static final String EASYLIST_INDONESIAN =
- "https://easylist-downloads.adblockplus.org/abpindo+easylist.txt";
- public static final String EASYLIST_BULGARIAN =
- "https://easylist-downloads.adblockplus.org/bulgarian_list+easylist.txt";
- public static final String EASYLIST_CHINESE =
- "https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt";
- public static final String EASYLIST_CZECH_SLOVAK =
- "https://easylist-downloads.adblockplus.org/easylistczechslovak+easylist.txt";
- public static final String EASYLIST_DUTCH =
- "https://easylist-downloads.adblockplus.org/easylistdutch+easylist.txt";
- public static final String EASYLIST_GERMAN =
- "https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt";
- public static final String EASYLIST_ISRAELI =
- "https://easylist-downloads.adblockplus.org/israellist+easylist.txt";
- public static final String EASYLIST_ITALIAN =
- "https://easylist-downloads.adblockplus.org/easylistitaly+easylist.txt";
- public static final String EASYLIST_LITHUANIAN =
- "https://easylist-downloads.adblockplus.org/easylistlithuania+easylist.txt";
- public static final String EASYLIST_LATVIAN =
- "https://easylist-downloads.adblockplus.org/latvianlist+easylist.txt";
- public static final String EASYLIST_ARABIAN_FRENCH =
- "https://easylist-downloads.adblockplus.org/liste_ar+liste_fr+easylist.txt";
- public static final String EASYLIST_FRENCH =
- "https://easylist-downloads.adblockplus.org/liste_fr+easylist.txt";
- public static final String EASYLIST_ROMANIAN =
- "https://easylist-downloads.adblockplus.org/rolist+easylist.txt";
- public static final String EASYLIST_RUSSIAN =
- "https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt";
- public static final String ACCEPTABLE_ADS =
- "https://easylist-downloads.adblockplus.org/exceptionrules.txt";
-
- private Context context;
- private WebRequest request;
- private Map<String, Integer> urlToResourceIdMap;
- private Storage storage;
- private Listener listener;
-
- /**
- * Constructor
- * @param context android context
- * @param request wrapped request to perform the request if it's not preloaded subscription requested
- * @param urlToResourceIdMap map URL -> android resource id for preloaded subscriptions
- * See AndroidWebRequestResourceWrapper.EASYLIST_... constants
- * @param storage Storage impl to remember served interceptions
- */
- public AndroidWebRequestResourceWrapper(Context context, WebRequest request,
- Map<String, Integer> urlToResourceIdMap,
- Storage storage)
- {
- this.context = context;
- this.request = request;
- this.urlToResourceIdMap = Collections.synchronizedMap(urlToResourceIdMap);
- this.storage = storage;
- }
-
- public Listener getListener()
- {
- return listener;
- }
-
- public void setListener(Listener listener)
- {
- this.listener = listener;
- }
-
- @Override
- public ServerResponse httpGET(String url, List<HeaderEntry> headers)
- {
- // since parameters may vary we need to ignore them
- String urlWithoutParams = Utils.getUrlWithoutParams(url);
- Integer resourceId = urlToResourceIdMap.get(urlWithoutParams);
-
- if (resourceId != null)
- {
- if (!storage.contains(urlWithoutParams))
- {
- Log.w(TAG, "Intercepting request for " + url + " with resource #" + resourceId.intValue());
- ServerResponse response = buildResourceContentResponse(resourceId);
- storage.put(urlWithoutParams);
-
- if (listener != null)
- {
- listener.onIntercepted(url, resourceId);
- }
-
- return response;
- }
- else
- {
- Log.d(TAG, "Skip intercepting");
- }
- }
-
- // delegate to wrapper request
- return request.httpGET(url, headers);
- }
-
- protected String readResourceContent(int resourceId) throws IOException
- {
- Log.d(TAG, "Reading from resource ...");
-
- InputStream is = null;
-
- try
- {
- is = context.getResources().openRawResource(resourceId);
- BufferedReader br = new BufferedReader(new InputStreamReader(is));
- StringBuilder sb = new StringBuilder();
- String line;
- boolean firstLine = true;
- while ((line = br.readLine()) != null)
- {
- if (firstLine)
- {
- firstLine = false;
- }
- else
- {
- sb.append("\r\n");
- }
- sb.append(line);
- }
-
- Log.d(TAG, "Resource read (" + sb.length() + " bytes)");
- return sb.toString();
- }
- finally
- {
- if (is != null)
- {
- is.close();
- }
- }
- }
-
- protected ServerResponse buildResourceContentResponse(int resourceId)
- {
- ServerResponse response = new ServerResponse();
- try
- {
- response.setResponse(readResourceContent(resourceId));
- response.setResponseStatus(200);
- response.setStatus(ServerResponse.NsStatus.OK);
- }
- catch (IOException e)
- {
- Log.e(TAG, "Error injecting response", e);
- response.setStatus(ServerResponse.NsStatus.ERROR_FAILURE);
- }
-
- return response;
- }
-
- /**
- * Listener for events
- */
- public interface Listener
- {
- void onIntercepted(String url, int resourceId);
- }
-
- /**
- * Interface to remember intercepted subscription requests
- */
- public interface Storage
- {
- void put(String url);
- boolean contains(String url);
- }
-
- /**
- * Storage impl in Shared Preferences
- */
- public static class SharedPrefsStorage implements Storage
- {
- private static final String URLS = "urls";
-
- private SharedPreferences prefs;
- private Set<String> urls;
-
- public SharedPrefsStorage(SharedPreferences prefs)
- {
- this.prefs = prefs;
- this.urls = prefs.getStringSet(URLS, new HashSet<String>());
- }
-
- @Override
- public synchronized void put(String url)
- {
- urls.add(url);
-
- prefs
- .edit()
- .putStringSet(URLS, urls)
- .commit();
- }
-
- @Override
- public synchronized boolean contains(String url)
- {
- return urls.contains(url);
- }
- }
-}

Powered by Google App Engine
This is Rietveld