Fix Invalid Surface error

This is only used for legacy transition, so change it to an error log to
fix the flakiness.

Bug: 242718321
Test: pass existing tests.
Merged-In: Ib2a68f7488724370e44da28bdc30c8db19085889
Change-Id: Ib2a68f7488724370e44da28bdc30c8db19085889
This commit is contained in:
Chris Li
2023-07-20 16:47:20 +08:00
parent 2e93187332
commit fa61c1f571

View File

@@ -62,6 +62,8 @@ import java.util.function.Supplier;
*/
class SurfaceAnimationRunner {
private static final String TAG = SurfaceAnimationRunner.class.getSimpleName();
private final Object mLock = new Object();
/**
@@ -185,6 +187,16 @@ class SurfaceAnimationRunner {
// We must wait for t to be committed since otherwise the leash doesn't have the
// windows we want to screenshot and extend as children.
t.addTransactionCommittedListener(mEdgeExtensionExecutor, () -> {
if (!animationLeash.isValid()) {
Log.e(TAG, "Animation leash is not valid");
synchronized (mEdgeExtensionLock) {
mEdgeExtensions.remove(animationLeash);
}
synchronized (mLock) {
mPreProcessingAnimations.remove(animationLeash);
}
return;
}
final WindowAnimationSpec animationSpec = a.asWindowAnimationSpec();
final Transaction edgeExtensionCreationTransaction = new Transaction();
@@ -449,8 +461,7 @@ class SurfaceAnimationRunner {
// The leash we are trying to screenshot may have been removed by this point, which is
// likely the reason for ending up with a null edgeBuffer, in which case we just want to
// return and do nothing.
Log.e("SurfaceAnimationRunner", "Failed to create edge extension - "
+ "edge buffer is null");
Log.e(TAG, "Failed to create edge extension - edge buffer is null");
return;
}