diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java index c2f8cb9800d0..3a8476729645 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java +++ b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java @@ -204,6 +204,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements private WindowContainerToken mToken; private SurfaceControl mLeash; private boolean mInPip; + private boolean mExitingPip; private @PipAnimationController.AnimationType int mOneShotAnimationType = ANIM_TYPE_BOUNDS; private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory mSurfaceControlTransactionFactory; @@ -270,9 +271,9 @@ public class PipTaskOrganizer extends TaskOrganizer implements * @param animationDurationMs duration in millisecond for the exiting PiP transition */ public void exitPip(int animationDurationMs) { - if (!mInPip || mToken == null) { + if (!mInPip || mExitingPip || mToken == null) { Log.wtf(TAG, "Not allowed to exitPip in current state" - + " mInPip=" + mInPip + " mToken=" + mToken); + + " mInPip=" + mInPip + " mExitingPip=" + mExitingPip + " mToken=" + mToken); return; } @@ -312,15 +313,16 @@ public class PipTaskOrganizer extends TaskOrganizer implements } }); } + mExitingPip = true; } /** * Removes PiP immediately. */ public void removePip() { - if (!mInPip || mToken == null) { + if (!mInPip || mExitingPip || mToken == null) { Log.wtf(TAG, "Not allowed to removePip in current state" - + " mInPip=" + mInPip + " mToken=" + mToken); + + " mInPip=" + mInPip + " mExitingPip=" + mExitingPip + " mToken=" + mToken); return; } getUpdateHandler().post(() -> { @@ -332,6 +334,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements } }); mInitialState.remove(mToken.asBinder()); + mExitingPip = true; } @Override @@ -340,6 +343,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements mTaskInfo = info; mToken = mTaskInfo.token; mInPip = true; + mExitingPip = false; mLeash = leash; mInitialState.put(mToken.asBinder(), new Configuration(mTaskInfo.configuration)); mPictureInPictureParams = mTaskInfo.pictureInPictureParams; @@ -420,6 +424,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements mShouldDeferEnteringPip = false; mPictureInPictureParams = null; mInPip = false; + mExitingPip = false; } @Override |