OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 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 11 matching lines...) Expand all Loading... |
22 import java.io.FileNotFoundException; | 22 import java.io.FileNotFoundException; |
23 import java.io.IOException; | 23 import java.io.IOException; |
24 import java.io.InputStream; | 24 import java.io.InputStream; |
25 import java.io.InputStreamReader; | 25 import java.io.InputStreamReader; |
26 import java.util.Calendar; | 26 import java.util.Calendar; |
27 import java.util.List; | 27 import java.util.List; |
28 import java.util.TimeZone; | 28 import java.util.TimeZone; |
29 import java.util.regex.Pattern; | 29 import java.util.regex.Pattern; |
30 | 30 |
31 import org.adblockplus.android.updater.AlarmReceiver; | 31 import org.adblockplus.android.updater.AlarmReceiver; |
| 32 import org.adblockplus.libadblockplus.FilterEngine.ContentType; |
32 import org.apache.commons.lang.StringUtils; | 33 import org.apache.commons.lang.StringUtils; |
33 | 34 |
34 import android.app.ActivityManager; | 35 import android.app.ActivityManager; |
35 import android.app.ActivityManager.RunningServiceInfo; | 36 import android.app.ActivityManager.RunningServiceInfo; |
36 import android.app.AlarmManager; | 37 import android.app.AlarmManager; |
37 import android.app.Application; | 38 import android.app.Application; |
38 import android.app.PendingIntent; | 39 import android.app.PendingIntent; |
39 import android.content.Context; | 40 import android.content.Context; |
40 import android.content.Intent; | 41 import android.content.Intent; |
41 import android.content.SharedPreferences; | 42 import android.content.SharedPreferences; |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 */ | 333 */ |
333 public boolean matches(final String url, final String query, final String refe
rrer, final String accept) | 334 public boolean matches(final String url, final String query, final String refe
rrer, final String accept) |
334 { | 335 { |
335 final String fullUrl = StringUtils.isNotEmpty(query) ? url + "?" + query : u
rl; | 336 final String fullUrl = StringUtils.isNotEmpty(query) ? url + "?" + query : u
rl; |
336 if (referrer != null) | 337 if (referrer != null) |
337 referrerMapping.add(fullUrl, referrer); | 338 referrerMapping.add(fullUrl, referrer); |
338 | 339 |
339 if (!filteringEnabled) | 340 if (!filteringEnabled) |
340 return false; | 341 return false; |
341 | 342 |
342 String contentType = null; | 343 ContentType contentType = null; |
343 | 344 |
344 if (accept != null) | 345 if (accept != null) |
345 { | 346 { |
346 if (accept.contains("text/css")) | 347 if (accept.contains("text/css")) |
347 contentType = "STYLESHEET"; | 348 contentType = ContentType.STYLESHEET; |
348 else if (accept.contains("image/*")) | 349 else if (accept.contains("image/*")) |
349 contentType = "IMAGE"; | 350 contentType = ContentType.IMAGE; |
350 else if (accept.contains("text/html")) | 351 else if (accept.contains("text/html")) |
351 contentType = "SUBDOCUMENT"; | 352 contentType = ContentType.SUBDOCUMENT; |
352 } | 353 } |
353 | 354 |
354 if (contentType == null) | 355 if (contentType == null) |
355 { | 356 { |
356 if (RE_JS.matcher(url).find()) | 357 if (RE_JS.matcher(url).find()) |
357 contentType = "SCRIPT"; | 358 contentType = ContentType.SCRIPT; |
358 else if (RE_CSS.matcher(url).find()) | 359 else if (RE_CSS.matcher(url).find()) |
359 contentType = "STYLESHEET"; | 360 contentType = ContentType.STYLESHEET; |
360 else if (RE_IMAGE.matcher(url).find()) | 361 else if (RE_IMAGE.matcher(url).find()) |
361 contentType = "IMAGE"; | 362 contentType = ContentType.IMAGE; |
362 else if (RE_FONT.matcher(url).find()) | 363 else if (RE_FONT.matcher(url).find()) |
363 contentType = "FONT"; | 364 contentType = ContentType.FONT; |
364 else if (RE_HTML.matcher(url).find()) | 365 else if (RE_HTML.matcher(url).find()) |
365 contentType = "SUBDOCUMENT"; | 366 contentType = ContentType.SUBDOCUMENT; |
366 } | 367 } |
367 if (contentType == null) | 368 if (contentType == null) |
368 contentType = "OTHER"; | 369 contentType = ContentType.OTHER; |
369 | 370 |
370 final List<String> referrerChain = referrerMapping.buildReferrerChain(referr
er); | 371 final List<String> referrerChain = referrerMapping.buildReferrerChain(referr
er); |
371 final String[] referrerChainArray = referrerChain.toArray(new String[referre
rChain.size()]); | 372 final String[] referrerChainArray = referrerChain.toArray(new String[referre
rChain.size()]); |
372 return abpEngine.matches(fullUrl, contentType, referrerChainArray); | 373 return abpEngine.matches(fullUrl, contentType, referrerChainArray); |
373 } | 374 } |
374 | 375 |
375 /** | 376 /** |
376 * Checks if filtering is enabled. | 377 * Checks if filtering is enabled. |
377 */ | 378 */ |
378 public boolean isFilteringEnabled() | 379 public boolean isFilteringEnabled() |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 Log.e(TAG, e.getMessage(), e); | 497 Log.e(TAG, e.getMessage(), e); |
497 } | 498 } |
498 | 499 |
499 // Set crash handler | 500 // Set crash handler |
500 Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this)); | 501 Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this)); |
501 | 502 |
502 // Initiate update check | 503 // Initiate update check |
503 scheduleUpdater(0); | 504 scheduleUpdater(0); |
504 } | 505 } |
505 } | 506 } |
OLD | NEW |