diff options
author | Chet Haase <chet@google.com> | 2012-02-02 10:42:44 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-02-02 10:42:44 -0800 |
commit | 659793bcd0e0d08306d841f3836a891e56e4e756 (patch) | |
tree | e60ce83db8cfe8610852d97913df45fddc4f694b /core | |
parent | 306eed22e58381bbd694e3a297adc2313cc50c85 (diff) | |
parent | c38fa1f63674971f9ac6ced1a449fb81026b62f7 (diff) | |
download | frameworks_base-659793bcd0e0d08306d841f3836a891e56e4e756.zip frameworks_base-659793bcd0e0d08306d841f3836a891e56e4e756.tar.gz frameworks_base-659793bcd0e0d08306d841f3836a891e56e4e756.tar.bz2 |
Merge "Add Developer Option setting for Animator scaling."
Diffstat (limited to 'core')
-rwxr-xr-x | core/java/android/animation/ValueAnimator.java | 20 | ||||
-rw-r--r-- | core/java/android/provider/Settings.java | 7 | ||||
-rw-r--r-- | core/java/android/view/ViewRootImpl.java | 6 |
3 files changed, 21 insertions, 12 deletions
diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index 3f28e67..cc1efb9 100755 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -54,7 +54,6 @@ public class ValueAnimator extends Animator { * Internal constants */ private static float sDurationScale = 1.0f; - private static boolean sDurationScaleInitialized = false; /** * Messages sent to timing handler: START is sent when an animation first begins. @@ -161,7 +160,7 @@ public class ValueAnimator extends Animator { // // How long the animation should last in ms - private long mDuration = 300; + private long mDuration = (long)(300 * sDurationScale); private long mUnscaledDuration = 300; // The amount of time in ms to delay starting the animation after start() is called @@ -222,21 +221,20 @@ public class ValueAnimator extends Animator { */ public static final int INFINITE = -1; + + /** + * @hide + */ + public static void setDurationScale(float durationScale) { + sDurationScale = durationScale; + } + /** * Creates a new ValueAnimator object. This default constructor is primarily for * use internally; the factory methods which take parameters are more generally * useful. */ public ValueAnimator() { - if (!sDurationScaleInitialized) { - // Scale value initialized per-process when first animator is constructed - String scaleString = SystemProperties.get("persist.sys.ui.animation"); - if (!scaleString.isEmpty()) { - sDurationScale = Float.parseFloat(scaleString); - } - sDurationScaleInitialized = true; - } - mDuration *= sDurationScale; } /** diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index f14d27e..207810c 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -1678,6 +1678,13 @@ public final class Settings { public static final String TRANSITION_ANIMATION_SCALE = "transition_animation_scale"; /** + * Scaling factor for Animator-based animations. This affects both the start delay and + * duration of all such animations. Setting to 0 will cause animations to end immediately. + * The default value is 1. + */ + public static final String ANIMATOR_DURATION_SCALE = "animator_duration_scale"; + + /** * Scaling factor for normal window animations. Setting to 0 will disable window * animations. * @hide diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index eefebd5..cbf4b5a 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -18,6 +18,7 @@ package android.view; import android.Manifest; import android.animation.LayoutTransition; +import android.animation.ValueAnimator; import android.app.ActivityManagerNative; import android.content.ClipDescription; import android.content.ComponentCallbacks; @@ -323,8 +324,11 @@ public final class ViewRootImpl extends Handler implements ViewParent, if (!mInitialized) { try { InputMethodManager imm = InputMethodManager.getInstance(mainLooper); - sWindowSession = Display.getWindowManager().openSession( + IWindowManager windowManager = Display.getWindowManager(); + sWindowSession = windowManager.openSession( imm.getClient(), imm.getInputContext()); + float animatorScale = windowManager.getAnimationScale(2); + ValueAnimator.setDurationScale(animatorScale); mInitialized = true; } catch (RemoteException e) { } |