diff options
| author | 2022-09-05 00:49:46 +0000 | |
|---|---|---|
| committer | 2022-09-05 00:49:46 +0000 | |
| commit | 20c05fdac048c8c4a9db394ffc814bb00fa720d4 (patch) | |
| tree | 81b53f770807795640108710ff2044281a1cf5a9 | |
| parent | c77e365900c3fd5945c718b508622b6206a59a33 (diff) | |
| parent | a3e9c75022ecd8233038894e5d1731543134e0f4 (diff) | |
Merge "Find activity in task with same user" into tm-qpr-dev am: fc9ccbb8a0 am: a3e9c75022
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19741912
Change-Id: I1c73d09e09d56e6649d5b4d7383999ac5061b1b3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 11 |
2 files changed, 8 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index db622cb12fcf..a2f8c14f6595 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -2107,7 +2107,8 @@ class ActivityStarter { // already be running somewhere in the history, and we want to shuffle it to // the front of the root task if so. final ActivityRecord act = - targetTask.findActivityInHistory(mStartActivity.mActivityComponent); + targetTask.findActivityInHistory(mStartActivity.mActivityComponent, + mStartActivity.mUserId); if (act != null) { final Task task = act.getTask(); task.moveActivityToFrontLocked(act); diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 659e37bb3de7..ec28f34d3a44 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -1634,7 +1634,7 @@ class Task extends TaskFragment { * or {@code null} if none was found. */ private ActivityRecord clearTopActivities(ActivityRecord newR, int launchFlags) { - final ActivityRecord r = findActivityInHistory(newR.mActivityComponent); + final ActivityRecord r = findActivityInHistory(newR.mActivityComponent, newR.mUserId); if (r == null) return null; final PooledPredicate f = PooledLambda.obtainPredicate(Task::finishActivityAbove, @@ -1750,17 +1750,18 @@ class Task extends TaskFragment { * Find the activity in the history task within the given task. Returns * the index within the history at which it's found, or < 0 if not found. */ - ActivityRecord findActivityInHistory(ComponentName component) { + ActivityRecord findActivityInHistory(ComponentName component, int userId) { final PooledPredicate p = PooledLambda.obtainPredicate(Task::matchesActivityInHistory, - PooledLambda.__(ActivityRecord.class), component); + PooledLambda.__(ActivityRecord.class), component, userId); final ActivityRecord r = getActivity(p); p.recycle(); return r; } private static boolean matchesActivityInHistory( - ActivityRecord r, ComponentName activityComponent) { - return !r.finishing && r.mActivityComponent.equals(activityComponent); + ActivityRecord r, ComponentName activityComponent, int userId) { + return !r.finishing && r.mActivityComponent.equals(activityComponent) + && r.mUserId == userId; } /** Updates the last task description values. */ |