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);
-    }
-  }
-}
