Apply PiP Params if there was a deferred info.

If there was a deferred info, that means PiP params was saved but not
applied earlier. Force apply it.

Bug: 232104080
Test: Double tap on YouTube after exiting earlier Map PiP, aspect ratio
is correct

Change-Id: I52e9f38d4a923fdfee06e7ff37eb61a599caba04
This commit is contained in:
Ben Lin
2022-05-13 12:37:01 -07:00
parent db6650eb07
commit efd8255419
2 changed files with 16 additions and 2 deletions

View File

@@ -1096,11 +1096,13 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
* Handles all changes to the PictureInPictureParams.
*/
protected void applyNewPictureInPictureParams(@NonNull PictureInPictureParams params) {
if (PipUtils.aspectRatioChanged(params.getAspectRatioFloat(),
if (mDeferredTaskInfo != null || PipUtils.aspectRatioChanged(params.getAspectRatioFloat(),
mPictureInPictureParams.getAspectRatioFloat())) {
mPipParamsChangedForwarder.notifyAspectRatioChanged(params.getAspectRatioFloat());
}
if (PipUtils.remoteActionsChanged(params.getActions(), mPictureInPictureParams.getActions())
if (mDeferredTaskInfo != null
|| PipUtils.remoteActionsChanged(params.getActions(),
mPictureInPictureParams.getActions())
|| !PipUtils.remoteActionsMatch(params.getCloseAction(),
mPictureInPictureParams.getCloseAction())) {
mPipParamsChangedForwarder.notifyActionsChanged(params.getActions(),

View File

@@ -123,6 +123,18 @@ class ExpandPipOnDoubleClickTest(testSpec: FlickerTestParameter) : PipTransition
}
}
@Presubmit
@Test
fun pipSameAspectRatio() {
val layerName = pipApp.component.toLayerName()
testSpec.assertLayers {
val pipLayerList = this.layers { it.name.contains(layerName) && it.isVisible }
pipLayerList.zipWithNext { previous, current ->
current.visibleRegion.isSameAspectRatio(previous.visibleRegion)
}
}
}
/**
* Checks [pipApp] window remains pinned throughout the animation
*/