package com.distantfuture.videos.misc;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import java.util.Set;
public class Preferences implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences sharedPreferences;
private PreferenceCacheListener mListener;
public Preferences(Context context, PreferenceCacheListener listener) {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
mListener = listener;
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
// this never gets called, but putting code that might belong here anyway for now
void release() {
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this);
}
public String getString(String key, String defaultValue) {
return sharedPreferences.getString(key, defaultValue);
}
public void setString(String key, String value) {
sharedPreferences.edit().putString(key, value).commit();
}
public boolean getBoolean(String key, boolean defaultValue) {
return sharedPreferences.getBoolean(key, defaultValue);
}
public void setBoolean(String key, boolean value) {
sharedPreferences.edit().putBoolean(key, value).commit();
}
public int getInt(String key, int defaultValue) {
return sharedPreferences.getInt(key, defaultValue);
}
public void setInt(String key, int value) {
sharedPreferences.edit().putInt(key, value).commit();
}
// SharedPreferences.OnSharedPreferenceChangeListener
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
mListener.prefChanged(key);
}
public Set<String> getStringSet(String key) {
return sharedPreferences.getStringSet(key, null);
}
public void setStringSet(String key, Set<String> set) {
sharedPreferences.edit().putStringSet(key, set).commit();
}
public interface PreferenceCacheListener {
public void prefChanged(String prefName);
}
}