Add stub task when matching TaskView is grouped while runningTasks is not grouped
- Completely rewrote shouldAddStubTaskView to simplify the logic Fix: 333844287 Test: With 2 split tasks, unsplit one, go to Overview, launch the other split, unsplit, go to Overview Flag: None (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:492965326e7391c8427b6fca7875508e7a957b49) Merged-In: I2f33f91956d485957cedf43ccd684f16d42803be Change-Id: I2f33f91956d485957cedf43ccd684f16d42803be
This commit is contained in:
committed by
Cherrypicker Worker
parent
0db4a1aac5
commit
f7555925c1
@@ -2759,18 +2759,20 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
* Returns true if we should add a stub taskView for the running task id
|
||||
*/
|
||||
protected boolean shouldAddStubTaskView(Task[] runningTasks) {
|
||||
if (runningTasks.length > 1) {
|
||||
TaskView primaryTaskView = getTaskViewByTaskId(runningTasks[0].key.id);
|
||||
TaskView secondaryTaskView = getTaskViewByTaskId(runningTasks[1].key.id);
|
||||
int leftTopTaskViewId =
|
||||
(primaryTaskView == null) ? -1 : primaryTaskView.getTaskViewId();
|
||||
int rightBottomTaskViewId =
|
||||
(secondaryTaskView == null) ? -1 : secondaryTaskView.getTaskViewId();
|
||||
// Add a new stub view if both taskIds don't match any taskViews
|
||||
return leftTopTaskViewId != rightBottomTaskViewId || leftTopTaskViewId == -1;
|
||||
TaskView taskView = getTaskViewByTaskId(runningTasks[0].key.id);
|
||||
if (taskView == null) {
|
||||
// No TaskView found, add a stub task.
|
||||
return true;
|
||||
}
|
||||
|
||||
if (runningTasks.length > 1) {
|
||||
// Ensure all taskIds matches the TaskView, otherwise add a stub task.
|
||||
return Arrays.stream(runningTasks).anyMatch(
|
||||
runningTask -> !taskView.containsTaskId(runningTask.key.id));
|
||||
} else {
|
||||
// Ensure the TaskView only contains a single taskId, otherwise add a stub task.
|
||||
return taskView.containsMultipleTasks();
|
||||
}
|
||||
Task runningTaskInfo = runningTasks[0];
|
||||
return runningTaskInfo != null && getTaskViewByTaskId(runningTaskInfo.key.id) == null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user