Allow overridding the exitPip destination bounds

Allows vendors to choose to restore to bounds other than the display
bounds on exit PIP. This is specially useful in freeform enabled
desktops where the previous windowing mode was freeform and PIP should
return to its original freeform bounds.

Bug: 225294296
Test: atest PinnedStackTests
Change-Id: Id25906c4b11e5f3c8351ba96cff80c63a6a5cf4e
This commit is contained in:
jorgegil@google.com
2022-05-20 11:08:18 -07:00
parent 86a33bf1c5
commit 2a68fc0b1a

View File

@@ -434,7 +434,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
} }
} }
final Rect destinationBounds = mPipBoundsState.getDisplayBounds(); final Rect destinationBounds = getExitDestinationBounds();
final int direction = syncWithSplitScreenBounds(destinationBounds, requestEnterSplit) final int direction = syncWithSplitScreenBounds(destinationBounds, requestEnterSplit)
? TRANSITION_DIRECTION_LEAVE_PIP_TO_SPLIT_SCREEN ? TRANSITION_DIRECTION_LEAVE_PIP_TO_SPLIT_SCREEN
: TRANSITION_DIRECTION_LEAVE_PIP; : TRANSITION_DIRECTION_LEAVE_PIP;
@@ -489,6 +489,11 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
}); });
} }
/** Returns the bounds to restore to when exiting PIP mode. */
public Rect getExitDestinationBounds() {
return mPipBoundsState.getDisplayBounds();
}
private void exitLaunchIntoPipTask(WindowContainerTransaction wct) { private void exitLaunchIntoPipTask(WindowContainerTransaction wct) {
wct.startTask(mTaskInfo.launchIntoPipHostTaskId, null /* ActivityOptions */); wct.startTask(mTaskInfo.launchIntoPipHostTaskId, null /* ActivityOptions */);
mTaskOrganizer.applyTransaction(wct); mTaskOrganizer.applyTransaction(wct);