From 66a1b77bb5e41fba97b61dd1600e65ae30ecf6de Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Mon, 29 Aug 2022 09:48:02 -0700 Subject: Allow auto-pip when starting activity with FLAG_ACTIVITY_NO_ANIMATION FLAG_ACTIVITY_NO_ANIMATION is not intended to disable auto-enter-pip when launching a new Activity (should use FLAG_ACTIVITY_NO_USER_ACTION instead). Bug: 244123029 Test: atest PinnedStackTests Test: verify no regression on b/222773615 Change-Id: Ibeb0e789f0561c7f701eabe4c9d7ffc8c14afa77 --- services/core/java/com/android/server/wm/Task.java | 25 +++++++--------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 18b0e3311a94..f07f21364a96 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -60,10 +60,7 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; import static android.view.WindowManager.TRANSIT_NONE; -import static android.view.WindowManager.TRANSIT_OLD_ACTIVITY_OPEN; import static android.view.WindowManager.TRANSIT_OLD_TASK_CHANGE_WINDOWING_MODE; -import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN; -import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN_BEHIND; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; @@ -4972,23 +4969,17 @@ class Task extends TaskFragment { dc.prepareAppTransition(TRANSIT_NONE); mTaskSupervisor.mNoAnimActivities.add(r); } else { - int transit = TRANSIT_OLD_ACTIVITY_OPEN; - if (newTask) { - if (r.mLaunchTaskBehind) { - transit = TRANSIT_OLD_TASK_OPEN_BEHIND; - } else { - // If a new task is being launched, then mark the existing top activity as - // supporting picture-in-picture while pausing only if the starting activity - // would not be considered an overlay on top of the current activity - // (eg. not fullscreen, or the assistant) - enableEnterPipOnTaskSwitch(pipCandidate, - null /* toFrontTask */, r, options); - transit = TRANSIT_OLD_TASK_OPEN; - } - } dc.prepareAppTransition(TRANSIT_OPEN); mTaskSupervisor.mNoAnimActivities.remove(r); } + if (newTask && !r.mLaunchTaskBehind) { + // If a new task is being launched, then mark the existing top activity as + // supporting picture-in-picture while pausing only if the starting activity + // would not be considered an overlay on top of the current activity + // (eg. not fullscreen, or the assistant) + enableEnterPipOnTaskSwitch(pipCandidate, + null /* toFrontTask */, r, options); + } boolean doShow = true; if (newTask) { // Even though this activity is starting fresh, we still need -- cgit v1.2.3-59-g8ed1b