Merge "Allow other app enter PiP when exiting current one" into tm-qpr-dev

This commit is contained in:
Hongwei Wang
2022-09-08 20:59:15 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 1 deletions

View File

@@ -966,7 +966,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
// Re-set the PIP bounds to none. // Re-set the PIP bounds to none.
mPipBoundsState.setBounds(new Rect()); mPipBoundsState.setBounds(new Rect());
mPipUiEventLoggerLogger.setTaskInfo(null); mPipUiEventLoggerLogger.setTaskInfo(null);
mMainExecutor.executeDelayed(() -> mPipMenuController.detach(), 0); mPipMenuController.detach();
mLeash = null; mLeash = null;
if (info.displayId != Display.DEFAULT_DISPLAY && mOnDisplayIdChangeCallback != null) { if (info.displayId != Display.DEFAULT_DISPLAY && mOnDisplayIdChangeCallback != null) {

View File

@@ -4465,6 +4465,14 @@ class Task extends TaskFragment {
// transferring the transform on the leash to the task, reset this state once we're // transferring the transform on the leash to the task, reset this state once we're
// moving out of pip // moving out of pip
setCanAffectSystemUiFlags(true); setCanAffectSystemUiFlags(true);
// Turn on userLeaveHint so other app can enter PiP mode.
mTaskSupervisor.mUserLeaving = true;
// Allow entering PiP from current top most activity when we are leaving PiP.
final Task topFocused = mRootWindowContainer.getTopDisplayFocusedRootTask();
if (topFocused != null) {
final ActivityRecord ar = topFocused.getTopResumedActivity();
enableEnterPipOnTaskSwitch(ar, null /* toFrontTask */, ar, null /* opts */);
}
mRootWindowContainer.notifyActivityPipModeChanged(this, null); mRootWindowContainer.notifyActivityPipModeChanged(this, null);
} }
if (likelyResolvedMode == WINDOWING_MODE_PINNED) { if (likelyResolvedMode == WINDOWING_MODE_PINNED) {