diff options
Diffstat (limited to 'src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java')
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java index d7a0d1c..de3883a 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java @@ -36,6 +36,8 @@ import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Pre import org.cyanogenmod.wallpapers.photophase.preferences.SeekBarProgressPreference.OnDisplayProgress; import org.cyanogenmod.wallpapers.photophase.widgets.ColorPickerPreference; +import java.util.Set; + /** * A fragment class with all the general settings */ @@ -58,6 +60,7 @@ public class GeneralPreferenceFragment extends PreferenceFragment { private final OnPreferenceChangeListener mOnChangeListener = new OnPreferenceChangeListener() { @Override + @SuppressWarnings("unchecked") public boolean onPreferenceChange(final Preference preference, Object newValue) { String key = preference.getKey(); if (DEBUG) Log.d(TAG, "Preference changed: " + key + "=" + newValue); @@ -71,12 +74,17 @@ public class GeneralPreferenceFragment extends PreferenceFragment { mRedrawFlag = true; } else if (key.compareTo("ui_transition_types") == 0) { mRedrawFlag = true; + updateTransitionTypeSummary((Set<String>) newValue); } else if (key.compareTo("ui_transition_interval") == 0) { mRedrawFlag = true; } else if (key.compareTo("ui_effect_types") == 0) { mRedrawFlag = true; mEmptyTextureQueueFlag = true; + updateEffectTypeSummary((Set<String>) newValue); + } else if (key.compareTo("ui_touch_action") == 0) { + updateTouchActionSummary((String) newValue); } + return true; } }; @@ -109,6 +117,7 @@ public class GeneralPreferenceFragment extends PreferenceFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + final String formatDisabled = getString(R.string.format_disabled); final String formatSeconds = getString(R.string.format_seconds); final String formatMinutes = getString(R.string.format_minutes); final String formatDim = getString(R.string.format_dim); @@ -135,12 +144,14 @@ public class GeneralPreferenceFragment extends PreferenceFragment { mTouchActions = (ListPreference)findPreference("ui_touch_action"); mTouchActions.setOnPreferenceChangeListener(mOnChangeListener); + updateTouchActionSummary(mTouchActions.getValue()); mFixAspectRatio = (CheckBoxPreference)findPreference("ui_fix_aspect_ratio"); mFixAspectRatio.setOnPreferenceChangeListener(mOnChangeListener); mTransitionsTypes = (MultiSelectListPreference)findPreference("ui_transition_types"); mTransitionsTypes.setOnPreferenceChangeListener(mOnChangeListener); + updateTransitionTypeSummary(mTransitionsTypes.getValues()); final int[] transitionsIntervals = res.getIntArray(R.array.transitions_intervals_values); mTransitionsInterval = (SeekBarProgressPreference)findPreference("ui_transition_interval"); @@ -155,20 +166,43 @@ public class GeneralPreferenceFragment extends PreferenceFragment { mTransitionsInterval.setOnDisplayProgress(new OnDisplayProgress() { @Override public String onDisplayProgress(int progress) { - if (transitionsIntervals[progress] < 60000) { + int interval = transitionsIntervals[progress]; + if (interval == 0) { + mTransitionsInterval.setFormat(formatDisabled); + return null; + } else if (interval < 60000) { // Seconds mTransitionsInterval.setFormat(formatSeconds); - return String.valueOf(transitionsIntervals[progress] / 1000); + return String.valueOf(interval / 1000); } // Minutes mTransitionsInterval.setFormat(formatMinutes); - return String.valueOf(transitionsIntervals[progress] / 1000 / 60); + return String.valueOf(interval / 1000 / 60); } }); mTransitionsInterval.setOnPreferenceChangeListener(mOnChangeListener); mEffectsTypes = (MultiSelectListPreference)findPreference("ui_effect_types"); mEffectsTypes.setOnPreferenceChangeListener(mOnChangeListener); + updateEffectTypeSummary(mTransitionsTypes.getValues()); + } + + private void updateTouchActionSummary(String value) { + int selectionIndex = mTouchActions.findIndexOfValue(value); + String[] summaries = getResources().getStringArray(R.array.touch_actions_summaries); + mTouchActions.setSummary(getString(R.string.pref_general_touch_action_summary_format, + summaries[selectionIndex])); } + private void updateTransitionTypeSummary(Set<String> selected) { + CharSequence summary = getString(R.string.pref_general_transitions_types_summary_format, + selected.size(), mTransitionsTypes.getEntries().length); + mTransitionsTypes.setSummary(summary); + } + + private void updateEffectTypeSummary(Set<String> selected) { + CharSequence summary = getString(R.string.pref_general_effects_types_summary_format, + selected.size(), mEffectsTypes.getEntries().length); + mEffectsTypes.setSummary(summary); + } } |