Merge "Add restored tasks with persisted activity to hierarchy" into sc-dev

This commit is contained in:
Chilun Huang
2021-03-16 01:57:10 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 4 deletions

View File

@@ -4911,9 +4911,15 @@ class Task extends WindowContainer<WindowContainer> {
task.mLastNonFullscreenBounds = lastNonFullscreenBounds;
task.setBounds(lastNonFullscreenBounds);
task.mWindowLayoutAffinity = windowLayoutAffinity;
if (activities.size() > 0) {
// We need to add the task into hierarchy before adding child to it.
final DisplayContent dc =
taskSupervisor.mRootWindowContainer.getDisplayContent(DEFAULT_DISPLAY);
dc.getDefaultTaskDisplayArea().addChild(task, POSITION_BOTTOM);
for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
task.addChild(activities.get(activityNdx));
for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
task.addChild(activities.get(activityNdx));
}
}
if (DEBUG_RECENTS) Slog.d(TAG_RECENTS, "Restored task=" + task);

View File

@@ -328,10 +328,19 @@ public class TaskPersister implements PersisterQueue.Listener {
// mWriteQueue.add(new TaskWriteQueueItem(task));
final int taskId = task.mTaskId;
if (mService.mRootWindowContainer.anyTaskForId(taskId,
final boolean persistedTask = task.hasActivity();
if (persistedTask && mRecentTasks.getTask(taskId) != null) {
// The persisted task is added into hierarchy and will also be
// added to recent tasks later. So this task should not exist
// in recent tasks before it is added.
Slog.wtf(TAG, "Existing persisted task with taskId " + taskId
+ " found");
} else if (!persistedTask
&& mService.mRootWindowContainer.anyTaskForId(taskId,
MATCH_ATTACHED_TASK_OR_RECENT_TASKS) != null) {
// Should not happen.
Slog.wtf(TAG, "Existing task with taskId " + taskId + "found");
Slog.wtf(TAG, "Existing task with taskId " + taskId
+ " found");
} else if (userId != task.mUserId) {
// Should not happen.
Slog.wtf(TAG, "Task with userId " + task.mUserId + " found in "