Make sure task exists in WM before trying to set the resizing state

It is possible for a task to be removed from the WM and stack in AM
while resizing (e.g. app crashes). In this case we want to make sure
the task exist in WM before we try to set the dock resizing state vs.
depending on the fact that the task is in recent list in AM.

Bug: 29325623
Change-Id: Ib89a7bfe12fe1f2c4c6c56ac9e13b0052ea2b4ec
This commit is contained in:
Wale Ogunwale
2016-06-14 13:10:09 -07:00
parent 7ce75172dd
commit d6aee18cab
2 changed files with 3 additions and 3 deletions

View File

@@ -2028,7 +2028,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
continueUpdateBounds(HOME_STACK_ID);
for (int i = mResizingTasksDuringAnimation.size() - 1; i >= 0; i--) {
final int taskId = mResizingTasksDuringAnimation.valueAt(i);
if (anyTaskForIdLocked(taskId) != null) {
if (anyTaskForIdLocked(taskId, !RESTORE_FROM_RECENTS, INVALID_STACK_ID) != null) {
mWindowManager.setTaskDockedResizing(taskId, false);
}
}

View File

@@ -5230,8 +5230,8 @@ public class WindowManagerService extends IWindowManager.Stub
synchronized (mWindowMap) {
Task task = mTaskIdToTask.get(taskId);
if (task == null) {
throw new IllegalArgumentException("setTaskDockedResizing: taskId " + taskId
+ " not found.");
Slog.w(TAG, "setTaskDockedResizing: taskId " + taskId + " not found.");
return;
}
task.setDragResizing(resizing, DRAG_RESIZE_MODE_DOCKED_DIVIDER);
}