diff options
| author | 2023-04-11 02:11:10 +0000 | |
|---|---|---|
| committer | 2023-04-13 16:18:21 +0000 | |
| commit | 06edb3e41c4d138cefce3e08a924d2c0c0df3c24 (patch) | |
| tree | a1f1e690ca71b4bbcd9208be45e06b20ab5cd0fe | |
| parent | a1e56c40984e332fd4121772c5c875c1141d5244 (diff) | |
Don't sync the resize callback on exiting PiP.
Bug: 276806110
Test: http://recall/-/ekEuGtt9d9HWqkUtAzpHx8/Za1oNXjybbAD91zzs4NvH
Change-Id: I0f839f0466927c4544657b3b909467c9c7c5faac
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java | 16 |
1 files changed, 12 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 d04ce1540980..dc9a16ce919f 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 @@ -146,13 +146,17 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, t.apply(); // execute the runnable if non-null after WCT is applied to finish resizing pip - if (mPipFinishResizeWCTRunnable != null) { - mPipFinishResizeWCTRunnable.run(); - mPipFinishResizeWCTRunnable = null; - } + maybePerformFinishResizeCallback(); } }; + private void maybePerformFinishResizeCallback() { + if (mPipFinishResizeWCTRunnable != null) { + mPipFinishResizeWCTRunnable.run(); + mPipFinishResizeWCTRunnable = null; + } + } + // These callbacks are called on the update thread private final PipAnimationController.PipAnimationCallback mPipAnimationCallback = new PipAnimationController.PipAnimationCallback() { @@ -1606,6 +1610,10 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, if (direction == TRANSITION_DIRECTION_LEAVE_PIP_TO_SPLIT_SCREEN) { mSplitScreenOptional.ifPresent(splitScreenController -> splitScreenController.enterSplitScreen(mTaskInfo.taskId, wasPipTopLeft, wct)); + } else if (direction == TRANSITION_DIRECTION_LEAVE_PIP) { + // when leaving PiP we can call the callback without sync + maybePerformFinishResizeCallback(); + mTaskOrganizer.applyTransaction(wct); } else { mTaskOrganizer.applySyncTransaction(wct, mPipFinishResizeWCTCallback); } |