package moontime.droid.store; import moontime.droid.R; import moontime.droid.WidgetConfigurationActivity; import moontime.droid.entity.WidgetTheme; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.util.Log; public class WidgetPreferences { private static final String PREFS_PREFIX = "moontime.droid.widget-preferences"; private final int _widgetId; private String _datePattern; private WidgetTheme _theme; private WidgetPreferences(int widgetId) { _widgetId = widgetId; } public int getWidgetId() { return _widgetId; } public String getDatePattern() { return _datePattern; } public WidgetTheme getTheme() { return _theme; } public String getPreferencesKey() { return PREFS_PREFIX + "." + getWidgetId(); } public void storeToPreferences(Context context) { SharedPreferences preferences = context.getSharedPreferences(getPreferencesKey(), Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("datePatern", _datePattern); editor.putString("theme", _theme.toString()); editor.commit(); Log.i("config", "stored preferences for widget '" + getWidgetId() + "' to '" + getPreferencesKey() + "'"); } public static WidgetPreferences initFromView(WidgetConfigurationActivity activity) { WidgetPreferences widgetPreferences = new WidgetPreferences(activity.getWidgetId()); widgetPreferences._datePattern = activity.getDatePatternText().getText().toString(); widgetPreferences._theme = (WidgetTheme) activity.getThemeSpinner().getSelectedItem(); return widgetPreferences; } public static WidgetPreferences initFromPreferences(Context context, int widgetId) { WidgetPreferences widgetPreferences = new WidgetPreferences(widgetId); SharedPreferences preferences = context.getSharedPreferences(widgetPreferences.getPreferencesKey(), Context.MODE_PRIVATE); widgetPreferences._datePattern = preferences.getString("datePattern", context.getString(R.string.conf_default_datePattern)); widgetPreferences._theme = WidgetTheme.valueOf(preferences.getString("theme", WidgetTheme.DEFAULT.name())); return widgetPreferences; } }