Set SurfaceTransactionApplier on non-stale RemoteAnimationTargets

* When we create RemoteTargetHandles we create a new
RemoteAnimationTarget from the old ones, which weren't
getting their addReleaseCheck() methods called
* The old recentsAnimationTargets were having it be set on them,
however they go unused.

Bug: 199043513
Change-Id: I36317f213139435ec09997290853787e30d11e0f
This commit is contained in:
Vinit Nayak
2021-09-30 20:28:08 -07:00
parent fd326d1a53
commit 01e47343e6

View File

@@ -4236,13 +4236,19 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
return;
}
if (mSyncTransactionApplier != null) {
recentsAnimationTargets.addReleaseCheck(mSyncTransactionApplier);
}
RemoteTargetGluer gluer = new RemoteTargetGluer(getContext(), getSizeStrategy());
mRemoteTargetHandles = gluer.assignTargetsForSplitScreen(recentsAnimationTargets);
mSplitBoundsConfig = gluer.getStagedSplitBounds();
if (mSyncTransactionApplier != null) {
// Add release check to the targets from the RemoteTargetGluer and not the targets
// passed in because in the event we're in split screen, we use the passed in targets
// to create new RemoteAnimationTargets in assignTargetsForSplitScreen(), and the
// mSyncTransactionApplier doesn't get transferred over
runActionOnRemoteHandles(remoteTargetHandle -> remoteTargetHandle
.getTransformParams().getTargetSet()
.addReleaseCheck(mSyncTransactionApplier));
}
TaskView runningTaskView = getRunningTaskView();
if (runningTaskView instanceof GroupedTaskView) {
// We initially create a GroupedTaskView in showCurrentTask() before launcher even