diff options
| author | 2018-05-29 22:47:55 -0700 | |
|---|---|---|
| committer | 2018-05-29 22:47:55 -0700 | |
| commit | 6de6dff52c7e4a5274373fd982cd93fa56a35abf (patch) | |
| tree | d02d33596557ceaabac48154948f34b6747faafa | |
| parent | 3258da325f9ab6653712b71603514fc0ec61686f (diff) | |
| parent | 59e792baebd23551138e0e7895f5b85fbffb29bf (diff) | |
Merge "Cancel dark animation when new one arrives" into pi-dev am: 7c0e462b20
am: 59e792baeb
Change-Id: Ie5de6d2c5dd5fd871aa2a76e146be58377abc059
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index f91016a6e358..425c5d2bd318 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -388,6 +388,7 @@ public class NotificationStackScrollLayout extends ViewGroup return object.getDarkAmount(); } }; + private ObjectAnimator mDarkAmountAnimator; private boolean mUsingLightTheme; private boolean mQsExpanded; private boolean mForwardScrollable; @@ -3401,7 +3402,7 @@ public class NotificationStackScrollLayout extends ViewGroup .animateY(mShelf)); ev.darkAnimationOriginIndex = mDarkAnimationOriginIndex; mAnimationEvents.add(ev); - startBackgroundFade(); + startDarkAmountAnimation(); } mDarkNeedsAnimation = false; } @@ -3979,6 +3980,9 @@ public class NotificationStackScrollLayout extends ViewGroup mDarkAnimationOriginIndex = findDarkAnimationOriginIndex(touchWakeUpScreenLocation); mNeedsAnimation = true; } else { + if (mDarkAmountAnimator != null) { + mDarkAmountAnimator.cancel(); + } setDarkAmount(dark ? 1f : 0f); updateBackground(); } @@ -4023,12 +4027,22 @@ public class NotificationStackScrollLayout extends ViewGroup return mDarkAmount; } - private void startBackgroundFade() { - ObjectAnimator fadeAnimator = ObjectAnimator.ofFloat(this, DARK_AMOUNT, mDarkAmount, + private void startDarkAmountAnimation() { + ObjectAnimator darkAnimator = ObjectAnimator.ofFloat(this, DARK_AMOUNT, mDarkAmount, mAmbientState.isDark() ? 1f : 0); - fadeAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); - fadeAnimator.setInterpolator(Interpolators.ALPHA_IN); - fadeAnimator.start(); + darkAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); + darkAnimator.setInterpolator(Interpolators.ALPHA_IN); + darkAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mDarkAmountAnimator = null; + } + }); + if (mDarkAmountAnimator != null) { + mDarkAmountAnimator.cancel(); + } + mDarkAmountAnimator = darkAnimator; + mDarkAmountAnimator.start(); } private int findDarkAnimationOriginIndex(@Nullable PointF screenLocation) { |