When apply in the dim animation is called, the currentPlayTime value can
be greater than the total duration. If that's the case, the alpha
value would be set to a negative value. Instead, if the currentPlayTime is
greater than duration, just set the final alpha value.
Change-Id: I77b7c512cc8832c2a31e20d49c14550da2cff7cd
Fixes:
73152600
Test: No more flashing dim
anim.addUpdateListener(animation -> {
synchronized (mCancelLock) {
if (!a.mCancelled) {
- applyTransformation(a, mFrameTransaction, anim.getCurrentPlayTime());
+ final long duration = anim.getDuration();
+ long currentPlayTime = anim.getCurrentPlayTime();
+ if (currentPlayTime > duration) {
+ currentPlayTime = duration;
+ }
+ applyTransformation(a, mFrameTransaction, currentPlayTime);
}
}