diff options
author | Steve Kondik <shade@chemlab.org> | 2014-05-01 22:43:12 -0700 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2015-12-28 16:28:28 +0200 |
commit | 87ab41314d6211151d39b2cdec3ba87826037515 (patch) | |
tree | 19a60c63e89096b9976fec88cd83b897c51d831c /src/com/android/settings/DevelopmentSettings.java | |
parent | fcb4673ddb3d34e0ad7217c1bec0630149e59564 (diff) | |
download | packages_apps_Settings-87ab41314d6211151d39b2cdec3ba87826037515.zip packages_apps_Settings-87ab41314d6211151d39b2cdec3ba87826037515.tar.gz packages_apps_Settings-87ab41314d6211151d39b2cdec3ba87826037515.tar.bz2 |
settings: Animation scale seekbars
* Use a seekbar preference to allow setting arbitrary animation scale values
Change-Id: I4ceaf0dc74e6e044e36cf3652bfc1efb33890380
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r-- | src/com/android/settings/DevelopmentSettings.java | 51 |
1 files changed, 31 insertions, 20 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 24fe2bb..b6c57b3 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -60,6 +60,7 @@ import android.os.UserManager; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; +import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceGroup; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; @@ -93,7 +94,8 @@ import java.util.List; */ public class DevelopmentSettings extends SettingsPreferenceFragment implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, - OnPreferenceChangeListener, SwitchBar.OnSwitchChangeListener, Indexable { + OnPreferenceChangeListener, SwitchBar.OnSwitchChangeListener, Indexable, + OnPreferenceClickListener { private static final String TAG = "DevelopmentSettings"; /** @@ -262,9 +264,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private ListPreference mUsbConfiguration; private ListPreference mTrackFrameTime; private ListPreference mShowNonRectClip; - private ListPreference mWindowAnimationScale; - private ListPreference mTransitionAnimationScale; - private ListPreference mAnimatorDurationScale; + private AnimationScalePreference mWindowAnimationScale; + private AnimationScalePreference mTransitionAnimationScale; + private AnimationScalePreference mAnimatorDurationScale; private ListPreference mOverlayDisplayDevices; private ListPreference mOpenGLTraces; @@ -420,9 +422,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment mLogdSize = addListPreference(SELECT_LOGD_SIZE_KEY); mUsbConfiguration = addListPreference(USB_CONFIGURATION_KEY); - mWindowAnimationScale = addListPreference(WINDOW_ANIMATION_SCALE_KEY); - mTransitionAnimationScale = addListPreference(TRANSITION_ANIMATION_SCALE_KEY); - mAnimatorDurationScale = addListPreference(ANIMATOR_DURATION_SCALE_KEY); + mWindowAnimationScale = findAndInitAnimationScalePreference(WINDOW_ANIMATION_SCALE_KEY); + mTransitionAnimationScale = findAndInitAnimationScalePreference(TRANSITION_ANIMATION_SCALE_KEY); + mAnimatorDurationScale = findAndInitAnimationScalePreference(ANIMATOR_DURATION_SCALE_KEY); mOverlayDisplayDevices = addListPreference(OVERLAY_DISPLAY_DEVICES_KEY); mEnableMultiWindow = findAndInitSwitchPref(ENABLE_MULTI_WINDOW_KEY); if (!showEnableMultiWindowPreference()) { @@ -494,6 +496,14 @@ public class DevelopmentSettings extends SettingsPreferenceFragment } } + private AnimationScalePreference findAndInitAnimationScalePreference(String key) { + AnimationScalePreference pref = (AnimationScalePreference) findPreference(key); + pref.setOnPreferenceChangeListener(this); + pref.setOnPreferenceClickListener(this); + mAllPrefs.add(pref); + return pref; + } + private SwitchPreference findAndInitSwitchPref(String key) { SwitchPreference pref = (SwitchPreference) findPreference(key); if (pref == null) { @@ -1595,23 +1605,13 @@ public class DevelopmentSettings extends SettingsPreferenceFragment getActivity().getContentResolver(), Settings.Global.ALWAYS_FINISH_ACTIVITIES, 0) != 0); } - private void updateAnimationScaleValue(int which, ListPreference pref) { + private void updateAnimationScaleValue(int which, AnimationScalePreference pref) { try { float scale = mWindowManager.getAnimationScale(which); if (scale != 1) { mHaveDebugSettings = true; } - CharSequence[] values = pref.getEntryValues(); - for (int i=0; i<values.length; i++) { - float val = Float.parseFloat(values[i].toString()); - if (scale <= val) { - pref.setValueIndex(i); - pref.setSummary(pref.getEntries()[i]); - return; - } - } - pref.setValueIndex(values.length-1); - pref.setSummary(pref.getEntries()[0]); + pref.setScale(scale); } catch (RemoteException e) { } } @@ -1622,7 +1622,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment updateAnimationScaleValue(2, mAnimatorDurationScale); } - private void writeAnimationScaleOption(int which, ListPreference pref, Object newValue) { + private void writeAnimationScaleOption(int which, AnimationScalePreference pref, + Object newValue) { try { float scale = newValue != null ? Float.parseFloat(newValue.toString()) : 1; mWindowManager.setAnimationScale(which, scale); @@ -1837,6 +1838,16 @@ public class DevelopmentSettings extends SettingsPreferenceFragment } @Override + public boolean onPreferenceClick(Preference preference) { + if (preference == mWindowAnimationScale || + preference == mTransitionAnimationScale || + preference == mAnimatorDurationScale) { + ((AnimationScalePreference) preference).click(); + } + return false; + } + + @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (Utils.isMonkeyRunning()) { return false; |