Clean up RemoteTargetHandles when RecentsAnimation ends

* When in SplitScreen in overview, rotation causes
surfaces to get released, so we tell RecentsView
to null out references to them.
* Unclear why this wasn't/isn't neceessary for a
single, fullscreen task.

Fixes: 202780874
Test: Can rotate in split screen, no crash
Change-Id: Ifdfa74943945029edec37dfeeb4187616e4a23d8
This commit is contained in:
Vinit Nayak 2021-10-28 12:21:46 -07:00
parent 85da1db1aa
commit 0c05634a16
2 changed files with 9 additions and 2 deletions

View File

@ -1730,7 +1730,10 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
endLauncherTransitionController();
mRecentsView.onSwipeUpAnimationSuccess();
if (ENABLE_QUICKSTEP_LIVE_TILE.get()) {
mTaskAnimationManager.setLiveTileCleanUpHandler(mInputConsumerProxy::destroy);
mTaskAnimationManager.setLiveTileCleanUpHandler(() -> {
mRecentsView.cleanupRemoteTargets();
mInputConsumerProxy.destroy();
});
mTaskAnimationManager.enableLiveTileRestartListener();
}

View File

@ -4351,7 +4351,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
public void finishRecentsAnimation(boolean toRecents, boolean shouldPip,
Runnable onFinishComplete) {
// TODO(b/197232424#comment#10) Move this back into onRecentsAnimationComplete(). Maybe?
mRemoteTargetHandles = null;
cleanupRemoteTargets();
if (!toRecents && ENABLE_QUICKSTEP_LIVE_TILE.get()) {
// Reset the minimized state since we force-toggled the minimized state when entering
// overview, but never actually finished the recents animation. This is a catch all for
@ -4812,6 +4812,10 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
&& mCurrentGestureEndTarget != GestureState.GestureEndTarget.RECENTS;
}
public void cleanupRemoteTargets() {
mRemoteTargetHandles = null;
}
/**
* Used to register callbacks for when our empty message state changes.
*