From c158371dfbe0ab73d9cc68ef423e25e3e4c70b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Ciche=C5=84ski?= Date: Thu, 7 Apr 2022 01:26:06 +0000 Subject: [PATCH] Make PiP round corners when entering from split screen. Bug: 213597585 Test: http://recall/-/b4c7RdloJffWblJ6lo9xVu/YN4EY16KVcTYcRcK5IFZr Change-Id: I810a040db387d8b1a7c8e11c3a27ba53c0920996 --- .../com/android/wm/shell/pip/PipTaskOrganizer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 da53ca55122b4..b6635f3b8dd7b 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 @@ -665,6 +665,15 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, mSurfaceControlTransactionFactory.getTransaction(); tx.setAlpha(mLeash, 0f); tx.apply(); + + // When entering PiP this transaction will be applied within WindowContainerTransaction and + // ensure that the PiP has rounded corners. + final SurfaceControl.Transaction boundsChangeTx = + mSurfaceControlTransactionFactory.getTransaction(); + mSurfaceTransactionHelper + .crop(boundsChangeTx, mLeash, destinationBounds) + .round(boundsChangeTx, mLeash, true /* applyCornerRadius */); + mPipTransitionState.setTransitionState(PipTransitionState.ENTRY_SCHEDULED); applyEnterPipSyncTransaction(destinationBounds, () -> { mPipAnimationController @@ -677,7 +686,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, // mState is set right after the animation is kicked off to block any resize // requests such as offsetPip that may have been called prior to the transition. mPipTransitionState.setTransitionState(PipTransitionState.ENTERING_PIP); - }, null /* boundsChangeTransaction */); + }, boundsChangeTx); } private void onEndOfSwipePipToHomeTransition() {