| 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); | 
| +  } | 
| +} | 
|  |