Merge "Let root task can reparent to launch root task while launch" into sc-v2-dev am: eeb927bdcf

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15768205

Change-Id: I9ba01793f809fd01b6a01180314d9022e506bbcf
This commit is contained in:
Tony Huang
2021-09-15 04:04:53 +00:00
committed by Automerger Merge Worker

View File

@@ -2722,6 +2722,17 @@ class ActivityStarter {
mTargetRootTask = intentActivity.getRootTask();
mSupervisor.handleNonResizableTaskIfNeeded(intentTask, WINDOWING_MODE_UNDEFINED,
mRootWindowContainer.getDefaultTaskDisplayArea(), mTargetRootTask);
// We need to check if there is a launch root task in TDA for this target root task.
// If it exist, we need to reparent target root task from TDA to launch root task.
final TaskDisplayArea tda = mTargetRootTask.getDisplayArea();
final Task launchRootTask = tda.getLaunchRootTask(mTargetRootTask.getWindowingMode(),
mTargetRootTask.getActivityType(), null /** options */, null /** sourceTask */,
0 /** launchFlags */);
if (launchRootTask != null && launchRootTask != mTargetRootTask) {
mTargetRootTask.reparent(launchRootTask, POSITION_TOP);
mTargetRootTask = launchRootTask;
}
}
private void resumeTargetRootTaskIfNeeded() {