Loading services/core/java/com/android/server/wm/ActivityStarter.java +10 −8 Original line number Diff line number Diff line Loading @@ -1816,7 +1816,8 @@ class ActivityStarter { } if (mTargetRootTask == null) { mTargetRootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, targetTask, mOptions); mTargetRootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, targetTask, mOptions); } if (newTask) { final Task taskToAffiliate = (mLaunchTaskBehind && mSourceRecord != null) Loading Loading @@ -1925,7 +1926,7 @@ class ActivityStarter { } else if (mInTask != null) { return mInTask; } else { final Task rootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, null /* task */, final Task rootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, null /* task */, mOptions); final ActivityRecord top = rootTask.getTopNonFinishingActivity(); if (top != null) { Loading Loading @@ -2233,7 +2234,7 @@ class ActivityStarter { if (targetTask.getRootTask() == null) { // Target root task got cleared when we all activities were removed above. // Go ahead and reset it. mTargetRootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, mTargetRootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, null /* task */, mOptions); mTargetRootTask.addChild(targetTask, !mLaunchTaskBehind /* toTop */, (mStartActivity.info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0); Loading Loading @@ -2695,10 +2696,11 @@ class ActivityStarter { // launched into the same root task. mTargetRootTask = Task.fromWindowContainerToken(mSourceRecord.mLaunchRootTask); } else { final Task launchRootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, intentTask, mOptions); final Task rootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, intentTask, mOptions); // TODO(b/184806710): #getOrCreateRootTask should never return null? mTargetRootTask = launchRootTask != null ? launchRootTask : intentActivity.getRootTask(); rootTask != null ? rootTask : intentActivity.getRootTask(); } } Loading Loading @@ -2929,7 +2931,7 @@ class ActivityStarter { return launchFlags; } private Task getLaunchRootTask(ActivityRecord r, int launchFlags, Task task, private Task getOrCreateRootTask(ActivityRecord r, int launchFlags, Task task, ActivityOptions aOptions) { // We are reusing a task, keep the root task! if (mReuseTask != null) { Loading @@ -2938,7 +2940,7 @@ class ActivityStarter { final boolean onTop = (aOptions == null || !aOptions.getAvoidMoveToFront()) && !mLaunchTaskBehind; return mRootWindowContainer.getLaunchRootTask(r, aOptions, task, mSourceRootTask, onTop, return mRootWindowContainer.getOrCreateRootTask(r, aOptions, task, mSourceRootTask, onTop, mLaunchParams, launchFlags); } Loading services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +9 −9 Original line number Diff line number Diff line Loading @@ -1439,20 +1439,20 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { final Rect bounds = options.getLaunchBounds(); task.setBounds(bounds); Task launchRootTask = mRootWindowContainer.getLaunchRootTask(null, options, task, ON_TOP); Task targetRootTask = mRootWindowContainer.getOrCreateRootTask(null, options, task, ON_TOP); if (launchRootTask != currentRootTask) { moveHomeRootTaskToFrontIfNeeded(flags, launchRootTask.getDisplayArea(), reason); task.reparent(launchRootTask, ON_TOP, REPARENT_KEEP_ROOT_TASK_AT_FRONT, if (targetRootTask != currentRootTask) { moveHomeRootTaskToFrontIfNeeded(flags, targetRootTask.getDisplayArea(), reason); task.reparent(targetRootTask, ON_TOP, REPARENT_KEEP_ROOT_TASK_AT_FRONT, !ANIMATE, DEFER_RESUME, reason); currentRootTask = launchRootTask; currentRootTask = targetRootTask; reparented = true; // task.reparent() should already placed the task on top, // still need moveTaskToFrontLocked() below for any transition settings. } if (launchRootTask.shouldResizeRootTaskWithLaunchBounds()) { launchRootTask.resize(bounds, !PRESERVE_WINDOWS, !DEFER_RESUME); if (targetRootTask.shouldResizeRootTaskWithLaunchBounds()) { targetRootTask.resize(bounds, !PRESERVE_WINDOWS, !DEFER_RESUME); } else { // WM resizeTask must be done after the task is moved to the correct stack, // because Task's setBounds() also updates dim layer's bounds, but that has Loading Loading @@ -1696,7 +1696,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { */ boolean restoreRecentTaskLocked(Task task, ActivityOptions aOptions, boolean onTop) { final Task rootTask = mRootWindowContainer.getLaunchRootTask(null, aOptions, task, onTop); mRootWindowContainer.getOrCreateRootTask(null, aOptions, task, onTop); final WindowContainer parent = task.getParent(); if (parent == rootTask || task == rootTask) { Loading services/core/java/com/android/server/wm/RootWindowContainer.java +8 −8 Original line number Diff line number Diff line Loading @@ -2728,9 +2728,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return false; } Task getLaunchRootTask(@Nullable ActivityRecord r, @Nullable ActivityOptions options, Task getOrCreateRootTask(@Nullable ActivityRecord r, @Nullable ActivityOptions options, @Nullable Task candidateTask, boolean onTop) { return getLaunchRootTask(r, options, candidateTask, null /* sourceTask */, onTop, return getOrCreateRootTask(r, options, candidateTask, null /* sourceTask */, onTop, null /* launchParams */, 0 /* launchFlags */); } Loading @@ -2745,9 +2745,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> * @param launchFlags The launch flags for this launch. * @param realCallingPid The pid from {@link ActivityStarter#setRealCallingPid} * @param realCallingUid The uid from {@link ActivityStarter#setRealCallingUid} * @return The root task to use for the launch or INVALID_TASK_ID. * @return The root task to use for the launch. */ Task getLaunchRootTask(@Nullable ActivityRecord r, Task getOrCreateRootTask(@Nullable ActivityRecord r, @Nullable ActivityOptions options, @Nullable Task candidateTask, @Nullable Task sourceTask, boolean onTop, @Nullable LaunchParamsController.LaunchParams launchParams, int launchFlags) { Loading Loading @@ -3236,12 +3236,12 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (aOptions != null) { // Resolve the root task the task should be placed in now based on options // and reparent if needed. final Task launchRootTask = getLaunchRootTask(null, aOptions, task, onTop); if (launchRootTask != null && task.getRootTask() != launchRootTask) { final Task targetRootTask = getOrCreateRootTask(null, aOptions, task, onTop); if (targetRootTask != null && task.getRootTask() != targetRootTask) { final int reparentMode = onTop ? REPARENT_MOVE_ROOT_TASK_TO_FRONT : REPARENT_LEAVE_ROOT_TASK_IN_PLACE; task.reparent(launchRootTask, onTop, reparentMode, ANIMATE, DEFER_RESUME, task.reparent(targetRootTask, onTop, reparentMode, ANIMATE, DEFER_RESUME, "anyTaskForId"); } } Loading services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java +15 −15 Original line number Diff line number Diff line Loading @@ -308,12 +308,12 @@ public class ActivityStarterTests extends WindowTestsBase { } private ActivityStarter prepareStarter(@Intent.Flags int launchFlags) { return prepareStarter(launchFlags, true /* mockGetLaunchStack */, LAUNCH_MULTIPLE); return prepareStarter(launchFlags, true /* mockGetRootTask */, LAUNCH_MULTIPLE); } private ActivityStarter prepareStarter(@Intent.Flags int launchFlags, boolean mockGetLaunchStack) { return prepareStarter(launchFlags, mockGetLaunchStack, LAUNCH_MULTIPLE); boolean mockGetRootTask) { return prepareStarter(launchFlags, mockGetRootTask, LAUNCH_MULTIPLE); } private void setupImeWindow() { Loading @@ -326,20 +326,20 @@ public class ActivityStarterTests extends WindowTestsBase { * Creates a {@link ActivityStarter} with default parameters and necessary mocks. * * @param launchFlags The intent flags to launch activity. * @param mockGetLaunchStack Whether to mock {@link RootWindowContainer#getLaunchRootTask} for * @param mockGetRootTask Whether to mock {@link RootWindowContainer#getOrCreateRootTask} for * always launching to the testing stack. Set to false when allowing * the activity can be launched to any stack that is decided by real * implementation. * @return A {@link ActivityStarter} with default setup. */ private ActivityStarter prepareStarter(@Intent.Flags int launchFlags, boolean mockGetLaunchStack, int launchMode) { boolean mockGetRootTask, int launchMode) { // always allow test to start activity. doReturn(true).when(mSupervisor).checkStartAnyActivityPermission( any(), any(), any(), anyInt(), anyInt(), anyInt(), any(), any(), anyBoolean(), anyBoolean(), any(), any(), any()); if (mockGetLaunchStack) { if (mockGetRootTask) { // Instrument the stack and task used. final Task stack = mRootWindowContainer.getDefaultTaskDisplayArea() .createRootTask(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, Loading @@ -347,9 +347,9 @@ public class ActivityStarterTests extends WindowTestsBase { // Direct starter to use spy stack. doReturn(stack).when(mRootWindowContainer) .getLaunchRootTask(any(), any(), any(), anyBoolean()); doReturn(stack).when(mRootWindowContainer).getLaunchRootTask(any(), any(), any(), any(), anyBoolean(), any(), anyInt()); .getOrCreateRootTask(any(), any(), any(), anyBoolean()); doReturn(stack).when(mRootWindowContainer).getOrCreateRootTask(any(), any(), any(), any(), anyBoolean(), any(), anyInt()); } // Set up mock package manager internal and make sure no unmocked methods are called Loading Loading @@ -434,7 +434,7 @@ public class ActivityStarterTests extends WindowTestsBase { public void testSplitScreenDeliverToTop() { final ActivityStarter starter = prepareStarter( FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | FLAG_ACTIVITY_SINGLE_TOP, false /* mockGetLaunchStack */); false /* mockGetRootTask */); final Pair<ActivityRecord, ActivityRecord> activities = createActivitiesInSplit(); final ActivityRecord splitPrimaryFocusActivity = activities.first; final ActivityRecord splitSecondReusableActivity = activities.second; Loading Loading @@ -790,7 +790,7 @@ public class ActivityStarterTests extends WindowTestsBase { finishingTopActivity.finishing = true; // Launch the bottom task of the target root task. prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */) prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetRootTask */) .setReason("testBringTaskToFrontWhenFocusedTaskIsFinishing") .setIntent(activity.intent.addFlags( FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK)) Loading @@ -809,7 +809,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testDeliverIntentToTopActivityOfNonTopDisplay() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */); false /* mockGetRootTask */); // Create a secondary display at bottom. final TestDisplayContent secondaryDisplay = Loading Loading @@ -849,7 +849,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testBringTaskToFrontOnSecondaryDisplay() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */); false /* mockGetRootTask */); // Create a secondary display with an activity. final TestDisplayContent secondaryDisplay = Loading Loading @@ -943,7 +943,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testReparentTopFocusedActivityToSecondaryDisplay() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */); false /* mockGetRootTask */); // Create a secondary display at bottom. final TestDisplayContent secondaryDisplay = addNewDisplayContentAt(POSITION_BOTTOM); Loading Loading @@ -1076,7 +1076,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testTargetStackInSplitScreen() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_LAUNCH_ADJACENT, false /* mockGetLaunchStack */); prepareStarter(FLAG_ACTIVITY_LAUNCH_ADJACENT, false /* mockGetRootTask */); final ActivityRecord top = new ActivityBuilder(mAtm).setCreateTask(true).build(); final ActivityOptions options = ActivityOptions.makeBasic(); final ActivityRecord[] outActivity = new ActivityRecord[1]; Loading services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -949,7 +949,7 @@ public class RootWindowContainerTests extends WindowTestsBase { LaunchParamsController.LaunchParams launchParams = new LaunchParamsController.LaunchParams(); launchParams.mPreferredTaskDisplayArea = taskDisplayArea; Task root = mRootWindowContainer.getLaunchRootTask(null /* r */, null /* options */, Task root = mRootWindowContainer.getOrCreateRootTask(null /* r */, null /* options */, null /* candidateTask */, null /* sourceTask */, true /* onTop */, launchParams, 0 /* launchParams */); assertEquals(taskDisplayArea, root.getTaskDisplayArea()); Loading @@ -957,7 +957,7 @@ public class RootWindowContainerTests extends WindowTestsBase { // Making sure still getting the root task from the preferred TDA when passing in a // launching activity. ActivityRecord r = new ActivityBuilder(mAtm).build(); root = mRootWindowContainer.getLaunchRootTask(r, null /* options */, root = mRootWindowContainer.getOrCreateRootTask(r, null /* options */, null /* candidateTask */, null /* sourceTask */, true /* onTop */, launchParams, 0 /* launchParams */); assertEquals(taskDisplayArea, root.getTaskDisplayArea()); Loading Loading
services/core/java/com/android/server/wm/ActivityStarter.java +10 −8 Original line number Diff line number Diff line Loading @@ -1816,7 +1816,8 @@ class ActivityStarter { } if (mTargetRootTask == null) { mTargetRootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, targetTask, mOptions); mTargetRootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, targetTask, mOptions); } if (newTask) { final Task taskToAffiliate = (mLaunchTaskBehind && mSourceRecord != null) Loading Loading @@ -1925,7 +1926,7 @@ class ActivityStarter { } else if (mInTask != null) { return mInTask; } else { final Task rootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, null /* task */, final Task rootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, null /* task */, mOptions); final ActivityRecord top = rootTask.getTopNonFinishingActivity(); if (top != null) { Loading Loading @@ -2233,7 +2234,7 @@ class ActivityStarter { if (targetTask.getRootTask() == null) { // Target root task got cleared when we all activities were removed above. // Go ahead and reset it. mTargetRootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, mTargetRootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, null /* task */, mOptions); mTargetRootTask.addChild(targetTask, !mLaunchTaskBehind /* toTop */, (mStartActivity.info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0); Loading Loading @@ -2695,10 +2696,11 @@ class ActivityStarter { // launched into the same root task. mTargetRootTask = Task.fromWindowContainerToken(mSourceRecord.mLaunchRootTask); } else { final Task launchRootTask = getLaunchRootTask(mStartActivity, mLaunchFlags, intentTask, mOptions); final Task rootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, intentTask, mOptions); // TODO(b/184806710): #getOrCreateRootTask should never return null? mTargetRootTask = launchRootTask != null ? launchRootTask : intentActivity.getRootTask(); rootTask != null ? rootTask : intentActivity.getRootTask(); } } Loading Loading @@ -2929,7 +2931,7 @@ class ActivityStarter { return launchFlags; } private Task getLaunchRootTask(ActivityRecord r, int launchFlags, Task task, private Task getOrCreateRootTask(ActivityRecord r, int launchFlags, Task task, ActivityOptions aOptions) { // We are reusing a task, keep the root task! if (mReuseTask != null) { Loading @@ -2938,7 +2940,7 @@ class ActivityStarter { final boolean onTop = (aOptions == null || !aOptions.getAvoidMoveToFront()) && !mLaunchTaskBehind; return mRootWindowContainer.getLaunchRootTask(r, aOptions, task, mSourceRootTask, onTop, return mRootWindowContainer.getOrCreateRootTask(r, aOptions, task, mSourceRootTask, onTop, mLaunchParams, launchFlags); } Loading
services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +9 −9 Original line number Diff line number Diff line Loading @@ -1439,20 +1439,20 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { final Rect bounds = options.getLaunchBounds(); task.setBounds(bounds); Task launchRootTask = mRootWindowContainer.getLaunchRootTask(null, options, task, ON_TOP); Task targetRootTask = mRootWindowContainer.getOrCreateRootTask(null, options, task, ON_TOP); if (launchRootTask != currentRootTask) { moveHomeRootTaskToFrontIfNeeded(flags, launchRootTask.getDisplayArea(), reason); task.reparent(launchRootTask, ON_TOP, REPARENT_KEEP_ROOT_TASK_AT_FRONT, if (targetRootTask != currentRootTask) { moveHomeRootTaskToFrontIfNeeded(flags, targetRootTask.getDisplayArea(), reason); task.reparent(targetRootTask, ON_TOP, REPARENT_KEEP_ROOT_TASK_AT_FRONT, !ANIMATE, DEFER_RESUME, reason); currentRootTask = launchRootTask; currentRootTask = targetRootTask; reparented = true; // task.reparent() should already placed the task on top, // still need moveTaskToFrontLocked() below for any transition settings. } if (launchRootTask.shouldResizeRootTaskWithLaunchBounds()) { launchRootTask.resize(bounds, !PRESERVE_WINDOWS, !DEFER_RESUME); if (targetRootTask.shouldResizeRootTaskWithLaunchBounds()) { targetRootTask.resize(bounds, !PRESERVE_WINDOWS, !DEFER_RESUME); } else { // WM resizeTask must be done after the task is moved to the correct stack, // because Task's setBounds() also updates dim layer's bounds, but that has Loading Loading @@ -1696,7 +1696,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { */ boolean restoreRecentTaskLocked(Task task, ActivityOptions aOptions, boolean onTop) { final Task rootTask = mRootWindowContainer.getLaunchRootTask(null, aOptions, task, onTop); mRootWindowContainer.getOrCreateRootTask(null, aOptions, task, onTop); final WindowContainer parent = task.getParent(); if (parent == rootTask || task == rootTask) { Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +8 −8 Original line number Diff line number Diff line Loading @@ -2728,9 +2728,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return false; } Task getLaunchRootTask(@Nullable ActivityRecord r, @Nullable ActivityOptions options, Task getOrCreateRootTask(@Nullable ActivityRecord r, @Nullable ActivityOptions options, @Nullable Task candidateTask, boolean onTop) { return getLaunchRootTask(r, options, candidateTask, null /* sourceTask */, onTop, return getOrCreateRootTask(r, options, candidateTask, null /* sourceTask */, onTop, null /* launchParams */, 0 /* launchFlags */); } Loading @@ -2745,9 +2745,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> * @param launchFlags The launch flags for this launch. * @param realCallingPid The pid from {@link ActivityStarter#setRealCallingPid} * @param realCallingUid The uid from {@link ActivityStarter#setRealCallingUid} * @return The root task to use for the launch or INVALID_TASK_ID. * @return The root task to use for the launch. */ Task getLaunchRootTask(@Nullable ActivityRecord r, Task getOrCreateRootTask(@Nullable ActivityRecord r, @Nullable ActivityOptions options, @Nullable Task candidateTask, @Nullable Task sourceTask, boolean onTop, @Nullable LaunchParamsController.LaunchParams launchParams, int launchFlags) { Loading Loading @@ -3236,12 +3236,12 @@ class RootWindowContainer extends WindowContainer<DisplayContent> if (aOptions != null) { // Resolve the root task the task should be placed in now based on options // and reparent if needed. final Task launchRootTask = getLaunchRootTask(null, aOptions, task, onTop); if (launchRootTask != null && task.getRootTask() != launchRootTask) { final Task targetRootTask = getOrCreateRootTask(null, aOptions, task, onTop); if (targetRootTask != null && task.getRootTask() != targetRootTask) { final int reparentMode = onTop ? REPARENT_MOVE_ROOT_TASK_TO_FRONT : REPARENT_LEAVE_ROOT_TASK_IN_PLACE; task.reparent(launchRootTask, onTop, reparentMode, ANIMATE, DEFER_RESUME, task.reparent(targetRootTask, onTop, reparentMode, ANIMATE, DEFER_RESUME, "anyTaskForId"); } } Loading
services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java +15 −15 Original line number Diff line number Diff line Loading @@ -308,12 +308,12 @@ public class ActivityStarterTests extends WindowTestsBase { } private ActivityStarter prepareStarter(@Intent.Flags int launchFlags) { return prepareStarter(launchFlags, true /* mockGetLaunchStack */, LAUNCH_MULTIPLE); return prepareStarter(launchFlags, true /* mockGetRootTask */, LAUNCH_MULTIPLE); } private ActivityStarter prepareStarter(@Intent.Flags int launchFlags, boolean mockGetLaunchStack) { return prepareStarter(launchFlags, mockGetLaunchStack, LAUNCH_MULTIPLE); boolean mockGetRootTask) { return prepareStarter(launchFlags, mockGetRootTask, LAUNCH_MULTIPLE); } private void setupImeWindow() { Loading @@ -326,20 +326,20 @@ public class ActivityStarterTests extends WindowTestsBase { * Creates a {@link ActivityStarter} with default parameters and necessary mocks. * * @param launchFlags The intent flags to launch activity. * @param mockGetLaunchStack Whether to mock {@link RootWindowContainer#getLaunchRootTask} for * @param mockGetRootTask Whether to mock {@link RootWindowContainer#getOrCreateRootTask} for * always launching to the testing stack. Set to false when allowing * the activity can be launched to any stack that is decided by real * implementation. * @return A {@link ActivityStarter} with default setup. */ private ActivityStarter prepareStarter(@Intent.Flags int launchFlags, boolean mockGetLaunchStack, int launchMode) { boolean mockGetRootTask, int launchMode) { // always allow test to start activity. doReturn(true).when(mSupervisor).checkStartAnyActivityPermission( any(), any(), any(), anyInt(), anyInt(), anyInt(), any(), any(), anyBoolean(), anyBoolean(), any(), any(), any()); if (mockGetLaunchStack) { if (mockGetRootTask) { // Instrument the stack and task used. final Task stack = mRootWindowContainer.getDefaultTaskDisplayArea() .createRootTask(WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, Loading @@ -347,9 +347,9 @@ public class ActivityStarterTests extends WindowTestsBase { // Direct starter to use spy stack. doReturn(stack).when(mRootWindowContainer) .getLaunchRootTask(any(), any(), any(), anyBoolean()); doReturn(stack).when(mRootWindowContainer).getLaunchRootTask(any(), any(), any(), any(), anyBoolean(), any(), anyInt()); .getOrCreateRootTask(any(), any(), any(), anyBoolean()); doReturn(stack).when(mRootWindowContainer).getOrCreateRootTask(any(), any(), any(), any(), anyBoolean(), any(), anyInt()); } // Set up mock package manager internal and make sure no unmocked methods are called Loading Loading @@ -434,7 +434,7 @@ public class ActivityStarterTests extends WindowTestsBase { public void testSplitScreenDeliverToTop() { final ActivityStarter starter = prepareStarter( FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | FLAG_ACTIVITY_SINGLE_TOP, false /* mockGetLaunchStack */); false /* mockGetRootTask */); final Pair<ActivityRecord, ActivityRecord> activities = createActivitiesInSplit(); final ActivityRecord splitPrimaryFocusActivity = activities.first; final ActivityRecord splitSecondReusableActivity = activities.second; Loading Loading @@ -790,7 +790,7 @@ public class ActivityStarterTests extends WindowTestsBase { finishingTopActivity.finishing = true; // Launch the bottom task of the target root task. prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */) prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetRootTask */) .setReason("testBringTaskToFrontWhenFocusedTaskIsFinishing") .setIntent(activity.intent.addFlags( FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK)) Loading @@ -809,7 +809,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testDeliverIntentToTopActivityOfNonTopDisplay() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */); false /* mockGetRootTask */); // Create a secondary display at bottom. final TestDisplayContent secondaryDisplay = Loading Loading @@ -849,7 +849,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testBringTaskToFrontOnSecondaryDisplay() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */); false /* mockGetRootTask */); // Create a secondary display with an activity. final TestDisplayContent secondaryDisplay = Loading Loading @@ -943,7 +943,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testReparentTopFocusedActivityToSecondaryDisplay() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_NEW_TASK, false /* mockGetLaunchStack */); false /* mockGetRootTask */); // Create a secondary display at bottom. final TestDisplayContent secondaryDisplay = addNewDisplayContentAt(POSITION_BOTTOM); Loading Loading @@ -1076,7 +1076,7 @@ public class ActivityStarterTests extends WindowTestsBase { @Test public void testTargetStackInSplitScreen() { final ActivityStarter starter = prepareStarter(FLAG_ACTIVITY_LAUNCH_ADJACENT, false /* mockGetLaunchStack */); prepareStarter(FLAG_ACTIVITY_LAUNCH_ADJACENT, false /* mockGetRootTask */); final ActivityRecord top = new ActivityBuilder(mAtm).setCreateTask(true).build(); final ActivityOptions options = ActivityOptions.makeBasic(); final ActivityRecord[] outActivity = new ActivityRecord[1]; Loading
services/tests/wmtests/src/com/android/server/wm/RootWindowContainerTests.java +2 −2 Original line number Diff line number Diff line Loading @@ -949,7 +949,7 @@ public class RootWindowContainerTests extends WindowTestsBase { LaunchParamsController.LaunchParams launchParams = new LaunchParamsController.LaunchParams(); launchParams.mPreferredTaskDisplayArea = taskDisplayArea; Task root = mRootWindowContainer.getLaunchRootTask(null /* r */, null /* options */, Task root = mRootWindowContainer.getOrCreateRootTask(null /* r */, null /* options */, null /* candidateTask */, null /* sourceTask */, true /* onTop */, launchParams, 0 /* launchParams */); assertEquals(taskDisplayArea, root.getTaskDisplayArea()); Loading @@ -957,7 +957,7 @@ public class RootWindowContainerTests extends WindowTestsBase { // Making sure still getting the root task from the preferred TDA when passing in a // launching activity. ActivityRecord r = new ActivityBuilder(mAtm).build(); root = mRootWindowContainer.getLaunchRootTask(r, null /* options */, root = mRootWindowContainer.getOrCreateRootTask(r, null /* options */, null /* candidateTask */, null /* sourceTask */, true /* onTop */, launchParams, 0 /* launchParams */); assertEquals(taskDisplayArea, root.getTaskDisplayArea()); Loading