From d64a037d41fb5bd4ab813083d3c69ed0171e3fee Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Fri, 15 Jul 2022 07:52:52 +0000 Subject: [PATCH] Fix pip activity remained in PAUSING state The enter-pip activity was reparented to a newly created task because the original host task contains more than one activity. However, the pip activity remained in PAUSING state because the task pausing activity was null and therefore the activity didn't schedule to pause. Bug: 213541422 Test: atest PinnedStackTests Change-Id: I1aea45f70eb3983dc9859585321258813ee62af7 --- .../com/android/server/wm/ActivityTaskManagerService.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index eec77898663c6..dea9a03466d95 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -3521,10 +3521,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { mRootWindowContainer.moveActivityToPinnedRootTask(r, null /* launchIntoPipHostActivity */, "enterPictureInPictureMode", transition); - final Task task = r.getTask(); // Continue the pausing process after entering pip. - if (task.getPausingActivity() == r) { - task.schedulePauseActivity(r, false /* userLeaving */, + if (r.isState(PAUSING)) { + r.getTask().schedulePauseActivity(r, false /* userLeaving */, false /* pauseImmediately */, "auto-pip"); } }