Merge "Fix Invalid Surface error" into main

This commit is contained in:
Chris Li
2023-07-21 06:26:33 +00:00
committed by Gerrit Code Review

View File

@@ -62,6 +62,8 @@ import java.util.function.Supplier;
*/ */
class SurfaceAnimationRunner { class SurfaceAnimationRunner {
private static final String TAG = SurfaceAnimationRunner.class.getSimpleName();
private final Object mLock = new Object(); 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 // 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. // windows we want to screenshot and extend as children.
t.addTransactionCommittedListener(mEdgeExtensionExecutor, () -> { 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 WindowAnimationSpec animationSpec = a.asWindowAnimationSpec();
final Transaction edgeExtensionCreationTransaction = new Transaction(); 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 // 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 // likely the reason for ending up with a null edgeBuffer, in which case we just want to
// return and do nothing. // return and do nothing.
Log.e("SurfaceAnimationRunner", "Failed to create edge extension - " Log.e(TAG, "Failed to create edge extension - edge buffer is null");
+ "edge buffer is null");
return; return;
} }