diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index f3a442ab35712..107e980258e35 100755 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -231,6 +231,13 @@ public class ValueAnimator extends Animator { sDurationScale = durationScale; } + /** + * @hide + */ + public static float getDurationScale() { + return sDurationScale; + } + /** * Creates a new ValueAnimator object. This default constructor is primarily for * use internally; the factory methods which take parameters are more generally diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 680ae4c0ab331..9e62a16c82f47 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -57,6 +57,7 @@ import android.app.ActivityOptions; import android.app.IActivityManager; import android.app.StatusBarManager; import android.app.admin.DevicePolicyManager; +import android.animation.ValueAnimator; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -900,8 +901,8 @@ public class WindowManagerService extends IWindowManager.Stub Settings.System.WINDOW_ANIMATION_SCALE, mWindowAnimationScale); mTransitionAnimationScale = Settings.System.getFloat(context.getContentResolver(), Settings.System.TRANSITION_ANIMATION_SCALE, mTransitionAnimationScale); - mAnimatorDurationScale = Settings.System.getFloat(context.getContentResolver(), - Settings.System.ANIMATOR_DURATION_SCALE, mTransitionAnimationScale); + setAnimatorDurationScale(Settings.System.getFloat(context.getContentResolver(), + Settings.System.ANIMATOR_DURATION_SCALE, mTransitionAnimationScale)); // Track changes to DevicePolicyManager state so we can enable/disable keyguard. IntentFilter filter = new IntentFilter(); @@ -5160,7 +5161,7 @@ public class WindowManagerService extends IWindowManager.Stub mTransitionAnimationScale = fixScale(scales[1]); } if (scales.length >= 3) { - mAnimatorDurationScale = fixScale(scales[2]); + setAnimatorDurationScale(fixScale(scales[2])); } } @@ -5168,6 +5169,11 @@ public class WindowManagerService extends IWindowManager.Stub mH.obtainMessage(H.PERSIST_ANIMATION_SCALE).sendToTarget(); } + private void setAnimatorDurationScale(float scale) { + mAnimatorDurationScale = scale; + ValueAnimator.setDurationScale(scale); + } + public float getAnimationScale(int which) { switch (which) { case 0: return mWindowAnimationScale;