When entering PIP with multi-activity, re-use mLastNonFullscreenBounds.

In freeform support, we use mLastNonFullScreenBounds to keep track of
the task's bounds in freeform. Such that when maximizing/entering PIP, it
can restore to this bound after un-maximize/exiting PIP.

However when creating a new stack (in the case of multiple-activity in
the task, such as VLC), this information gets lost. We will reuse the
current task's lastNonfullscreenBounds.

Bug: 156780576
Test: In freeform, enter PIP using Multi-activity PIP (e.g. VLC), expand
PIP, the PIP activity is using the same bounds as before

Change-Id: Ic633fd1704c6e909fef0c2bd2dfe4bd9e2ca53ae
This commit is contained in:
Ben Lin
2020-05-15 15:01:07 -07:00
parent 0a1a911a5e
commit 13e125be68

View File

@@ -2176,6 +2176,10 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
// move the PIP activity into the task.
stack = taskDisplayArea.createStack(WINDOWING_MODE_UNDEFINED, r.getActivityType(),
ON_TOP, r.info, r.intent, false /* createdByOrganizer */);
// It's possible the task entering PIP is in freeform, so save the last
// non-fullscreen bounds. Then when this new PIP task exits PIP, it can restore
// to its previous freeform bounds.
stack.setLastNonFullscreenBounds(task.mLastNonFullscreenBounds);
// There are multiple activities in the task and moving the top activity should
// reveal/leave the other activities in their original task.