Consider new_task flag when launching with adjacent

We should consider the new_task if launching with adjacent flag,
otherwise the other split is empty. This CL ignores the flag if
there is no new-task flag present during the launching.

Bug: 234696171
Test: atest ActivityStarterTests
Change-Id: Icb646b73a24b6a9771a75f6745041d77af08f4e0
This commit is contained in:
Jeff Chang
2022-06-02 14:32:57 +08:00
parent 3b628d7c69
commit 2369dfab4f

View File

@@ -2501,11 +2501,6 @@ class ActivityStarter {
} }
} }
if ((mLaunchFlags & FLAG_ACTIVITY_LAUNCH_ADJACENT) != 0 && mSourceRecord == null) {
// ignore the flag if there is no the sourceRecord
mLaunchFlags &= ~FLAG_ACTIVITY_LAUNCH_ADJACENT;
}
// We'll invoke onUserLeaving before onPause only if the launching // We'll invoke onUserLeaving before onPause only if the launching
// activity did not explicitly state that this is an automated launch. // activity did not explicitly state that this is an automated launch.
mSupervisor.mUserLeaving = (mLaunchFlags & FLAG_ACTIVITY_NO_USER_ACTION) == 0; mSupervisor.mUserLeaving = (mLaunchFlags & FLAG_ACTIVITY_NO_USER_ACTION) == 0;
@@ -2700,6 +2695,12 @@ class ActivityStarter {
mLaunchFlags |= FLAG_ACTIVITY_NEW_TASK; mLaunchFlags |= FLAG_ACTIVITY_NEW_TASK;
} }
} }
if ((mLaunchFlags & FLAG_ACTIVITY_LAUNCH_ADJACENT) != 0
&& ((mLaunchFlags & FLAG_ACTIVITY_NEW_TASK) == 0 || mSourceRecord == null)) {
// ignore the flag if there is no the sourceRecord or without new_task flag
mLaunchFlags &= ~FLAG_ACTIVITY_LAUNCH_ADJACENT;
}
} }
private void computeSourceRootTask() { private void computeSourceRootTask() {