Merge "Fix bug with drag-to-split involving work profiles" into udc-dev am: 57d6975cfb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23357894

Change-Id: Id4fe2093f2b4e1a86da40d2241367336c6de74a4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jeremy Sim
2023-05-22 21:51:25 +00:00
committed by Automerger Merge Worker
3 changed files with 6 additions and 5 deletions

View File

@@ -371,7 +371,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
* Find the background task that match the given component.
*/
@Nullable
public ActivityManager.RecentTaskInfo findTaskInBackground(ComponentName componentName) {
public ActivityManager.RecentTaskInfo findTaskInBackground(ComponentName componentName,
int userId) {
if (componentName == null) {
return null;
}
@@ -383,7 +384,7 @@ public class RecentTasksController implements TaskStackListenerCallback,
if (task.isVisible) {
continue;
}
if (componentName.equals(task.baseIntent.getComponent())) {
if (componentName.equals(task.baseIntent.getComponent()) && userId == task.userId) {
return task;
}
}

View File

@@ -723,7 +723,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
// in the background with priority.
final ActivityManager.RecentTaskInfo taskInfo = mRecentTasksOptional
.map(recentTasks -> recentTasks.findTaskInBackground(
intent.getIntent().getComponent()))
intent.getIntent().getComponent(), userId1))
.orElse(null);
if (taskInfo != null) {
startTask(taskInfo.taskId, position, options);

View File

@@ -223,7 +223,7 @@ public class SplitScreenControllerTests extends ShellTestCase {
doReturn(topRunningTask).when(mRecentTasks).getTopRunningTask();
// Put the same component into a task in the background
ActivityManager.RecentTaskInfo sameTaskInfo = new ActivityManager.RecentTaskInfo();
doReturn(sameTaskInfo).when(mRecentTasks).findTaskInBackground(any());
doReturn(sameTaskInfo).when(mRecentTasks).findTaskInBackground(any(), anyInt());
mSplitScreenController.startIntent(pendingIntent, mContext.getUserId(), null,
SPLIT_POSITION_TOP_OR_LEFT, null);
@@ -247,7 +247,7 @@ public class SplitScreenControllerTests extends ShellTestCase {
SPLIT_POSITION_BOTTOM_OR_RIGHT);
// Put the same component into a task in the background
doReturn(new ActivityManager.RecentTaskInfo()).when(mRecentTasks)
.findTaskInBackground(any());
.findTaskInBackground(any(), anyInt());
mSplitScreenController.startIntent(pendingIntent, mContext.getUserId(), null,
SPLIT_POSITION_TOP_OR_LEFT, null);