LEFT | RIGHT |
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 14 matching lines...) Expand all Loading... |
25 import java.io.InputStreamReader; | 25 import java.io.InputStreamReader; |
26 import java.util.ArrayList; | 26 import java.util.ArrayList; |
27 import java.util.Calendar; | 27 import java.util.Calendar; |
28 import java.util.LinkedHashMap; | 28 import java.util.LinkedHashMap; |
29 import java.util.List; | 29 import java.util.List; |
30 import java.util.Map; | 30 import java.util.Map; |
31 import java.util.TimeZone; | 31 import java.util.TimeZone; |
32 import java.util.regex.Pattern; | 32 import java.util.regex.Pattern; |
33 | 33 |
34 import org.adblockplus.android.updater.AlarmReceiver; | 34 import org.adblockplus.android.updater.AlarmReceiver; |
35 | 35 import org.apache.commons.lang.StringUtils; |
36 import com.github.rjeschke.neetutils.Strings; | |
37 | 36 |
38 import android.app.ActivityManager; | 37 import android.app.ActivityManager; |
39 import android.app.ActivityManager.RunningServiceInfo; | 38 import android.app.ActivityManager.RunningServiceInfo; |
40 import android.app.AlarmManager; | 39 import android.app.AlarmManager; |
41 import android.app.Application; | 40 import android.app.Application; |
42 import android.app.PendingIntent; | 41 import android.app.PendingIntent; |
43 import android.content.Context; | 42 import android.content.Context; |
44 import android.content.Intent; | 43 import android.content.Intent; |
45 import android.content.SharedPreferences; | 44 import android.content.SharedPreferences; |
46 import android.content.SharedPreferences.Editor; | 45 import android.content.SharedPreferences.Editor; |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 */ | 325 */ |
327 public String[] getSelectorsForDomain(final String domain) | 326 public String[] getSelectorsForDomain(final String domain) |
328 { | 327 { |
329 /* We need to ignore element hiding rules here to work around two bugs: | 328 /* We need to ignore element hiding rules here to work around two bugs: |
330 * 1. CSS is being injected even when there's an exception rule with $elemhi
de | 329 * 1. CSS is being injected even when there's an exception rule with $elemhi
de |
331 * 2. The injected CSS causes blank pages in Chrome for Android | 330 * 2. The injected CSS causes blank pages in Chrome for Android |
332 * | 331 * |
333 * Starting with 1.1.2, we ignored element hiding rules after download anywa
y, to keep the | 332 * Starting with 1.1.2, we ignored element hiding rules after download anywa
y, to keep the |
334 * memory usage down. Doing this with libadblockplus is trickier, but would
be the clean | 333 * memory usage down. Doing this with libadblockplus is trickier, but would
be the clean |
335 * solution. */ | 334 * solution. */ |
336 | |
337 return null; | 335 return null; |
338 /* | 336 /* |
339 if (!filteringEnabled) | 337 if (!filteringEnabled) |
340 return null; | 338 return null; |
341 | 339 |
342 return abpEngine.getSelectorsForDomain(domain); | 340 return abpEngine.getSelectorsForDomain(domain); |
343 */ | 341 */ |
344 } | 342 } |
345 | 343 |
346 /** | 344 /** |
347 * Checks if filters match request parameters. | 345 * Checks if filters match request parameters. |
348 * | 346 * |
349 * @param url | 347 * @param url |
350 * Request URL | 348 * Request URL |
351 * @param query | 349 * @param query |
352 * Request query string | 350 * Request query string |
353 * @param referrer | 351 * @param referrer |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 /** | 423 /** |
426 * Enables or disables filtering. | 424 * Enables or disables filtering. |
427 */ | 425 */ |
428 public void setFilteringEnabled(final boolean enable) | 426 public void setFilteringEnabled(final boolean enable) |
429 { | 427 { |
430 filteringEnabled = enable; | 428 filteringEnabled = enable; |
431 sendBroadcast(new Intent(BROADCAST_FILTERING_CHANGE).putExtra("enabled", fil
teringEnabled)); | 429 sendBroadcast(new Intent(BROADCAST_FILTERING_CHANGE).putExtra("enabled", fil
teringEnabled)); |
432 } | 430 } |
433 | 431 |
434 /** | 432 /** |
435 * Starts ABP engine. It also initiates subscription refresh if it is enabled
in user settings. | 433 * Starts ABP engine. It also initiates subscription refresh if it is enabled |
| 434 * in user settings. |
436 */ | 435 */ |
437 public void startEngine() | 436 public void startEngine() |
438 { | 437 { |
439 if (abpEngine == null) | 438 if (abpEngine == null) |
440 { | 439 { |
441 final File basePath = getFilesDir(); | 440 final File basePath = getFilesDir(); |
442 abpEngine = ABPEngine.create(AdblockPlus.getApplication(), ABPEngine.gener
ateAppInfo(this), basePath.getAbsolutePath()); | 441 abpEngine = ABPEngine.create(AdblockPlus.getApplication(), ABPEngine.gener
ateAppInfo(this), basePath.getAbsolutePath()); |
443 } | 442 } |
444 } | 443 } |
445 | 444 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 final StringBuilder out = new StringBuilder(); | 512 final StringBuilder out = new StringBuilder(); |
514 int read; | 513 int read; |
515 do | 514 do |
516 { | 515 { |
517 read = reportFile.read(buffer, 0, buffer.length); | 516 read = reportFile.read(buffer, 0, buffer.length); |
518 if (read > 0) | 517 if (read > 0) |
519 out.append(buffer, 0, read); | 518 out.append(buffer, 0, read); |
520 } | 519 } |
521 while (read >= 0); | 520 while (read >= 0); |
522 final String report = out.toString(); | 521 final String report = out.toString(); |
523 if (!Strings.isEmpty(report)) | 522 if (StringUtils.isNotEmpty(report)) |
524 { | 523 { |
525 final Intent intent = new Intent(this, CrashReportDialog.class); | 524 final Intent intent = new Intent(this, CrashReportDialog.class); |
526 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | 525 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
527 intent.putExtra("report", report); | 526 intent.putExtra("report", report); |
528 startActivity(intent); | 527 startActivity(intent); |
529 } | 528 } |
530 } | 529 } |
531 catch (final FileNotFoundException e) | 530 catch (final FileNotFoundException e) |
532 { | 531 { |
533 // ignore | 532 // ignore |
534 } | 533 } |
535 catch (final IOException e) | 534 catch (final IOException e) |
536 { | 535 { |
537 Log.e(TAG, e.getMessage(), e); | 536 Log.e(TAG, e.getMessage(), e); |
538 } | 537 } |
539 | 538 |
540 // Set crash handler | 539 // Set crash handler |
541 Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this)); | 540 Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this)); |
542 | 541 |
543 // Initiate update check | 542 // Initiate update check |
544 scheduleUpdater(0); | 543 scheduleUpdater(0); |
545 } | 544 } |
546 } | 545 } |
LEFT | RIGHT |