From 96712e6b3abff915831311244a20777036820f4e Mon Sep 17 00:00:00 2001 From: Ikram Gabiyev Date: Mon, 26 Jun 2023 11:38:02 -0700 Subject: Avoid fullscreen bounds check while exiting pip Temporarily remove the check for fullscreen end bounds while exiting pip in PipTransition, and always set the bounds to be inherited from parent bounds. This helps avoid getting stuck in an inconsistent state while exiting pip via clicking app icon. The flicker still appears, however, and will have to be fixed in a later release by running auto-enter-pip in a single transition. Bug: 286346098 Test: Repeat enter auto-pip and exit by launching from icon Change-Id: Ie5d5fb1b1249a16ec20d05b2eec4590869251277 --- .../Shell/src/com/android/wm/shell/pip/PipTransition.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java index e04e9f7caa91..40850f3a495e 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java @@ -567,7 +567,16 @@ public class PipTransition extends PipTransitionController { mPipBoundsState.getDisplayBounds()); mFinishCallback = (wct, wctCB) -> { mPipOrganizer.onExitPipFinished(taskInfo); - if (!Transitions.SHELL_TRANSITIONS_ROTATION && toFullscreen) { + + // TODO(b/286346098): remove the OPEN app flicker completely + // not checking if we go to fullscreen helps avoid getting pip into an inconsistent + // state after the flicker occurs. This is a temp solution until flicker is removed. + if (!Transitions.SHELL_TRANSITIONS_ROTATION) { + // will help to debug the case when we are not exiting to fullscreen + if (!toFullscreen) { + ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, + "%s: startExitAnimation() not exiting to fullscreen", TAG); + } wct = wct != null ? wct : new WindowContainerTransaction(); wct.setBounds(pipTaskToken, null); mPipOrganizer.applyWindowingModeChangeOnExit(wct, TRANSITION_DIRECTION_LEAVE_PIP); -- cgit v1.2.3-59-g8ed1b