From 4462de5dfdbbed86c8dbdbe375893eb5dfe18f09 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Wed, 11 Aug 2021 17:22:01 -0700 Subject: [PATCH] Remove starting destination bounds on BOUNDS PIP Shell Transition. We don't need to set any starting bounds on non-alpha animations. Also fixed a potential possibility where swipeToHome gets reset too early by PipTaskOrganizer, and moved it to PipTransition instead. Bug: 165793917 Bug: 193565745 Test: atest EnterPipTest Change-Id: Icd579b1165a62cb61a6c1eed0d659d788c16608c --- .../src/com/android/wm/shell/pip/PipTaskOrganizer.java | 1 - .../src/com/android/wm/shell/pip/PipTransition.java | 10 +++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java index 1d238a116059b..96867761cc7e7 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java @@ -613,7 +613,6 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, private void onEndOfSwipePipToHomeTransition() { if (Transitions.ENABLE_SHELL_TRANSITIONS) { - mPipTransitionState.setInSwipePipToHomeTransition(false); mSwipePipToHomeOverlay = null; return; } 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 ea587c69c0c05..6fec1fbda7b03 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 @@ -170,9 +170,12 @@ public class PipTransition extends PipTransitionController { if (request.getType() == TRANSIT_PIP) { WindowContainerTransaction wct = new WindowContainerTransaction(); mPipTransitionState.setTransitionState(PipTransitionState.ENTRY_SCHEDULED); - final Rect destinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds(); - wct.setActivityWindowingMode(request.getTriggerTask().token, WINDOWING_MODE_UNDEFINED); - wct.setBounds(request.getTriggerTask().token, destinationBounds); + if (mOneShotAnimationType == ANIM_TYPE_ALPHA) { + wct.setActivityWindowingMode(request.getTriggerTask().token, + WINDOWING_MODE_UNDEFINED); + final Rect destinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds(); + wct.setBounds(request.getTriggerTask().token, destinationBounds); + } return wct; } else { return null; @@ -243,6 +246,7 @@ public class PipTransition extends PipTransitionController { onFinishResize(taskInfo, destinationBounds, TRANSITION_DIRECTION_TO_PIP, tx); sendOnPipTransitionFinished(TRANSITION_DIRECTION_TO_PIP); mFinishCallback = null; + mPipTransitionState.setInSwipePipToHomeTransition(false); return true; }