| Index: libadblockplus-android-settings/src/org/adblockplus/libadblockplus/android/settings/AdblockHelper.java |
| diff --git a/libadblockplus-android-settings/src/org/adblockplus/libadblockplus/android/settings/AdblockHelper.java b/libadblockplus-android-settings/src/org/adblockplus/libadblockplus/android/settings/AdblockHelper.java |
| index db3c7e8a8577958f72f4f13246e40c5d2a6ed736..309d60b7f709fbb30e97b7f60e0c8af737284355 100644 |
| --- a/libadblockplus-android-settings/src/org/adblockplus/libadblockplus/android/settings/AdblockHelper.java |
| +++ b/libadblockplus-android-settings/src/org/adblockplus/libadblockplus/android/settings/AdblockHelper.java |
| @@ -21,8 +21,9 @@ import android.content.Context; |
| import android.content.SharedPreferences; |
| import android.util.Log; |
| +import org.adblockplus.libadblockplus.android.AdblockEngine; |
| import org.adblockplus.libadblockplus.android.AdblockEngineProvider; |
| -import org.adblockplus.libadblockplus.android.SingletonEngineProvider; |
| +import org.adblockplus.libadblockplus.android.SingleInstanceEngineProvider; |
| import org.adblockplus.libadblockplus.android.Utils; |
| /** |
| @@ -44,9 +45,10 @@ public class AdblockHelper |
| public static final String PRELOAD_PREFERENCE_NAME = "ADBLOCK_PRELOAD"; |
| private static AdblockHelper _instance; |
| - private SingletonEngineProvider adblockEngineProvider; |
| + private SingleInstanceEngineProvider provider; |
| private AdblockSettingsStorage storage; |
| - private Runnable engineCreatedCallback = new Runnable() |
| + |
| + private final Runnable engineCreatedCallback = new Runnable() |
| { |
| @Override |
| public void run() |
| @@ -55,19 +57,18 @@ public class AdblockHelper |
| if (settings != null) |
| { |
| Log.d(TAG, "Applying saved adblock settings to adblock engine"); |
| - // apply last saved settings to adblock engine |
| - |
| + // apply last saved settings to adblock engine. |
| // all the settings except `enabled` and whitelisted domains list |
| // are saved by adblock engine itself |
| - adblockEngineProvider.getAdblockEngine().setEnabled(settings.isAdblockEnabled()); |
| - adblockEngineProvider.getAdblockEngine().setWhitelistedDomains(settings.getWhitelistedDomains()); |
| + provider.getEngine().setEnabled(settings.isAdblockEnabled()); |
| + provider.getEngine().setWhitelistedDomains(settings.getWhitelistedDomains()); |
| // allowed connection type is saved by filter engine but we need to override it |
| // as filter engine can be not created when changing |
| String connectionType = (settings.getAllowedConnectionType() != null |
| ? settings.getAllowedConnectionType().getValue() |
| : null); |
| - adblockEngineProvider.getAdblockEngine().getFilterEngine().setAllowedConnectionType(connectionType); |
| + provider.getEngine().getFilterEngine().setAllowedConnectionType(connectionType); |
| } |
| else |
| { |
| @@ -76,12 +77,12 @@ public class AdblockHelper |
| } |
| }; |
| - private Runnable engineDisposedCallback = new Runnable() |
| + private final Runnable engineDisposedCallback = new Runnable() |
| { |
| @Override |
| public void run() |
| { |
| - Log.d(TAG, "Releasing adblock settings"); |
| + Log.d(TAG, "Releasing adblock settings storage"); |
| storage = null; |
| } |
| }; |
| @@ -106,13 +107,21 @@ public class AdblockHelper |
| return _instance; |
| } |
| - public AdblockEngineProvider getAdblockEngineProvider() |
| + public AdblockEngineProvider getProvider() |
| { |
| - return adblockEngineProvider; |
| + if (provider == null) |
| + { |
| + throw new IllegalStateException("Usage exception: call init(...) first"); |
| + } |
| + return provider; |
| } |
| public AdblockSettingsStorage getStorage() |
| { |
| + if (storage == null) |
| + { |
| + throw new IllegalStateException("Usage exception: call init(...) first"); |
| + } |
| return storage; |
| } |
| @@ -128,19 +137,19 @@ public class AdblockHelper |
| * @param developmentBuild debug or release? |
| * @param preferenceName Shared Preferences name to store adblock settings |
| */ |
| - public SingletonEngineProvider init(Context context, String basePath, |
| - boolean developmentBuild, String preferenceName) |
| + public SingleInstanceEngineProvider init(Context context, String basePath, |
| + boolean developmentBuild, String preferenceName) |
| { |
| initProvider(context, basePath, developmentBuild); |
| initStorage(context, preferenceName); |
| - return adblockEngineProvider; |
| + return provider; |
| } |
| private void initProvider(Context context, String basePath, boolean developmentBuild) |
| { |
| - this.adblockEngineProvider = new SingletonEngineProvider(context, basePath, developmentBuild); |
| - this.adblockEngineProvider.setEngineCreatedCallback(engineCreatedCallback); |
| - this.adblockEngineProvider.setEngineDisposedCallback(engineDisposedCallback); |
| + provider = new SingleInstanceEngineProvider(context, basePath, developmentBuild); |
| + provider.setEngineCreatedCallback(engineCreatedCallback); |
| + provider.setEngineDisposedCallback(engineDisposedCallback); |
| } |
| private void initStorage(Context context, String settingsPreferenceName) |
| @@ -150,6 +159,46 @@ public class AdblockHelper |
| settingsPreferenceName, |
| Context.MODE_PRIVATE); |
| - this.storage = new SharedPrefsStorage(settingsPrefs); |
| + storage = new SharedPrefsStorage(settingsPrefs); |
| + } |
| + |
| + /** |
| + * The method is deprecated: use .getProvider().retain() instead |
|
diegocarloslima
2018/01/19 12:59:19
It would be also good to add @deprecated in the ja
|
| + */ |
| + @Deprecated public boolean retain(boolean asynchronous) |
|
diegocarloslima
2018/01/19 12:59:19
I would prefer this annotation as it was before, a
|
| + { |
| + return provider.retain(asynchronous); |
| + } |
| + |
| + /** |
| + * The method is deprecated: use .getProvider().waitForReady() instead |
| + */ |
| + @Deprecated public void waitForReady() |
| + { |
| + provider.waitForReady(); |
| + } |
| + |
| + /** |
| + * The method is deprecated: use .getProvider().getEngine() instead |
| + */ |
| + @Deprecated public AdblockEngine getEngine() |
| + { |
| + return provider.getEngine(); |
| + } |
| + |
| + /** |
| + * The method is deprecated: use .getProvider().release() instead |
| + */ |
| + @Deprecated public boolean release() |
| + { |
| + return provider.release(); |
| + } |
| + |
| + /** |
| + * The method is deprecated: use .getProvider().getCounter() instead |
| + */ |
| + @Deprecated public int getCounter() |
| + { |
| + return provider.getCounter(); |
| } |
| } |