Merge "Check nullity of finished callback"
This commit is contained in:
@@ -54,6 +54,7 @@ class SurfaceAnimator {
|
||||
final Animatable mAnimatable;
|
||||
private final OnAnimationFinishedCallback mInnerAnimationFinishedCallback;
|
||||
@VisibleForTesting
|
||||
@Nullable
|
||||
final Runnable mAnimationFinishedCallback;
|
||||
private boolean mAnimationStartDelayed;
|
||||
|
||||
@@ -262,7 +263,7 @@ class SurfaceAnimator {
|
||||
if (!mAnimationStartDelayed && forwardCancel) {
|
||||
animation.onAnimationCancelled(leash);
|
||||
}
|
||||
if (!restarting) {
|
||||
if (!restarting && mAnimationFinishedCallback != null) {
|
||||
mAnimationFinishedCallback.run();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,6 +137,19 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
|
||||
verify(mTransaction).remove(eq(mAnimatable.mLeash));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCancelWithNullFinishCallbackAnimation() {
|
||||
SurfaceAnimator animator = new SurfaceAnimator(mAnimatable, null, mWm);
|
||||
animator.startAnimation(mTransaction, mSpec, true /* hidden */);
|
||||
assertTrue(animator.isAnimating());
|
||||
assertNotNull(animator.getAnimation());
|
||||
animator.cancelAnimation();
|
||||
assertFalse(animator.isAnimating());
|
||||
assertNull(animator.getAnimation());
|
||||
verify(mSpec).onAnimationCancelled(any());
|
||||
verify(mTransaction).remove(eq(mAnimatable.mLeash));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDelayingAnimationStart() {
|
||||
mAnimatable.mSurfaceAnimator.startDelayingAnimationStart();
|
||||
|
||||
Reference in New Issue
Block a user