Merge "Disallow multiple calls to dismiss/exit pip" into rvc-dev
This commit is contained in:
@@ -204,6 +204,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements
|
|||||||
private WindowContainerToken mToken;
|
private WindowContainerToken mToken;
|
||||||
private SurfaceControl mLeash;
|
private SurfaceControl mLeash;
|
||||||
private boolean mInPip;
|
private boolean mInPip;
|
||||||
|
private boolean mExitingPip;
|
||||||
private @PipAnimationController.AnimationType int mOneShotAnimationType = ANIM_TYPE_BOUNDS;
|
private @PipAnimationController.AnimationType int mOneShotAnimationType = ANIM_TYPE_BOUNDS;
|
||||||
private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory
|
private PipSurfaceTransactionHelper.SurfaceControlTransactionFactory
|
||||||
mSurfaceControlTransactionFactory;
|
mSurfaceControlTransactionFactory;
|
||||||
@@ -270,9 +271,9 @@ public class PipTaskOrganizer extends TaskOrganizer implements
|
|||||||
* @param animationDurationMs duration in millisecond for the exiting PiP transition
|
* @param animationDurationMs duration in millisecond for the exiting PiP transition
|
||||||
*/
|
*/
|
||||||
public void exitPip(int animationDurationMs) {
|
public void exitPip(int animationDurationMs) {
|
||||||
if (!mInPip || mToken == null) {
|
if (!mInPip || mExitingPip || mToken == null) {
|
||||||
Log.wtf(TAG, "Not allowed to exitPip in current state"
|
Log.wtf(TAG, "Not allowed to exitPip in current state"
|
||||||
+ " mInPip=" + mInPip + " mToken=" + mToken);
|
+ " mInPip=" + mInPip + " mExitingPip=" + mExitingPip + " mToken=" + mToken);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -312,15 +313,16 @@ public class PipTaskOrganizer extends TaskOrganizer implements
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
mExitingPip = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes PiP immediately.
|
* Removes PiP immediately.
|
||||||
*/
|
*/
|
||||||
public void removePip() {
|
public void removePip() {
|
||||||
if (!mInPip || mToken == null) {
|
if (!mInPip || mExitingPip || mToken == null) {
|
||||||
Log.wtf(TAG, "Not allowed to removePip in current state"
|
Log.wtf(TAG, "Not allowed to removePip in current state"
|
||||||
+ " mInPip=" + mInPip + " mToken=" + mToken);
|
+ " mInPip=" + mInPip + " mExitingPip=" + mExitingPip + " mToken=" + mToken);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
getUpdateHandler().post(() -> {
|
getUpdateHandler().post(() -> {
|
||||||
@@ -332,6 +334,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
mInitialState.remove(mToken.asBinder());
|
mInitialState.remove(mToken.asBinder());
|
||||||
|
mExitingPip = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -340,6 +343,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements
|
|||||||
mTaskInfo = info;
|
mTaskInfo = info;
|
||||||
mToken = mTaskInfo.token;
|
mToken = mTaskInfo.token;
|
||||||
mInPip = true;
|
mInPip = true;
|
||||||
|
mExitingPip = false;
|
||||||
mLeash = leash;
|
mLeash = leash;
|
||||||
mInitialState.put(mToken.asBinder(), new Configuration(mTaskInfo.configuration));
|
mInitialState.put(mToken.asBinder(), new Configuration(mTaskInfo.configuration));
|
||||||
mPictureInPictureParams = mTaskInfo.pictureInPictureParams;
|
mPictureInPictureParams = mTaskInfo.pictureInPictureParams;
|
||||||
@@ -420,6 +424,7 @@ public class PipTaskOrganizer extends TaskOrganizer implements
|
|||||||
mShouldDeferEnteringPip = false;
|
mShouldDeferEnteringPip = false;
|
||||||
mPictureInPictureParams = null;
|
mPictureInPictureParams = null;
|
||||||
mInPip = false;
|
mInPip = false;
|
||||||
|
mExitingPip = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user