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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user