Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/engine/Engine.java

Issue 29505565: Issue 5237 - Correct filter lists not applied on other language installation (Closed)
Patch Set: Fixed copyright text and access level for getAdsSubscriptions() Created Aug. 11, 2017, 1:40 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/engine/Engine.java
===================================================================
--- a/adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/engine/Engine.java
+++ b/adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/engine/Engine.java
@@ -39,16 +39,17 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
import org.adblockplus.adblockplussbrowser.R;
import org.adblockplus.sbrowser.contentblocker.util.SharedPrefsUtils;
+import org.adblockplus.sbrowser.contentblocker.util.SubscriptionUtils;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
@@ -62,19 +63,19 @@ import android.util.Log;
public final class Engine
{
private static final String TAG = Engine.class.getSimpleName();
public static final String USER_FILTERS_TITLE = "__filters";
public static final String USER_EXCEPTIONS_TITLE = "__exceptions";
public static final String SBROWSER_APP_ID = "com.sec.android.app.sbrowser";
+ public static final String EASYLIST_URL = "https://easylist-downloads.adblockplus.org/easylist.txt";
private static final String ACTION_OPEN_SETTINGS = "com.samsung.android.sbrowser.contentBlocker.ACTION_SETTING";
private static final String ACTION_UPDATE = "com.samsung.android.sbrowser.contentBlocker.ACTION_UPDATE";
- private static final String EASYLIST_URL = "https://easylist-downloads.adblockplus.org/easylist.txt";
public static final String SUBSCRIPTIONS_EXCEPTIONSURL = "subscriptions_exceptionsurl";
// The value below specifies an interval of [x, 2*x[, where x =
// INITIAL_UPDATE_CHECK_DELAY
private static final long INITIAL_UPDATE_CHECK_DELAY = 5 * DateUtils.SECOND_IN_MILLIS;
private static final long UPDATE_CHECK_INTERVAL = 30 * DateUtils.MINUTE_IN_MILLIS;
private static final long BROADCAST_COMBINATION_DELAY = 2500;
@@ -200,16 +201,21 @@ public final class Engine
final ConnectivityManager connManager = (ConnectivityManager) this.serviceContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo current = connManager.getActiveNetworkInfo();
if (current == null)
{
return false;
}
+ if (wasFirstRun())
+ {
+ return true;
+ }
+
final boolean wifiOnly = "1".equals(SharedPrefsUtils.getString(
this.serviceContext, R.string.key_automatic_updates , "1"));
if (wifiOnly)
{
if (current.isConnected() && !current.isRoaming())
{
switch (current.getType())
@@ -312,19 +318,34 @@ public final class Engine
}
}
public DefaultSubscriptionInfo getDefaultSubscriptionInfoForUrl(final String url)
{
return this.defaultSubscriptions.getForUrl(url);
}
- public boolean wasFirstRun()
+ /**
+ * If the user starts the app for the first time, we force to update the subscription which was
+ * selected as the default, no matter if he has a WIFI connection or not. From the second start
+ * we only update when the user has a WIFI connection.
+ *
+ * @return a boolean that indicated if this is the first start of the app
+ */
+ private boolean wasFirstRun()
{
- return this.wasFirstRun;
+ if (wasFirstRun)
+ {
+ this.wasFirstRun = false;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}
private void migrateFromPreviousVersion(final Context context)
{
try
{
final int versionCode = context.getPackageManager().getPackageInfo(context.getPackageName(),
0).versionCode;
@@ -381,17 +402,19 @@ public final class Engine
engine.wasFirstRun = engine.subscriptions.wasUnitialized();
if (engine.subscriptions.wasUnitialized())
{
Log.d(TAG, "Subscription storage was uninitialized, initializing...");
try (final InputStream easylistTxt = context.getResources().openRawResource(R.raw.easylist))
{
final Subscription easylist = engine.subscriptions.add(Subscription
- .create(EASYLIST_URL)
+ // Use bundled EasyList as default and update it with locale specific list later
+ // see: https://issues.adblockplus.org/ticket/5237
+ .create(SubscriptionUtils.chooseDefaultSubscriptionUrl(engine.defaultSubscriptions.getAdsSubscriptions()))
.parseLines(readLines(easylistTxt)));
easylist.putMeta(Subscription.KEY_UPDATE_TIMESTAMP, "0");
easylist.setEnabled(true);
}
Log.d(TAG, "Added and enabled bundled easylist");
try (final InputStream exceptionsTxt = context.getResources()
.openRawResource(R.raw.exceptionrules))

Powered by Google App Engine
This is Rietveld