diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-02-27 02:39:05 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-02-27 02:39:05 +0000 |
| commit | abe2fed8b04c625ea762165ca7e8a0e37c91fefa (patch) | |
| tree | cf26630185b59afe4cea4dca2a8151a3ecd77bb4 | |
| parent | ee47af62071c43d434c6cf06b3974ee89b7ce748 (diff) | |
| parent | bede2c10498cae5a810f4185c10b19c39e8ae669 (diff) | |
Merge "Ensures display rotation triggers PiP re-position" into rvc-dev
3 files changed, 10 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java index d448c371540c..7b9626871b24 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java @@ -341,7 +341,10 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio private void updateMovementBounds(Rect animatingBounds, boolean fromImeAdjustment, boolean fromShelfAdjustment) { - // Populate inset / normal bounds and DisplayInfo from mPipBoundsHandler first. + mPipTaskOrganizer.onDisplayInfoChanged(mTmpDisplayInfo); + // Populate inset / normal bounds and DisplayInfo from mPipBoundsHandler before + // passing to mTouchHandler, mTouchHandler would rely on the bounds calculated by + // mPipBoundsHandler with up-to-dated information mPipBoundsHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds, animatingBounds, mTmpDisplayInfo); mTouchHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds, diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java index 91f539c3a13d..980d18b6a7e0 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java @@ -411,11 +411,9 @@ public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Call } private void adjustAndAnimatePipOffset(Rect originalBounds, int offset, int duration) { - if (offset == 0) { - return; - } SomeArgs args = SomeArgs.obtain(); args.arg1 = originalBounds; + // offset would be zero if triggered from screen rotation. args.argi1 = offset; args.argi2 = duration; mHandler.sendMessage(mHandler.obtainMessage(MSG_OFFSET_ANIMATE, args)); diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java index 8746612fb804..3f73d0194cd6 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java @@ -269,6 +269,10 @@ public class PipTouchHandler { public void onMovementBoundsChanged(Rect insetBounds, Rect normalBounds, Rect curBounds, boolean fromImeAdjustment, boolean fromShelfAdjustment, int displayRotation) { final int bottomOffset = mIsImeShowing ? mImeHeight : 0; + final boolean fromDisplayRotationChanged = (mDisplayRotation != displayRotation); + if (fromDisplayRotationChanged) { + mTouchState.reset(); + } // Re-calculate the expanded bounds mNormalBounds = normalBounds; @@ -296,7 +300,7 @@ public class PipTouchHandler { // If this is from an IME or shelf adjustment, then we should move the PiP so that it is not // occluded by the IME or shelf. - if (fromImeAdjustment || fromShelfAdjustment) { + if (fromImeAdjustment || fromShelfAdjustment || fromDisplayRotationChanged) { if (mTouchState.isUserInteracting()) { // Defer the update of the current movement bounds until after the user finishes // touching the screen |
