Merge "Fix bug with drag-to-split involving work profiles" into udc-dev
This commit is contained in:
@@ -371,7 +371,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
|
|||||||
* Find the background task that match the given component.
|
* Find the background task that match the given component.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public ActivityManager.RecentTaskInfo findTaskInBackground(ComponentName componentName) {
|
public ActivityManager.RecentTaskInfo findTaskInBackground(ComponentName componentName,
|
||||||
|
int userId) {
|
||||||
if (componentName == null) {
|
if (componentName == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -383,7 +384,7 @@ public class RecentTasksController implements TaskStackListenerCallback,
|
|||||||
if (task.isVisible) {
|
if (task.isVisible) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (componentName.equals(task.baseIntent.getComponent())) {
|
if (componentName.equals(task.baseIntent.getComponent()) && userId == task.userId) {
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -723,7 +723,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
|
|||||||
// in the background with priority.
|
// in the background with priority.
|
||||||
final ActivityManager.RecentTaskInfo taskInfo = mRecentTasksOptional
|
final ActivityManager.RecentTaskInfo taskInfo = mRecentTasksOptional
|
||||||
.map(recentTasks -> recentTasks.findTaskInBackground(
|
.map(recentTasks -> recentTasks.findTaskInBackground(
|
||||||
intent.getIntent().getComponent()))
|
intent.getIntent().getComponent(), userId1))
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
if (taskInfo != null) {
|
if (taskInfo != null) {
|
||||||
startTask(taskInfo.taskId, position, options);
|
startTask(taskInfo.taskId, position, options);
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ public class SplitScreenControllerTests extends ShellTestCase {
|
|||||||
doReturn(topRunningTask).when(mRecentTasks).getTopRunningTask();
|
doReturn(topRunningTask).when(mRecentTasks).getTopRunningTask();
|
||||||
// Put the same component into a task in the background
|
// Put the same component into a task in the background
|
||||||
ActivityManager.RecentTaskInfo sameTaskInfo = new ActivityManager.RecentTaskInfo();
|
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,
|
mSplitScreenController.startIntent(pendingIntent, mContext.getUserId(), null,
|
||||||
SPLIT_POSITION_TOP_OR_LEFT, null);
|
SPLIT_POSITION_TOP_OR_LEFT, null);
|
||||||
@@ -247,7 +247,7 @@ public class SplitScreenControllerTests extends ShellTestCase {
|
|||||||
SPLIT_POSITION_BOTTOM_OR_RIGHT);
|
SPLIT_POSITION_BOTTOM_OR_RIGHT);
|
||||||
// Put the same component into a task in the background
|
// Put the same component into a task in the background
|
||||||
doReturn(new ActivityManager.RecentTaskInfo()).when(mRecentTasks)
|
doReturn(new ActivityManager.RecentTaskInfo()).when(mRecentTasks)
|
||||||
.findTaskInBackground(any());
|
.findTaskInBackground(any(), anyInt());
|
||||||
|
|
||||||
mSplitScreenController.startIntent(pendingIntent, mContext.getUserId(), null,
|
mSplitScreenController.startIntent(pendingIntent, mContext.getUserId(), null,
|
||||||
SPLIT_POSITION_TOP_OR_LEFT, null);
|
SPLIT_POSITION_TOP_OR_LEFT, null);
|
||||||
|
|||||||
Reference in New Issue
Block a user