diff options
| author | 2022-11-02 17:41:12 +0000 | |
|---|---|---|
| committer | 2022-11-02 17:41:12 +0000 | |
| commit | 1099f31450f6488aced57d6e9d6cb4b9b17954b8 (patch) | |
| tree | 6b952a10f42536cdff5b4011e648f6dd205c33b3 | |
| parent | 2d4b3f6d557bd17ec59e4804bc87958aa4d7a4f7 (diff) | |
| parent | 3aac10797207384bead45934d0c49d2e23701830 (diff) | |
Merge "Animate PiP away on inset changes." into tm-qpr-dev am: 3aac107972
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20349632
Change-Id: Ib2404cc4fe88646aa7b2b94a0e57a87d4bf52118
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java | 15 |
1 files changed, 15 insertions, 0 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 616d447247de..d28a9f3cf8ff 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 @@ -612,9 +612,24 @@ public class PipController implements PipTransitionController.PipTransitionCallb new DisplayInsetsController.OnInsetsChangedListener() { @Override public void insetsChanged(InsetsState insetsState) { + int oldMaxMovementBound = mPipBoundsState.getMovementBounds().bottom; onDisplayChanged( mDisplayController.getDisplayLayout(mPipBoundsState.getDisplayId()), false /* saveRestoreSnapFraction */); + int newMaxMovementBound = mPipBoundsState.getMovementBounds().bottom; + if (!mEnablePipKeepClearAlgorithm) { + int pipTop = mPipBoundsState.getBounds().top; + int diff = newMaxMovementBound - oldMaxMovementBound; + if (diff < 0 && pipTop > newMaxMovementBound) { + // bottom inset has increased, move PiP up if it is too low + mPipMotionHelper.animateToOffset(mPipBoundsState.getBounds(), + newMaxMovementBound - pipTop); + } + if (diff > 0 && oldMaxMovementBound == pipTop) { + // bottom inset has decreased, move PiP down if it was by the edge + mPipMotionHelper.animateToOffset(mPipBoundsState.getBounds(), diff); + } + } } }); |