Index: adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/util/SharedPrefsUtils.java |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/adblockplussbrowser/src/org/adblockplus/sbrowser/contentblocker/util/SharedPrefsUtils.java |
@@ -0,0 +1,167 @@ |
+/* |
+ * This file is part of Adblock Plus <https://adblockplus.org/>, |
+ * Copyright (C) 2006-2016 Eyeo GmbH |
+ * |
+ * Adblock Plus is free software: you can redistribute it and/or modify |
+ * it under the terms of the GNU General Public License version 3 as |
+ * published by the Free Software Foundation. |
+ * |
+ * Adblock Plus is distributed in the hope that it will be useful, |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ * GNU General Public License for more details. |
+ * |
+ * You should have received a copy of the GNU General Public License |
+ * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
+ */ |
+ |
+package org.adblockplus.sbrowser.contentblocker.util; |
+ |
+import android.content.Context; |
+import android.content.SharedPreferences; |
+import android.preference.PreferenceManager; |
+ |
+import java.util.Set; |
+ |
+public class SharedPrefsUtils |
+{ |
+ |
+ public static void putBoolean(Context context, int keyResId, boolean value) |
+ { |
+ final SharedPreferences.Editor editor = getDefaultSharedPreferences(context).edit(); |
+ editor.putBoolean(context.getString(keyResId), value).apply(); |
+ } |
+ |
+ public static boolean getBoolean(Context context, int keyResId, boolean defValue) |
+ { |
+ final SharedPreferences preferences = getDefaultSharedPreferences(context); |
+ try |
+ { |
+ return preferences.getBoolean(context.getString(keyResId), defValue); |
+ } |
+ catch (ClassCastException e) |
+ { |
+ return defValue; |
+ } |
+ } |
+ |
+ public static void putInt(Context context, int keyResId, int value) |
+ { |
+ final SharedPreferences.Editor editor = getDefaultSharedPreferences(context).edit(); |
+ editor.putInt(context.getString(keyResId), value).apply(); |
+ } |
+ |
+ public static int getInt(Context context, int keyResId, int defValue) |
+ { |
+ final SharedPreferences preferences = getDefaultSharedPreferences(context); |
+ try |
+ { |
+ return preferences.getInt(context.getString(keyResId), defValue); |
+ } |
+ catch (ClassCastException e) |
+ { |
+ return defValue; |
+ } |
+ } |
+ |
+ public static void putString(Context context, int keyResId, String value) |
+ { |
+ final SharedPreferences.Editor editor = getDefaultSharedPreferences(context).edit(); |
+ editor.putString(context.getString(keyResId), value).apply(); |
+ } |
+ |
+ public static String getString(Context context, int keyResId, String defValue) |
+ { |
+ final SharedPreferences preferences = getDefaultSharedPreferences(context); |
+ try |
+ { |
+ return preferences.getString(context.getString(keyResId), defValue); |
+ } |
+ catch (ClassCastException e) |
+ { |
+ return defValue; |
+ } |
+ } |
+ |
+ public static void putStringSet(Context context, int keyResId, Set<String> values) |
+ { |
+ final SharedPreferences.Editor editor = getDefaultSharedPreferences(context).edit(); |
+ editor.putStringSet(context.getString(keyResId), values).apply(); |
+ } |
+ |
+ public static Set<String> getStringSet(Context context, int keyResId, Set<String> defValues) |
+ { |
+ final SharedPreferences preferences = getDefaultSharedPreferences(context); |
+ try |
+ { |
+ return preferences.getStringSet(context.getString(keyResId), defValues); |
+ } |
+ catch (ClassCastException e) |
+ { |
+ return defValues; |
+ } |
+ } |
+ |
+ public static void registerOnSharedPreferenceChangeListener(Context context, |
+ OnSharedPreferenceChangeListener listener) |
+ { |
+ getDefaultSharedPreferences(context).registerOnSharedPreferenceChangeListener( |
+ new OnSharedPreferenceChangeListenerWrapper(listener) |
+ ); |
+ } |
+ |
+ public static void unregisterOnSharedPreferenceChangeListener(Context context, |
+ OnSharedPreferenceChangeListener listener) |
+ { |
+ getDefaultSharedPreferences(context).unregisterOnSharedPreferenceChangeListener( |
+ new OnSharedPreferenceChangeListenerWrapper(listener) |
+ ); |
+ } |
+ |
+ private static SharedPreferences getDefaultSharedPreferences(Context context) |
+ { |
+ return PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); |
+ } |
+ |
+ private static class OnSharedPreferenceChangeListenerWrapper |
+ implements SharedPreferences.OnSharedPreferenceChangeListener |
+ { |
+ |
+ private final OnSharedPreferenceChangeListener listener; |
+ |
+ OnSharedPreferenceChangeListenerWrapper(OnSharedPreferenceChangeListener listener) { |
+ this.listener = listener; |
+ } |
+ |
+ @Override |
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) |
+ { |
+ this.listener.onSharedPreferenceChanged(key); |
+ } |
+ |
+ @Override |
+ public boolean equals(Object obj) |
+ { |
+ if (this == obj) |
+ { |
+ return true; |
+ } |
+ else if (obj instanceof OnSharedPreferenceChangeListenerWrapper) |
+ { |
+ return this.listener.equals(((OnSharedPreferenceChangeListenerWrapper) obj).listener); |
+ } |
+ return false; |
+ } |
+ |
+ @Override |
+ public int hashCode() |
+ { |
+ return this.listener.hashCode(); |
+ } |
+ } |
+ |
+ public interface OnSharedPreferenceChangeListener |
+ { |
+ void onSharedPreferenceChanged(String key); |
+ } |
+} |