package org.emdev.common.settings.base; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import org.emdev.BaseDroidApp; import org.json.JSONObject; public class BooleanPreferenceDefinition extends BasePreferenceDefinition<Boolean> { private final Boolean defValue; public BooleanPreferenceDefinition(final int keyRes, final int defValRef) { super(keyRes); defValue = Boolean.parseBoolean(BaseDroidApp.context.getString(defValRef)); } @Override public Boolean getPreferenceValue(final SharedPreferences prefs) { return getPreferenceValue(prefs, defValue); } public boolean getPreferenceValue(final SharedPreferences prefs, final boolean defValue) { if (!prefs.contains(key)) { prefs.edit().putBoolean(key, defValue).commit(); } return prefs.getBoolean(key, defValue); } public void setPreferenceValue(final Editor edit, final boolean value) { edit.putBoolean(key, value); } @Override public void restore(final JSONObject root, final Editor edit) { final String value = root.optString(key); setPreferenceValue(edit, value != null ? Boolean.parseBoolean(value) : defValue); } public boolean getDefaultValue() { return defValue; } }