Make the PipManager remember custom aspect ratios

Currently, the PipManager always reverts any pip window to the
preconfigured default size and position after any movement (e.g. pip
menu dismissal, or keyboard dismissal).

This does not take into account that a specific aspect ratio might have
been set in the PictureInPictureParams.

This change leverages the already correct calculation from the
PipBoundsHandler to update the default and current pip bounds kept by
the PipManager.

Bug: 163787014
Test: atest CtsSystemUiTestCases:BasicPipTests
Change-Id: I74829d95bc3ef06e6962020d5a56998128ec3640
This commit is contained in:
Nikolas Havrikov
2020-08-20 19:52:19 +02:00
parent f8a142cb58
commit d35999a92b

View File

@@ -141,7 +141,6 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
// Used to calculate the movement bounds
private final DisplayInfo mTmpDisplayInfo = new DisplayInfo();
private final Rect mTmpInsetBounds = new Rect();
private final Rect mTmpNormalBounds = new Rect();
// Keeps track of the IME visibility to adjust the PiP when the IME is visible
private boolean mImeVisible;
@@ -215,10 +214,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
public void onMovementBoundsChanged(boolean fromImeAdjustment) {
mHandler.post(() -> {
// Populate the inset / normal bounds and DisplayInfo from mPipBoundsHandler first.
final Rect destinationBounds = new Rect();
mPipBoundsHandler.onMovementBoundsChanged(mTmpInsetBounds, mTmpNormalBounds,
destinationBounds, mTmpDisplayInfo);
mDefaultPipBounds.set(destinationBounds);
mPipBoundsHandler.onMovementBoundsChanged(mTmpInsetBounds, mPipBounds,
mDefaultPipBounds, mTmpDisplayInfo);
});
}