Do not auto-pip on launching translucent activity
Note we only prevent Activity from auto-pip in this case. Launching a translucent Activity still sets ActivityTaskSupervisor#mUserLeaving to be true and a non-auto-pip Activity will request to enter PiP when they receive the onUserLeaveHint callback. Bug: 245735998 Test: `adb shell am start -n <translucent-activity>` over YT Test: atest PinnedStackTests Change-Id: Iee4dc55592d3e9851174d18759917dd14f5c0071
This commit is contained in:
@@ -1595,12 +1595,14 @@ class TaskFragment extends WindowContainer<WindowContainer> {
|
||||
boolean pauseImmediately = false;
|
||||
boolean shouldAutoPip = false;
|
||||
if (resuming != null) {
|
||||
// We do not want to trigger auto-PiP upon launch of a translucent activity.
|
||||
final boolean resumingOccludesParent = resuming.occludesParent();
|
||||
// Resuming the new resume activity only if the previous activity can't go into Pip
|
||||
// since we want to give Pip activities a chance to enter Pip before resuming the
|
||||
// next activity.
|
||||
final boolean lastResumedCanPip = prev.checkEnterPictureInPictureState(
|
||||
"shouldAutoPipWhilePausing", userLeaving);
|
||||
if (userLeaving && lastResumedCanPip
|
||||
if (userLeaving && resumingOccludesParent && lastResumedCanPip
|
||||
&& prev.pictureInPictureArgs.isAutoEnterEnabled()) {
|
||||
shouldAutoPip = true;
|
||||
} else if (!lastResumedCanPip) {
|
||||
|
||||
Reference in New Issue
Block a user