Merge "Block animation transfer after surface animation finishes."
This commit is contained in:
commit
4e54b2f3f9
@ -85,6 +85,8 @@ class SurfaceAnimator {
|
||||
|
||||
private boolean mAnimationStartDelayed;
|
||||
|
||||
private boolean mAnimationFinished;
|
||||
|
||||
/**
|
||||
* @param animatable The object to animate.
|
||||
* @param staticAnimationFinishedCallback Callback to invoke when an animation has finished
|
||||
@ -134,6 +136,7 @@ class SurfaceAnimator {
|
||||
|| anim.shouldDeferAnimationFinish(resetAndInvokeFinish))) {
|
||||
resetAndInvokeFinish.run();
|
||||
}
|
||||
mAnimationFinished = true;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -289,6 +292,9 @@ class SurfaceAnimator {
|
||||
Slog.w(TAG, "Unable to transfer animation, surface or parent is null");
|
||||
cancelAnimation();
|
||||
return;
|
||||
} else if (from.mAnimationFinished) {
|
||||
Slog.w(TAG, "Unable to transfer animation, because " + from + " animation is finished");
|
||||
return;
|
||||
}
|
||||
endDelayingAnimationStart();
|
||||
final Transaction t = mAnimatable.getPendingTransaction();
|
||||
@ -367,6 +373,7 @@ class SurfaceAnimator {
|
||||
SurfaceControl leash = mLeash;
|
||||
mLeash = null;
|
||||
final boolean scheduleAnim = removeLeash(t, mAnimatable, leash, destroyLeash);
|
||||
mAnimationFinished = false;
|
||||
if (scheduleAnim) {
|
||||
mService.scheduleAnimationLocked();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user