Merge "Cancel dark animation when new one arrives" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-05-30 05:14:35 +00:00
committed by Android (Google) Code Review

View File

@@ -388,6 +388,7 @@ public class NotificationStackScrollLayout extends ViewGroup
return object.getDarkAmount(); return object.getDarkAmount();
} }
}; };
private ObjectAnimator mDarkAmountAnimator;
private boolean mUsingLightTheme; private boolean mUsingLightTheme;
private boolean mQsExpanded; private boolean mQsExpanded;
private boolean mForwardScrollable; private boolean mForwardScrollable;
@@ -3401,7 +3402,7 @@ public class NotificationStackScrollLayout extends ViewGroup
.animateY(mShelf)); .animateY(mShelf));
ev.darkAnimationOriginIndex = mDarkAnimationOriginIndex; ev.darkAnimationOriginIndex = mDarkAnimationOriginIndex;
mAnimationEvents.add(ev); mAnimationEvents.add(ev);
startBackgroundFade(); startDarkAmountAnimation();
} }
mDarkNeedsAnimation = false; mDarkNeedsAnimation = false;
} }
@@ -3979,6 +3980,9 @@ public class NotificationStackScrollLayout extends ViewGroup
mDarkAnimationOriginIndex = findDarkAnimationOriginIndex(touchWakeUpScreenLocation); mDarkAnimationOriginIndex = findDarkAnimationOriginIndex(touchWakeUpScreenLocation);
mNeedsAnimation = true; mNeedsAnimation = true;
} else { } else {
if (mDarkAmountAnimator != null) {
mDarkAmountAnimator.cancel();
}
setDarkAmount(dark ? 1f : 0f); setDarkAmount(dark ? 1f : 0f);
updateBackground(); updateBackground();
} }
@@ -4023,12 +4027,22 @@ public class NotificationStackScrollLayout extends ViewGroup
return mDarkAmount; return mDarkAmount;
} }
private void startBackgroundFade() { private void startDarkAmountAnimation() {
ObjectAnimator fadeAnimator = ObjectAnimator.ofFloat(this, DARK_AMOUNT, mDarkAmount, ObjectAnimator darkAnimator = ObjectAnimator.ofFloat(this, DARK_AMOUNT, mDarkAmount,
mAmbientState.isDark() ? 1f : 0); mAmbientState.isDark() ? 1f : 0);
fadeAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); darkAnimator.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP);
fadeAnimator.setInterpolator(Interpolators.ALPHA_IN); darkAnimator.setInterpolator(Interpolators.ALPHA_IN);
fadeAnimator.start(); 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) { private int findDarkAnimationOriginIndex(@Nullable PointF screenLocation) {