diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 4 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 6587226b14d7..f0bf94593eff 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1595,11 +1595,11 @@ class ActivityStarter { mRootWindowContainer.resumeFocusedStacksTopActivities( mTargetStack, mStartActivity, mOptions); } - } else if (mStartActivity != null) { - mSupervisor.mRecentTasks.add(mStartActivity.getTask()); } mRootWindowContainer.updateUserStack(mStartActivity.mUserId, mTargetStack); + // Update the recent tasks list immediately when the activity starts + mSupervisor.mRecentTasks.add(mStartActivity.getTask()); mSupervisor.handleNonResizableTaskIfNeeded(mStartActivity.getTask(), preferredWindowingMode, mPreferredDisplayId, mTargetStack); diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java index 9e54f4044e0a..60dece13e8b7 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java @@ -1006,4 +1006,18 @@ public class ActivityStarterTests extends ActivityTestsBase { .setOutActivity(outActivity).execute(); assertThat(outActivity[0].inSplitScreenSecondaryWindowingMode()).isTrue(); } + + @Test + public void testActivityStart_expectAddedToRecentTask() { + RecentTasks recentTasks = mock(RecentTasks.class); + mService.mStackSupervisor.setRecentTasks(recentTasks); + doReturn(true).when(recentTasks).isCallerRecents(anyInt()); + + final ActivityStarter starter = prepareStarter(0 /* flags */); + + starter.setReason("testAddToTaskListOnActivityStart") + .execute(); + + verify(recentTasks, times(1)).add(any()); + } } |