package com.solderbyte.openfit; import java.util.LinkedHashSet; import java.util.Set; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; import android.util.Log; public class OpenFitSavedPreferences { private static final String LOG_TAG = "OpenFit:OpenFitSavedPreferences"; public static final String PREFS_NAME = "OpenFitSettings"; public static final String PREFS_DEFAULT = "DEFAULT"; public static final boolean PREFS_DEFAULT_BOOL = false; public static final int PREFS_DEFAULT_INT = 0; private SharedPreferences preferences; private Editor editor; public String preference_list_devices_value; public String preference_list_devices_entry; public boolean preference_checkbox_phone; public boolean preference_checkbox_sms; public boolean preference_checkbox_exercise_gps; public boolean preference_checkbox_time; public String preference_list_weather_value; public String preference_list_weather_entry; public Set<String> set_packageNames = new LinkedHashSet<String>(); public OpenFitSavedPreferences(Context context) { this.load(context); } public void load(Context context) { preferences = PreferenceManager.getDefaultSharedPreferences(context); editor = preferences.edit(); Log.d(LOG_TAG, "Loading saved preferences"); preference_list_devices_value = preferences.getString("preference_list_devices_value"+":string", PREFS_DEFAULT); preference_list_devices_entry = preferences.getString("preference_list_devices_entry"+":string", PREFS_DEFAULT); preference_checkbox_phone = preferences.getBoolean("preference_checkbox_phone"+":boolean", PREFS_DEFAULT_BOOL); preference_checkbox_sms = preferences.getBoolean("preference_checkbox_sms"+":boolean", PREFS_DEFAULT_BOOL); preference_checkbox_exercise_gps = preferences.getBoolean("preference_checkbox_exercise_gps"+":boolean", PREFS_DEFAULT_BOOL); preference_checkbox_time = preferences.getBoolean("preference_checkbox_time"+":boolean", PREFS_DEFAULT_BOOL); preference_list_weather_value = preferences.getString("preference_list_weather_value"+":string", PREFS_DEFAULT); preference_list_weather_entry = preferences.getString("preference_list_weather_entry"+":string", PREFS_DEFAULT); set_packageNames = preferences.getStringSet("set_packageNames", set_packageNames); } public void saveBoolean(String key, boolean value) { //Log.d(LOG_TAG, "Saving: " + key + ":boolean :" + value); editor.putBoolean(key + ":boolean", value); editor.commit(); } public void saveInt(String string, int n) { this.editor.putInt(string + ":string", n); this.editor.commit(); } public void saveString(String key, String value) { //Log.d(LOG_TAG, "Saving: " + key + ":string :" + value); editor.putString(key + ":string", value); editor.commit(); } public void saveSet(String value) { //Log.d(LOG_TAG, "Adding to Set: " + value); set_packageNames.add(value); editor.putStringSet("set_packageNames", set_packageNames); editor.commit(); } public boolean getBoolean(String key) { //Log.d(LOG_TAG, "Getting: " + key + ":boolean"); boolean value = preferences.getBoolean(key+":boolean", PREFS_DEFAULT_BOOL); return value; } public int getInt(String string) { return this.preferences.getInt(string + ":string", PREFS_DEFAULT_INT); } public String getString(String key) { //Log.d(LOG_TAG, "Getting: " + key + ":string"); String value = preferences.getString(key + ":string", PREFS_DEFAULT); return value; } public Set<String> getSet() { Set<String> packageNames = new LinkedHashSet<String>(); packageNames = preferences.getStringSet("set_packageNames", packageNames); //Log.d(LOG_TAG, "Getting Set[" + packageNames.size() + "]: " + packageNames); return packageNames; } public void removeBoolean(String key) { //Log.d(LOG_TAG, "Removing: " + key + ":boolean"); editor.remove(key + ":boolean"); editor.commit(); } public void removeString(String key) { //Log.d(LOG_TAG, "Removing: " + key + ":string"); editor.remove(key + ":string"); editor.commit(); } public void removeSet(String value) { //Log.d(LOG_TAG, "Removing Set: " + value); set_packageNames.remove(value); editor.putStringSet("set_packageNames", set_packageNames); editor.commit(); } }