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-2016 Eyeo GmbH | 3 * Copyright (C) 2006-2016 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 |
(...skipping 23 matching lines...) Expand all Loading... |
34 import java.util.ArrayList; | 34 import java.util.ArrayList; |
35 import java.util.Collections; | 35 import java.util.Collections; |
36 import java.util.HashMap; | 36 import java.util.HashMap; |
37 import java.util.List; | 37 import java.util.List; |
38 import java.util.Map; | 38 import java.util.Map; |
39 import java.util.Set; | 39 import java.util.Set; |
40 import java.util.TreeSet; | 40 import java.util.TreeSet; |
41 import java.util.concurrent.LinkedBlockingQueue; | 41 import java.util.concurrent.LinkedBlockingQueue; |
42 import java.util.concurrent.TimeUnit; | 42 import java.util.concurrent.TimeUnit; |
43 import java.util.concurrent.locks.ReentrantLock; | 43 import java.util.concurrent.locks.ReentrantLock; |
44 import java.util.regex.Pattern; | |
45 | 44 |
46 import org.adblockplus.adblockplussbrowser.R; | 45 import org.adblockplus.adblockplussbrowser.R; |
47 import org.adblockplus.sbrowser.contentblocker.MainPreferences; | |
48 | 46 |
49 import android.content.Context; | 47 import android.content.Context; |
50 import android.content.Intent; | 48 import android.content.Intent; |
51 import android.content.SharedPreferences; | 49 import android.content.SharedPreferences; |
52 import android.content.pm.PackageInfo; | 50 import android.content.pm.PackageInfo; |
53 import android.content.pm.PackageManager; | 51 import android.content.pm.PackageManager; |
54 import android.content.pm.ResolveInfo; | 52 import android.content.pm.ResolveInfo; |
55 import android.net.ConnectivityManager; | 53 import android.net.ConnectivityManager; |
56 import android.net.NetworkInfo; | 54 import android.net.NetworkInfo; |
57 import android.net.Uri; | 55 import android.net.Uri; |
58 import android.os.Handler; | 56 import android.os.Handler; |
59 import android.os.Looper; | 57 import android.os.Looper; |
60 import android.preference.PreferenceManager; | 58 import android.preference.PreferenceManager; |
61 import android.text.TextUtils; | 59 import android.text.TextUtils; |
62 import android.util.Log; | 60 import android.util.Log; |
63 | 61 |
64 public final class Engine | 62 public final class Engine |
65 { | 63 { |
66 private static final String TAG = Engine.class.getSimpleName(); | 64 private static final String TAG = Engine.class.getSimpleName(); |
67 | 65 |
68 // TODO make use of this regex's | |
69 public static final Pattern RE_SUBSCRIPTION_HEADER = Pattern.compile( | |
70 "\\[Adblock(?:\\s*Plus\\s*([\\d\\.]+)?)?\\]", Pattern.CASE_INSENSITIVE); | |
71 public static final Pattern RE_FILTER_META = Pattern.compile("^\\s*!\\s*(\\w+)
\\s*:\\s*(.*)"); | |
72 public static final Pattern RE_FILTER_ELEMHIDE = Pattern | |
73 .compile("^([^\\/\\*\\|\\@\"!]*?)#(\\@)?(?:([\\w\\-]+|\\*)((?:\\([\\w\\-]+
(?:[$^*]?=[^\\(\\)\"]*)?\\))*)|#([^{}]+))$"); | |
74 public static final Pattern RE_FILTER_REGEXP = Pattern | |
75 .compile("^(@@)?\\/.*\\/(?:\\$~?[\\w\\-]+(?:=[^,\\s]+)?(?:,~?[\\w\\-]+(?:=
[^,\\s]+)?)*)?$"); | |
76 public static final Pattern RE_FILTER_OPTIONS = Pattern | |
77 .compile("\\$(~?[\\w\\-]+(?:=[^,\\s]+)?(?:,~?[\\w\\-]+(?:=[^,\\s]+)?)*)$")
; | |
78 public static final Pattern RE_FILTER_CSSPROPERTY = Pattern | |
79 .compile("\\[\\-abp\\-properties=([\"'])([^\"']+)\\1\\]"); | |
80 | |
81 public static final String USER_FILTERS_TITLE = "__filters"; | 66 public static final String USER_FILTERS_TITLE = "__filters"; |
82 public static final String USER_EXCEPTIONS_TITLE = "__exceptions"; | 67 public static final String USER_EXCEPTIONS_TITLE = "__exceptions"; |
83 | 68 |
84 public static final String SBROWSER_APP_ID = "com.sec.android.app.sbrowser"; | 69 public static final String SBROWSER_APP_ID = "com.sec.android.app.sbrowser"; |
85 public static final String ACTION_OPEN_SETTINGS = "com.samsung.android.sbrowse
r.contentBlocker.ACTION_SETTING"; | 70 public static final String ACTION_OPEN_SETTINGS = "com.samsung.android.sbrowse
r.contentBlocker.ACTION_SETTING"; |
86 public static final String ACTION_UPDATE = "com.samsung.android.sbrowser.conte
ntBlocker.ACTION_UPDATE"; | 71 public static final String ACTION_UPDATE = "com.samsung.android.sbrowser.conte
ntBlocker.ACTION_UPDATE"; |
87 public static final String EASYLIST_URL = "https://easylist-downloads.adblockp
lus.org/easylist.txt"; | 72 public static final String EASYLIST_URL = "https://easylist-downloads.adblockp
lus.org/easylist.txt"; |
88 | 73 |
89 public static final String SUBSCRIPTIONS_EXCEPTIONSURL = "subscriptions_except
ionsurl"; | 74 public static final String SUBSCRIPTIONS_EXCEPTIONSURL = "subscriptions_except
ionsurl"; |
90 | 75 |
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 try | 515 try |
531 { | 516 { |
532 final URI uri = new URI(url); | 517 final URI uri = new URI(url); |
533 final String host = uri.getHost() != null ? uri.getHost() : uri.getPat
h(); | 518 final String host = uri.getHost() != null ? uri.getHost() : uri.getPat
h(); |
534 w.write("@@||" + host + "^$document"); | 519 w.write("@@||" + host + "^$document"); |
535 w.write('\n'); | 520 w.write('\n'); |
536 } | 521 } |
537 catch (URISyntaxException e) | 522 catch (URISyntaxException e) |
538 { | 523 { |
539 Log.w(TAG, "Failed to parse whitelisted website: " + url); | 524 Log.w(TAG, "Failed to parse whitelisted website: " + url); |
540 continue; | |
541 } | 525 } |
542 } | 526 } |
543 } | 527 } |
544 } | 528 } |
545 | 529 |
546 private static File getCachedFilterFile(Context context) | 530 private static File getCachedFilterFile(Context context) |
547 { | 531 { |
548 final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference
s(context); | 532 final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference
s(context); |
549 final String cachedFilterPath = prefs.getString(context.getString(R.string.k
ey_cached_filter_path), null); | 533 final String cachedFilterPath = prefs.getString(context.getString(R.string.k
ey_cached_filter_path), null); |
550 if (cachedFilterPath != null) | 534 if (cachedFilterPath != null) |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
776 Log.d(TAG, headers.toString()); | 760 Log.d(TAG, headers.toString()); |
777 this.downloader.enqueueDownload(this.createDownloadURL(sub), sub.getId(),
headers); | 761 this.downloader.enqueueDownload(this.createDownloadURL(sub), sub.getId(),
headers); |
778 } | 762 } |
779 } | 763 } |
780 | 764 |
781 public void connectivityChanged() | 765 public void connectivityChanged() |
782 { | 766 { |
783 this.downloader.connectivityChanged(); | 767 this.downloader.connectivityChanged(); |
784 } | 768 } |
785 } | 769 } |
OLD | NEW |