summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/ActivityStarter.java4
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java14
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());
+ }
}