package net.miz_hi.smileessence.preference;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import net.miz_hi.smileessence.preference.EnumPreferenceKey.EnumValueType;
public class PreferenceHelper
{
private SharedPreferences preference;
public PreferenceHelper(SharedPreferences pref)
{
this.preference = pref;
}
public void putPreferenceValue(EnumPreferenceKey key, Object value)
{
putPreferenceValue(key.getKey(), key.getType(), value);
}
public <T> T getPreferenceValue(EnumPreferenceKey key)
{
return (T) getPreferenceValue(key.getKey(), key.getType(), key.getDefaultValue());
}
public void putPreferenceValue(String key, EnumValueType type, Object value)
{
Editor editor = preference.edit();
if (type == EnumValueType.BOOLEAN)
{
editor.putBoolean(key, (Boolean) value);
}
else if (type == EnumValueType.STRING)
{
editor.putString(key, (String) value);
}
else if (type == EnumValueType.INTEGER)
{
editor.putInt(key, (Integer) value);
}
else if (type == EnumValueType.FLOAT)
{
editor.putFloat(key, (Float) value);
}
else if (type == EnumValueType.LONG)
{
editor.putLong(key, (Long) value);
}
editor.commit();
}
public <T> T getPreferenceValue(String key, EnumValueType type, T defaultValue)
{
if (type == EnumValueType.BOOLEAN)
{
return (T) (Boolean) preference.getBoolean(key, (Boolean) defaultValue);
}
else if (type == EnumValueType.STRING)
{
return (T) preference.getString(key, (String) defaultValue);
}
else if (type == EnumValueType.INTEGER)
{
return (T) (Integer) preference.getInt(key, (Integer) defaultValue);
}
else if (type == EnumValueType.FLOAT)
{
return (T) (Float) preference.getFloat(key, (Float) defaultValue);
}
else if (type == EnumValueType.LONG)
{
return (T) (Long) preference.getLong(key, (Long) defaultValue);
}
else
{
return defaultValue;
}
}
}