diff options
| author | 2023-04-27 10:28:39 +0000 | |
|---|---|---|
| committer | 2023-04-27 10:28:39 +0000 | |
| commit | c3a162302bb5509455eb5879e46e1be57a5dcaa8 (patch) | |
| tree | 8a3ece841b4b8ccb17441fac49970555b1ffe4ab | |
| parent | 688838f6b453054a5c374acbcfbd4757d3e159f8 (diff) | |
| parent | ac3dd218f82ee5f71002e00b5c95ac8080aa13fb (diff) | |
Merge "Merge closing transition when recents is running" into udc-dev
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java index eb4d2a16c522..bffc51c6b22f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java @@ -549,6 +549,14 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler { // are in mOpening. for (int i = 0; i < closingTasks.size(); ++i) { final TransitionInfo.Change change = closingTasks.get(i); + final int pausingIdx = TaskState.indexOf(mPausingTasks, change); + if (pausingIdx >= 0) { + mPausingTasks.remove(pausingIdx); + didMergeThings = true; + ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION, + " closing pausing taskId=%d", change.getTaskInfo().taskId); + continue; + } int openingIdx = TaskState.indexOf(mOpeningTasks, change); if (openingIdx < 0) { Slog.w(TAG, "Closing a task that wasn't opening, this may be split or" @@ -601,6 +609,11 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler { didMergeThings = true; mState = STATE_NEW_TASK; } + if (mPausingTasks.isEmpty()) { + // The pausing tasks may be removed by the incoming closing tasks. + ProtoLog.v(ShellProtoLogGroup.WM_SHELL_RECENTS_TRANSITION, + "[%d] RecentsController.merge: empty pausing tasks", mInstanceId); + } if (!hasTaskChange) { // Activity only transition, so consume the merge as it doesn't affect the rest of // recents. |