Loading libs/WindowManager/Shell/aconfig/multitasking.aconfig +11 −1 Original line number Diff line number Diff line Loading @@ -312,3 +312,13 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "dismiss_pip_from_lockscreen" namespace: "multitasking" description: "Fixes a bug where tapping on a notification for a PiP-ed app while on Lockscreen does not launch it in fullscreen." bug: "373314569" metadata { purpose: PURPOSE_BUGFIX } } libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java +2 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,8 @@ public abstract class PipTransitionController implements Transitions.TransitionH /** * Called when the Shell wants to start an exit-via-expand from Pip transition/animation. */ public void startExpandTransition(WindowContainerTransaction wct, boolean toSplit) { public void startExpandTransition( WindowContainerTransaction wct, boolean toSplit, boolean hasFirstHandler) { // Default implementation does nothing. } Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java +3 −2 Original line number Diff line number Diff line Loading @@ -290,10 +290,11 @@ public class PipController implements ConfigurationChangeListener, ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "onActivityRestartAttempt: topActivity=%s, wasVisible=%b", task.topActivity, wasVisible); if (task.getWindowingMode() != WINDOWING_MODE_PINNED || !wasVisible) { boolean keepPipFromLockscreen = !wasVisible && !Flags.dismissPipFromLockscreen(); if (task.getWindowingMode() != WINDOWING_MODE_PINNED || keepPipFromLockscreen) { return; } mPipScheduler.scheduleExitPipViaExpand(); mPipScheduler.scheduleExitPipViaExpand(wasVisible); } }); Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipMotionHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -365,7 +365,7 @@ public class PipMotionHelper implements PipAppOpsListener.Callback, if (PipUtils.isContentPip(mPipTransitionState.getPipTaskInfo())) { mPipScheduler.scheduleRemovePip(true /* withFadeout */); } else { mPipScheduler.scheduleExitPipViaExpand(); mPipScheduler.scheduleExitPipViaExpand(true /* wasVisible */); } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ public class PipScheduler implements PipTransitionState.PipTransitionStateChange /** * Schedules exit PiP via expand transition. */ public void scheduleExitPipViaExpand() { public void scheduleExitPipViaExpand(boolean wasVisible) { mMainExecutor.execute(() -> { if (!mPipTransitionState.isInPip()) return; Loading @@ -187,7 +187,7 @@ public class PipScheduler implements PipTransitionState.PipTransitionStateChange }); boolean toSplit = !wct.isEmpty(); wct.merge(expandWct, true /* transfer */); mPipTransitionController.startExpandTransition(wct, toSplit); mPipTransitionController.startExpandTransition(wct, toSplit, wasVisible); }); } Loading Loading
libs/WindowManager/Shell/aconfig/multitasking.aconfig +11 −1 Original line number Diff line number Diff line Loading @@ -312,3 +312,13 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "dismiss_pip_from_lockscreen" namespace: "multitasking" description: "Fixes a bug where tapping on a notification for a PiP-ed app while on Lockscreen does not launch it in fullscreen." bug: "373314569" metadata { purpose: PURPOSE_BUGFIX } }
libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java +2 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,8 @@ public abstract class PipTransitionController implements Transitions.TransitionH /** * Called when the Shell wants to start an exit-via-expand from Pip transition/animation. */ public void startExpandTransition(WindowContainerTransaction wct, boolean toSplit) { public void startExpandTransition( WindowContainerTransaction wct, boolean toSplit, boolean hasFirstHandler) { // Default implementation does nothing. } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java +3 −2 Original line number Diff line number Diff line Loading @@ -290,10 +290,11 @@ public class PipController implements ConfigurationChangeListener, ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "onActivityRestartAttempt: topActivity=%s, wasVisible=%b", task.topActivity, wasVisible); if (task.getWindowingMode() != WINDOWING_MODE_PINNED || !wasVisible) { boolean keepPipFromLockscreen = !wasVisible && !Flags.dismissPipFromLockscreen(); if (task.getWindowingMode() != WINDOWING_MODE_PINNED || keepPipFromLockscreen) { return; } mPipScheduler.scheduleExitPipViaExpand(); mPipScheduler.scheduleExitPipViaExpand(wasVisible); } }); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipMotionHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -365,7 +365,7 @@ public class PipMotionHelper implements PipAppOpsListener.Callback, if (PipUtils.isContentPip(mPipTransitionState.getPipTaskInfo())) { mPipScheduler.scheduleRemovePip(true /* withFadeout */); } else { mPipScheduler.scheduleExitPipViaExpand(); mPipScheduler.scheduleExitPipViaExpand(true /* wasVisible */); } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipScheduler.java +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ public class PipScheduler implements PipTransitionState.PipTransitionStateChange /** * Schedules exit PiP via expand transition. */ public void scheduleExitPipViaExpand() { public void scheduleExitPipViaExpand(boolean wasVisible) { mMainExecutor.execute(() -> { if (!mPipTransitionState.isInPip()) return; Loading @@ -187,7 +187,7 @@ public class PipScheduler implements PipTransitionState.PipTransitionStateChange }); boolean toSplit = !wct.isEmpty(); wct.merge(expandWct, true /* transfer */); mPipTransitionController.startExpandTransition(wct, toSplit); mPipTransitionController.startExpandTransition(wct, toSplit, wasVisible); }); } Loading