summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java26
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 7410069b09fa..804fd4161500 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) {