Index: adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/MainPreferences.java |
=================================================================== |
--- a/adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/MainPreferences.java |
+++ b/adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/MainPreferences.java |
@@ -18,7 +18,7 @@ |
package org.adblockplus.sbrowser.contentblocker; |
import org.adblockplus.sbrowser.contentblocker.engine.Engine; |
-import org.adblockplus.sbrowser.contentblocker.engine.EngineService; |
+import org.adblockplus.sbrowser.contentblocker.engine.EngineManager; |
import org.adblockplus.adblockplussbrowser.R; |
import org.adblockplus.sbrowser.contentblocker.util.ConnectivityUtils; |
import org.adblockplus.sbrowser.contentblocker.util.SharedPrefsUtils; |
@@ -41,7 +41,7 @@ |
import android.widget.LinearLayout; |
public class MainPreferences extends PreferenceActivity implements |
- EngineService.OnEngineCreatedCallback, Engine.SubscriptionUpdateCallback, |
+ EngineManager.OnEngineCreatedCallback, Engine.SubscriptionUpdateCallback, |
Preference.OnPreferenceClickListener |
{ |
private static final String TAG = MainPreferences.class.getSimpleName(); |
@@ -70,7 +70,7 @@ |
this.getString(R.string.initialization_message)); |
super.onStart(); |
SharedPrefsUtils.registerOnSharedPreferenceChangeListener(this, listener); |
- EngineService.startService(this.getApplicationContext(), this); |
+ EngineManager.getInstance().retrieveEngine(this, this); |
} |
@Override |
@@ -81,6 +81,13 @@ |
this.dismissDialog(); |
} |
+ @Override |
+ protected void onDestroy() |
+ { |
+ EngineManager.getInstance().removeOnEngineCreatedCallback(this); |
+ super.onDestroy(); |
+ } |
+ |
private void dismissDialog() |
{ |
if (this.dialog != null) |
@@ -186,10 +193,10 @@ |
} |
@Override |
- public void onEngineCreated(Engine engine, boolean success) |
+ public void onEngineCreated(Engine engine) |
{ |
- Log.d(TAG, "onEngineCreated: " + success); |
- this.engine = success ? engine : null; |
+ Log.d(TAG, "onEngineCreated: " + (engine != null)); |
+ this.engine = engine; |
if (engine != null) |
{ |
@@ -205,9 +212,12 @@ |
final Fragment preferecesFragment = getFragmentManager() |
.findFragmentByTag(Preferences.class.getSimpleName()); |
- final Preference button = ((Preferences) preferecesFragment) |
- .findPreference(getString(R.string.key_force_update_subscriptions)); |
- button.setOnPreferenceClickListener(this); |
+ if (preferecesFragment != null) |
+ { |
+ final Preference button = ((Preferences) preferecesFragment) |
+ .findPreference(getString(R.string.key_force_update_subscriptions)); |
+ button.setOnPreferenceClickListener(this); |
+ } |
} |
@Override |
@@ -231,7 +241,10 @@ |
{ |
if (ConnectivityUtils.hasNonMeteredConnection(this)) |
{ |
- engine.forceUpdateSubscriptions(false); |
+ if (engine != null) |
+ { |
+ engine.forceUpdateSubscriptions(false); |
+ } |
} |
else |
{ |
@@ -260,7 +273,10 @@ |
@Override |
public void onClick(DialogInterface dialogInterface, int i) |
{ |
- engine.forceUpdateSubscriptions(true); |
+ if (engine != null) |
+ { |
+ engine.forceUpdateSubscriptions(true); |
+ } |
} |
}); |
} |
@@ -281,7 +297,7 @@ |
{ |
engine.connectivityChanged(); |
} |
- else if (getString(R.string.key_acceptable_ads).equals(key)) |
+ else if (getString(R.string.key_acceptable_ads).equals(key) && engine != null) |
{ |
final boolean enabled = SharedPrefsUtils.getBoolean |
(MainPreferences.this, R.string.key_acceptable_ads, true); |