| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 import android.net.Uri; | 48 import android.net.Uri; |
| 49 import android.os.Handler; | 49 import android.os.Handler; |
| 50 import android.os.Looper; | 50 import android.os.Looper; |
| 51 import android.preference.PreferenceManager; | 51 import android.preference.PreferenceManager; |
| 52 import android.util.Log; | 52 import android.util.Log; |
| 53 | 53 |
| 54 public final class Engine | 54 public final class Engine |
| 55 { | 55 { |
| 56 private static final String TAG = Engine.class.getSimpleName(); | 56 private static final String TAG = Engine.class.getSimpleName(); |
| 57 | 57 |
| 58 public static final String ABP_VERSION = "2.0"; | |
|
Felix Dahlke
2016/09/30 07:11:41
I think we can safely hard code it (the way it was
diegocarloslima
2016/09/30 14:06:38
OK I'll revert that change
| |
| 59 | |
| 60 // TODO make use of this regex's | 58 // TODO make use of this regex's |
| 61 public static final Pattern RE_SUBSCRIPTION_HEADER = Pattern.compile( | 59 public static final Pattern RE_SUBSCRIPTION_HEADER = Pattern.compile( |
| 62 "\\[Adblock(?:\\s*Plus\\s*([\\d\\.]+)?)?\\]", Pattern.CASE_INSENSITIVE); | 60 "\\[Adblock(?:\\s*Plus\\s*([\\d\\.]+)?)?\\]", Pattern.CASE_INSENSITIVE); |
| 63 public static final Pattern RE_FILTER_META = Pattern.compile("^\\s*!\\s*(\\w+) \\s*:\\s*(.*)"); | 61 public static final Pattern RE_FILTER_META = Pattern.compile("^\\s*!\\s*(\\w+) \\s*:\\s*(.*)"); |
| 64 public static final Pattern RE_FILTER_ELEMHIDE = Pattern | 62 public static final Pattern RE_FILTER_ELEMHIDE = Pattern |
| 65 .compile("^([^\\/\\*\\|\\@\"!]*?)#(\\@)?(?:([\\w\\-]+|\\*)((?:\\([\\w\\-]+ (?:[$^*]?=[^\\(\\)\"]*)?\\))*)|#([^{}]+))$"); | 63 .compile("^([^\\/\\*\\|\\@\"!]*?)#(\\@)?(?:([\\w\\-]+|\\*)((?:\\([\\w\\-]+ (?:[$^*]?=[^\\(\\)\"]*)?\\))*)|#([^{}]+))$"); |
| 66 public static final Pattern RE_FILTER_REGEXP = Pattern | 64 public static final Pattern RE_FILTER_REGEXP = Pattern |
| 67 .compile("^(@@)?\\/.*\\/(?:\\$~?[\\w\\-]+(?:=[^,\\s]+)?(?:,~?[\\w\\-]+(?:= [^,\\s]+)?)*)?$"); | 65 .compile("^(@@)?\\/.*\\/(?:\\$~?[\\w\\-]+(?:=[^,\\s]+)?(?:,~?[\\w\\-]+(?:= [^,\\s]+)?)*)?$"); |
| 68 public static final Pattern RE_FILTER_OPTIONS = Pattern | 66 public static final Pattern RE_FILTER_OPTIONS = Pattern |
| 69 .compile("\\$(~?[\\w\\-]+(?:=[^,\\s]+)?(?:,~?[\\w\\-]+(?:=[^,\\s]+)?)*)$") ; | 67 .compile("\\$(~?[\\w\\-]+(?:=[^,\\s]+)?(?:,~?[\\w\\-]+(?:=[^,\\s]+)?)*)$") ; |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 471 finally | 469 finally |
| 472 { | 470 { |
| 473 writer.close(); | 471 writer.close(); |
| 474 } | 472 } |
| 475 } | 473 } |
| 476 return dummyFilterFile; | 474 return dummyFilterFile; |
| 477 } | 475 } |
| 478 | 476 |
| 479 public static void writeFilterHeaders(Writer writer) throws IOException | 477 public static void writeFilterHeaders(Writer writer) throws IOException |
| 480 { | 478 { |
| 481 writer.write("[Adblock Plus" + ABP_VERSION + "]\n"); | 479 writer.write("[Adblock Plus 2.0]\n"); |
|
Felix Dahlke
2016/09/30 07:11:41
Shouldn't there be a space between "Adblock Plus"
| |
| 482 writer.write("! This file was automatically created.\n"); | 480 writer.write("! This file was automatically created.\n"); |
| 483 } | 481 } |
| 484 | 482 |
| 485 private static File getCachedFilterFile(Context context) | 483 private static File getCachedFilterFile(Context context) |
| 486 { | 484 { |
| 487 final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference s(context); | 485 final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference s(context); |
| 488 final String cachedFilterPath = prefs.getString(context.getString(R.string.k ey_cached_filter_path), null); | 486 final String cachedFilterPath = prefs.getString(context.getString(R.string.k ey_cached_filter_path), null); |
| 489 if (cachedFilterPath != null) | 487 if (cachedFilterPath != null) |
| 490 { | 488 { |
| 491 return new File(cachedFilterPath); | 489 return new File(cachedFilterPath); |
| 492 } | 490 } |
| 493 | 491 |
| 494 return null; | 492 return null; |
| 495 } | 493 } |
| 496 | 494 |
| 497 private static File getDummyFilterFile(Context context) | 495 private static File getDummyFilterFile(Context context) |
| 498 { | 496 { |
| 499 return new File(getFilterCacheDir(context), "dummy.txt"); | 497 return new File(getFilterCacheDir(context), "dummy.txt"); |
| 500 } | 498 } |
| 501 | 499 |
| 502 private static File getFilterCacheDir(Context context) | 500 private static File getFilterCacheDir(Context context) |
| 503 { | 501 { |
| 504 return new File(context.getCacheDir(), "subscriptions"); | 502 return new File(context.getCacheDir(), "subscriptions"); |
| 505 } | 503 } |
| 506 | 504 |
| 507 private static File getSubscriptionsDir(Context context) | 505 private static File getSubscriptionsDir(Context context) |
| 508 { | 506 { |
| 509 return new File(context.getFilesDir(), "subscriptions"); | 507 return new File(context.getFilesDir(), "subscriptions"); |
| 510 } | 508 } |
| 511 | 509 |
| 512 URL createDownloadURL(final Subscription sub) throws IOException | 510 URL createDownloadURL(final Subscription sub) throws IOException |
| 513 { | 511 { |
| 514 final StringBuilder sb = new StringBuilder(); | 512 final StringBuilder sb = new StringBuilder(); |
| 515 | 513 |
| 516 sb.append(sub.getURL()); | 514 sb.append(sub.getURL()); |
| 517 if (sub.getURL().getQuery() != null) | 515 if (sub.getURL().getQuery() != null) |
| 518 { | 516 { |
| 519 sb.append('&'); | 517 sb.append('&'); |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 712 Log.d(TAG, headers.toString()); | 710 Log.d(TAG, headers.toString()); |
| 713 this.downloader.enqueueDownload(this.createDownloadURL(sub), sub.getId(), headers); | 711 this.downloader.enqueueDownload(this.createDownloadURL(sub), sub.getId(), headers); |
| 714 } | 712 } |
| 715 } | 713 } |
| 716 | 714 |
| 717 public void connectivityChanged() | 715 public void connectivityChanged() |
| 718 { | 716 { |
| 719 this.downloader.connectivityChanged(); | 717 this.downloader.connectivityChanged(); |
| 720 } | 718 } |
| 721 } | 719 } |
| LEFT | RIGHT |