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

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

Issue 29449601: Issue 5235 - Refactoring on SharedPrefs (Closed)
Patch Set: Fixing unregisterOnSharedPreferenceChangeListener using wrapper Created May 31, 2017, 2:33 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/MainPreferences.java
===================================================================
--- a/adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/MainPreferences.java
+++ b/adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/MainPreferences.java
@@ -15,93 +15,70 @@
* along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
*/
package org.adblockplus.sbrowser.contentblocker;
import org.adblockplus.sbrowser.contentblocker.engine.Engine;
import org.adblockplus.sbrowser.contentblocker.engine.EngineService;
import org.adblockplus.adblockplussbrowser.R;
+import org.adblockplus.sbrowser.contentblocker.util.SharedPrefsUtils;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.text.Html;
import android.util.Log;
import android.view.Gravity;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainPreferences extends PreferenceActivity implements
- EngineService.OnEngineCreatedCallback, SharedPreferences.OnSharedPreferenceChangeListener
+ EngineService.OnEngineCreatedCallback, SharedPrefsUtils.OnSharedPreferenceChangeListener
{
private static final String TAG = MainPreferences.class.getSimpleName();
private Engine engine = null;
private AlertDialog dialog;
private int dialogTitleResId;
- private SharedPreferences getSharedPreferences()
- {
- return PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
- }
-
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
PreferenceManager.setDefaultValues(this, R.xml.preferences_main, false);
this.getFragmentManager()
.beginTransaction()
.replace(android.R.id.content, new Preferences())
.commit();
-
- // This try/catch block is a workaround for a preference mismatch
- // issue. We check for a type mismatch in one particular key and,
- // if there's a mismatch, clean sweep the preferences.
- // See: https://issues.adblockplus.org/ticket/3931
- try
- {
- this.getSharedPreferences().getBoolean(
- this.getString(R.string.key_application_activated),
- false);
- }
- catch(final Throwable t)
- {
- this.getSharedPreferences()
- .edit()
- .clear()
- .commit();
- }
}
@Override
protected void onStart()
{
this.dialogTitleResId = R.string.initialization_title;
this.dialog = ProgressDialog.show(this,
this.getString(this.dialogTitleResId),
this.getString(R.string.initialization_message));
super.onStart();
- this.getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
+ SharedPrefsUtils.registerOnSharedPreferenceChangeListener(this, this);
EngineService.startService(this.getApplicationContext(), this);
}
@Override
protected void onStop()
{
super.onStop();
- this.getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
+ SharedPrefsUtils.unregisterOnSharedPreferenceChangeListener(this, this);
this.dismissDialog();
}
private void dismissDialog()
{
if (this.dialog != null)
{
this.dialogTitleResId = 0;
@@ -141,49 +118,45 @@ public class MainPreferences extends Pre
else
{
this.checkAAStatusAndProceed();
}
}
private void checkAAStatusAndProceed()
{
- final SharedPreferences prefs = this.getSharedPreferences();
- final String keyAaInfoShown = this.getString(R.string.key_aa_info_shown);
- final boolean aaInfoShown = prefs.getBoolean(keyAaInfoShown, false);
+ final boolean aaInfoShown = SharedPrefsUtils.getBoolean(this, R.string.key_aa_info_shown, false);
if (!aaInfoShown)
{
this.dialogTitleResId = R.string.aa_dialog_title;
this.dialog = new AlertDialog.Builder(this)
.setCancelable(false)
.setTitle(this.dialogTitleResId)
.setMessage(Html.fromHtml(getString(R.string.aa_dialog_message)))
.setNeutralButton(R.string.aa_dialog_button, new OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
- prefs.edit()
- .putBoolean(keyAaInfoShown, true)
- .commit();
+ SharedPrefsUtils.putBoolean(MainPreferences.this, R.string.key_aa_info_shown, true);
MainPreferences.this.checkSetupStatus();
}
}).create();
this.dialog.show();
}
else
{
this.checkSetupStatus();
}
}
private void checkSetupStatus()
{
- final boolean applicationActivated = this.getSharedPreferences()
- .getBoolean(this.getString(R.string.key_application_activated), false);
+ final boolean applicationActivated = SharedPrefsUtils.getBoolean(
+ this, R.string.key_application_activated, false);
if (!applicationActivated)
{
Log.d(TAG, "Showing setup dialog");
this.dialogTitleResId = R.string.setup_dialog_title;
this.dialog = new AlertDialog.Builder(this)
.setCancelable(false)
.setTitle(this.dialogTitleResId)
@@ -217,25 +190,25 @@ public class MainPreferences extends Pre
{
this.dismissDialog();
this.checkForCompatibleSBrowserAndProceed();
}
}
@Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
+ public void onSharedPreferenceChanged(String key)
{
if (this.getString(R.string.key_automatic_updates).equals(key) && this.engine != null)
{
this.engine.connectivityChanged();
}
else if (this.getString(R.string.key_acceptable_ads).equals(key))
{
- boolean enabled = sharedPreferences.getBoolean(key, true);
+ final boolean enabled = SharedPrefsUtils.getBoolean(this, R.string.key_acceptable_ads, true);
final String id = "url:" + this.engine.getPrefsDefault(Engine.SUBSCRIPTIONS_EXCEPTIONSURL);
Log.d(TAG, "Acceptable ads " + (enabled ? "enabled" : "disabled"));
this.engine.changeSubscriptionState(id, enabled);
}
else if (this.getString(R.string.key_application_activated).equals(key))
{
if (this.dialogTitleResId == R.string.setup_dialog_title)
{

Powered by Google App Engine
This is Rietveld