From 24aeafaef17c2e0a301e3b3fb9afb3f9b30544c2 Mon Sep 17 00:00:00 2001 From: Hongwei Wang Date: Thu, 9 Jun 2022 12:05:44 -0700 Subject: [PATCH] Call setCanAffectSystemUiFlags(false) only for PiP It was too aggressive to call that in all cases including swipe split-screen to home. Video: http://recall/-/b1EZhgUkQcpML5OwZekLBN/dlG6qSf9pT2f4YlIe2Klb3 Video: http://recall/-/b1EZhgUkQcpML5OwZekLBN/cfXwlpol5vi2AER32rKu2x Bug: 213598210 Test: 1. follow the reproduce steps in the bug. \ 2. make sure PiP from split-screen has no regressions. \ see also the videos. Change-Id: I33d71294595729f8cdf72258c4d45c29a77935c2 --- quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java | 1 + .../com/android/quickstep/util/SwipePipToHomeAnimator.java | 5 ++++- quickstep/src/com/android/quickstep/views/RecentsView.java | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 13272e9cf4..6b8eac99a6 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1799,6 +1799,7 @@ public abstract class AbsSwipeUpHandler, new PictureInPictureSurfaceTransaction.Builder() .setAlpha(0f) .build(); + tx.setShouldDisableCanAffectSystemUiFlags(false); int[] taskIds = TopTaskTracker.INSTANCE.get(mContext).getRunningSplitTaskIds(); for (int taskId : taskIds) { mRecentsAnimationController.setFinishTaskTransaction(taskId, diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java index b222f51e50..833d705764 100644 --- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java +++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java @@ -279,7 +279,10 @@ public class SwipePipToHomeAnimator extends RectFSpringAnim { // get the final leash operations but do not apply to the leash. final SurfaceControl.Transaction tx = PipSurfaceTransactionHelper.newSurfaceControlTransaction(); - return onAnimationUpdate(tx, new RectF(mDestinationBounds), END_PROGRESS); + final PictureInPictureSurfaceTransaction pipTx = + onAnimationUpdate(tx, new RectF(mDestinationBounds), END_PROGRESS); + pipTx.setShouldDisableCanAffectSystemUiFlags(true); + return pipTx; } private RotatedPosition getRotatedPosition(float progress) { diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 8f6fba7f4b..12ddc38be4 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -141,8 +141,8 @@ import com.android.launcher3.util.IntSet; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.ResourceBasedOverride.Overrides; import com.android.launcher3.util.RunnableList; -import com.android.launcher3.util.SplitConfigurationOptions.StagePosition; import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds; +import com.android.launcher3.util.SplitConfigurationOptions.StagePosition; import com.android.launcher3.util.Themes; import com.android.launcher3.util.TranslateEdgeEffect; import com.android.launcher3.util.ViewPool; @@ -4562,6 +4562,7 @@ public abstract class RecentsView