| 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 * Cached list of recommended subscriptions. | 80 * Cached list of recommended subscriptions. |
| 81 */ | 81 */ |
| 82 private Subscription[] subscriptions; | 82 private Subscription[] subscriptions; |
| 83 | 83 |
| 84 /** | 84 /** |
| 85 * Indicates whether filtering is enabled or not. | 85 * Indicates whether filtering is enabled or not. |
| 86 */ | 86 */ |
| 87 private boolean filteringEnabled = false; | 87 private boolean filteringEnabled = false; |
| 88 | 88 |
| 89 private ABPEngine abpEngine; | 89 private ABPEngine abpEngine; |
| 90 | 90 |
| 91 private static AdblockPlus instance; | 91 private static AdblockPlus instance; |
| 92 | 92 |
| 93 private static class ReferrerMappingCache extends LinkedHashMap<String, String
> | 93 private static class ReferrerMappingCache extends LinkedHashMap<String, String
> |
| 94 { | 94 { |
| 95 private static final long serialVersionUID = 1L; | 95 private static final long serialVersionUID = 1L; |
| 96 private static final int MAX_SIZE = 5000; | 96 private static final int MAX_SIZE = 5000; |
| 97 | 97 |
| 98 public ReferrerMappingCache() | 98 public ReferrerMappingCache() |
| 99 { | 99 { |
| 100 super(MAX_SIZE + 1, 0.75f, true); | 100 super(MAX_SIZE + 1, 0.75f, true); |
| 101 } | 101 } |
| 102 | 102 |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 public static boolean isWiFiConnected(Context context) | 206 public static boolean isWiFiConnected(Context context) |
| 207 { | 207 { |
| 208 ConnectivityManager connectivityManager = (ConnectivityManager) context.getS
ystemService(Context.CONNECTIVITY_SERVICE); | 208 ConnectivityManager connectivityManager = (ConnectivityManager) context.getS
ystemService(Context.CONNECTIVITY_SERVICE); |
| 209 NetworkInfo networkInfo = null; | 209 NetworkInfo networkInfo = null; |
| 210 if (connectivityManager != null) | 210 if (connectivityManager != null) |
| 211 { | 211 { |
| 212 networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_
WIFI); | 212 networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_
WIFI); |
| 213 } | 213 } |
| 214 return networkInfo == null ? false : networkInfo.isConnected(); | 214 return networkInfo == null ? false : networkInfo.isConnected(); |
| 215 } | 215 } |
| 216 | 216 |
| 217 /** | 217 /** |
| 218 * Checks if ProxyService is running. | 218 * Checks if ProxyService is running. |
| 219 * | 219 * |
| 220 * @return true if service is running | 220 * @return true if service is running |
| 221 */ | 221 */ |
| 222 public boolean isServiceRunning() | 222 public boolean isServiceRunning() |
| 223 { | 223 { |
| 224 ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVIC
E); | 224 ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVIC
E); |
| 225 // Actually it returns not only running services, so extra check is required | 225 // Actually it returns not only running services, so extra check is required |
| 226 for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VAL
UE)) | 226 for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VAL
UE)) |
| 227 { | 227 { |
| 228 if (service.service.getClassName().equals(ProxyService.class.getCanonicalN
ame()) && service.pid > 0) | 228 if (service.service.getClassName().equals(ProxyService.class.getCanonicalN
ame()) && service.pid > 0) |
| 229 return true; | 229 return true; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 254 if (subscriptions == null) | 254 if (subscriptions == null) |
| 255 subscriptions = abpEngine.getRecommendedSubscriptions(); | 255 subscriptions = abpEngine.getRecommendedSubscriptions(); |
| 256 return subscriptions; | 256 return subscriptions; |
| 257 } | 257 } |
| 258 | 258 |
| 259 /** | 259 /** |
| 260 * Returns list of enabled subscriptions. | 260 * Returns list of enabled subscriptions. |
| 261 */ | 261 */ |
| 262 public Subscription[] getListedSubscriptions() | 262 public Subscription[] getListedSubscriptions() |
| 263 { | 263 { |
| 264 return abpEngine.getListedSubscriptions(); | 264 return abpEngine.getListedSubscriptions(); |
| 265 } | 265 } |
| 266 | 266 |
| 267 /** | 267 /** |
| 268 * Adds provided subscription and removes previous subscriptions if any. | 268 * Adds provided subscription and removes previous subscriptions if any. |
| 269 * | 269 * |
| 270 * @param url | 270 * @param url |
| 271 * URL of subscription to add | 271 * URL of subscription to add |
| 272 */ | 272 */ |
| 273 public void setSubscription(String url) | 273 public void setSubscription(String url) |
| 274 { | 274 { |
| 275 Subscription[] subscriptions = abpEngine.getListedSubscriptions(); | |
| 276 for (Subscription subscription : subscriptions) | |
| 277 { | |
| 278 abpEngine.removeSubscription(subscription.url); | |
| 279 } | |
| 280 abpEngine.addSubscription(url); | |
| 281 } | |
| 282 | |
| 283 /** | |
| 284 * Forces subscriptions refresh. | |
| 285 */ | |
| 286 public void refreshSubscriptions() | |
| 287 { | |
| 288 Subscription[] subscriptions = abpEngine.getListedSubscriptions(); | 275 Subscription[] subscriptions = abpEngine.getListedSubscriptions(); |
| 289 for (Subscription subscription : subscriptions) | 276 for (Subscription subscription : subscriptions) |
| 290 { | 277 { |
| 278 abpEngine.removeSubscription(subscription.url); |
| 279 } |
| 280 abpEngine.addSubscription(url); |
| 281 } |
| 282 |
| 283 /** |
| 284 * Forces subscriptions refresh. |
| 285 */ |
| 286 public void refreshSubscriptions() |
| 287 { |
| 288 Subscription[] subscriptions = abpEngine.getListedSubscriptions(); |
| 289 for (Subscription subscription : subscriptions) |
| 290 { |
| 291 abpEngine.refreshSubscription(subscription.url); | 291 abpEngine.refreshSubscription(subscription.url); |
| 292 } | 292 } |
| 293 } | 293 } |
| 294 | 294 |
| 295 /** | 295 /** |
| 296 * Enforces subscription status update. | 296 * Enforces subscription status update. |
| 297 * | 297 * |
| 298 * @param url Subscription url | 298 * @param url Subscription url |
| 299 */ | 299 */ |
| 300 public void actualizeSubscriptionStatus(String url) | 300 public void actualizeSubscriptionStatus(String url) |
| 301 { | 301 { |
| 302 abpEngine.actualizeSubscriptionStatus(url); | 302 abpEngine.actualizeSubscriptionStatus(url); |
| 303 } | 303 } |
| 304 | 304 |
| 305 | 305 |
| 306 /** | 306 /** |
| 307 * Enables or disables Acceptable Ads | 307 * Enables or disables Acceptable Ads |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 /* | 351 /* |
| 352 if (!filteringEnabled) | 352 if (!filteringEnabled) |
| 353 return null; | 353 return null; |
| 354 | 354 |
| 355 return abpEngine.getSelectorsForDomain(domain); | 355 return abpEngine.getSelectorsForDomain(domain); |
| 356 */ | 356 */ |
| 357 } | 357 } |
| 358 | 358 |
| 359 /** | 359 /** |
| 360 * Checks if filters match request parameters. | 360 * Checks if filters match request parameters. |
| 361 * | 361 * |
| 362 * @param url | 362 * @param url |
| 363 * Request URL | 363 * Request URL |
| 364 * @param query | 364 * @param query |
| 365 * Request query string | 365 * Request query string |
| 366 * @param referrer | 366 * @param referrer |
| 367 * Request referrer header | 367 * Request referrer header |
| 368 * @param accept | 368 * @param accept |
| 369 * Request accept header | 369 * Request accept header |
| 370 * @return true if matched filter was found | 370 * @return true if matched filter was found |
| 371 * @throws Exception | 371 * @throws Exception |
| 372 */ | 372 */ |
| 373 public boolean matches(String url, String query, String referrer, String accep
t) | 373 public boolean matches(String url, String query, String referrer, String accep
t) |
| 374 { | 374 { |
| 375 final String fullUrl = !"".equals(query) ? url + "?" + query : url; | 375 final String fullUrl = !"".equals(query) ? url + "?" + query : url; |
| 376 if (referrer != null) | 376 if (referrer != null) |
| 377 referrerMapping.put(fullUrl, referrer); | 377 referrerMapping.put(fullUrl, referrer); |
| 378 | 378 |
| 379 if (!filteringEnabled) | 379 if (!filteringEnabled) |
| 380 return false; | 380 return false; |
| 381 | 381 |
| 382 String contentType = null; | 382 String contentType = null; |
| 383 | 383 |
| 384 if (accept != null) | 384 if (accept != null) |
| 385 { | 385 { |
| 386 if (accept.contains("text/css")) | 386 if (accept.contains("text/css")) |
| 387 contentType = "STYLESHEET"; | 387 contentType = "STYLESHEET"; |
| 388 else if (accept.contains("image/*")) | 388 else if (accept.contains("image/*")) |
| 389 contentType = "IMAGE"; | 389 contentType = "IMAGE"; |
| 390 else if (accept.contains("text/html")) | 390 else if (accept.contains("text/html")) |
| 391 contentType = "SUBDOCUMENT"; | 391 contentType = "SUBDOCUMENT"; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 } | 436 } |
| 437 | 437 |
| 438 /** | 438 /** |
| 439 * Enables or disables filtering. | 439 * Enables or disables filtering. |
| 440 */ | 440 */ |
| 441 public void setFilteringEnabled(boolean enable) | 441 public void setFilteringEnabled(boolean enable) |
| 442 { | 442 { |
| 443 filteringEnabled = enable; | 443 filteringEnabled = enable; |
| 444 sendBroadcast(new Intent(BROADCAST_FILTERING_CHANGE).putExtra("enabled", fil
teringEnabled)); | 444 sendBroadcast(new Intent(BROADCAST_FILTERING_CHANGE).putExtra("enabled", fil
teringEnabled)); |
| 445 } | 445 } |
| 446 | 446 |
| 447 /** | 447 /** |
| 448 * Starts ABP engine. It also initiates subscription refresh if it is enabled | 448 * Starts ABP engine. It also initiates subscription refresh if it is enabled |
| 449 * in user settings. | 449 * in user settings. |
| 450 */ | 450 */ |
| 451 public void startEngine() | 451 public void startEngine() |
| 452 { | 452 { |
| 453 if (abpEngine == null) | 453 if (abpEngine == null) |
| 454 { | 454 { |
| 455 File basePath = getFilesDir(); | 455 File basePath = getFilesDir(); |
| 456 abpEngine = new ABPEngine(this, basePath.getAbsolutePath()); | 456 abpEngine = new ABPEngine(this, basePath.getAbsolutePath()); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 475 */ | 475 */ |
| 476 public void checkUpdates() | 476 public void checkUpdates() |
| 477 { | 477 { |
| 478 abpEngine.checkUpdates(); | 478 abpEngine.checkUpdates(); |
| 479 } | 479 } |
| 480 | 480 |
| 481 /** | 481 /** |
| 482 * Sets Alarm to call updater after specified number of minutes or after one | 482 * Sets Alarm to call updater after specified number of minutes or after one |
| 483 * day if | 483 * day if |
| 484 * minutes are set to 0. | 484 * minutes are set to 0. |
| 485 * | 485 * |
| 486 * @param minutes | 486 * @param minutes |
| 487 * number of minutes to wait | 487 * number of minutes to wait |
| 488 */ | 488 */ |
| 489 public void scheduleUpdater(int minutes) | 489 public void scheduleUpdater(int minutes) |
| 490 { | 490 { |
| 491 Calendar updateTime = Calendar.getInstance(); | 491 Calendar updateTime = Calendar.getInstance(); |
| 492 | 492 |
| 493 if (minutes == 0) | 493 if (minutes == 0) |
| 494 { | 494 { |
| 495 // Start update checks at 10:00 GMT... | 495 // Start update checks at 10:00 GMT... |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 Log.e(TAG, e.getMessage(), e); | 552 Log.e(TAG, e.getMessage(), e); |
| 553 } | 553 } |
| 554 | 554 |
| 555 // Set crash handler | 555 // Set crash handler |
| 556 Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this)); | 556 Thread.setDefaultUncaughtExceptionHandler(new CrashHandler(this)); |
| 557 | 557 |
| 558 // Initiate update check | 558 // Initiate update check |
| 559 scheduleUpdater(0); | 559 scheduleUpdater(0); |
| 560 } | 560 } |
| 561 } | 561 } |
| OLD | NEW |