From 4f3138bea7e4f885b4e12e93911b6aaf81e34399 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Tue, 9 Aug 2022 13:39:52 -0700 Subject: Ensure PiP window visible after fold/unfold device We used to do only PipTaskOrganizer#scheduleResizePip without commiting PipTaskOrganizer#scheduleFinishResizePip upon display change. Bug: 241961056 Test: Enter PiP in unfolded state then fold the device Test: atest WMShellUnitTests:PipControllerTest Change-Id: I1c72c5e6016cd19017b43a8df583e730f15619a1 --- .../Shell/src/com/android/wm/shell/pip/phone/PipController.java | 3 ++- .../src/com/android/wm/shell/pip/phone/PipControllerTest.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java index 2144305d43c3..21e0c3315f20 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java @@ -628,7 +628,8 @@ public class PipController implements PipTransitionController.PipTransitionCallb mPipTaskOrganizer.scheduleAnimateResizePip( postChangeBounds, duration, null /* updateBoundsCallback */); } else { - mTouchHandler.getMotionHelper().movePip(postChangeBounds); + // Directly move PiP to its final destination bounds without animation. + mPipTaskOrganizer.scheduleFinishResizePip(postChangeBounds); } } else { updateDisplayLayout.run(); diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java index f192514c37ab..3ddf37ddc1fa 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java @@ -217,7 +217,7 @@ public class PipControllerTest extends ShellTestCase { mPipController.mDisplaysChangedListener.onDisplayConfigurationChanged( displayId, new Configuration()); - verify(mMockPipMotionHelper).movePip(any(Rect.class)); + verify(mMockPipTaskOrganizer).scheduleFinishResizePip(any(Rect.class)); } @Test @@ -233,7 +233,7 @@ public class PipControllerTest extends ShellTestCase { mPipController.mDisplaysChangedListener.onDisplayConfigurationChanged( displayId, new Configuration()); - verify(mMockPipMotionHelper, never()).movePip(any(Rect.class)); + verify(mMockPipTaskOrganizer, never()).scheduleFinishResizePip(any(Rect.class)); } @Test -- cgit v1.2.3-59-g8ed1b