Merge "Hold WM lock when add starting window to TaskOrganizer" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5ddb3b7aeb
@@ -2176,7 +2176,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Add starting %s: startingData=%s",
|
||||
this, startingData);
|
||||
|
||||
|
||||
WindowManagerPolicy.StartingSurface surface = null;
|
||||
try {
|
||||
surface = startingData.createStartingSurface(ActivityRecord.this);
|
||||
|
||||
@@ -58,10 +58,12 @@ public class StartingSurfaceController {
|
||||
overrideConfig, displayId);
|
||||
}
|
||||
|
||||
final Task task = activity.getTask();
|
||||
if (task != null && mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
|
||||
activity.token, theme)) {
|
||||
return new ShellStartingSurface(task);
|
||||
synchronized (mService.mGlobalLock) {
|
||||
final Task task = activity.getTask();
|
||||
if (task != null && mService.mAtmService.mTaskOrganizerController.addStartingWindow(
|
||||
task, activity.token, theme)) {
|
||||
return new ShellStartingSurface(task);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -124,14 +126,13 @@ public class StartingSurfaceController {
|
||||
activity.mDisplayContent.handleTopActivityLaunchingInDifferentOrientation(
|
||||
topFullscreenActivity, false /* checkOpening */);
|
||||
}
|
||||
if (DEBUG_ENABLE_SHELL_DRAWER) {
|
||||
mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
|
||||
activity.token, 0 /* launchTheme */);
|
||||
return new ShellStartingSurface(task);
|
||||
}
|
||||
}
|
||||
if (!DEBUG_ENABLE_SHELL_DRAWER) {
|
||||
return mService.mTaskSnapshotController
|
||||
.createStartingSurface(activity, taskSnapshot);
|
||||
}
|
||||
mService.mAtmService.mTaskOrganizerController.addStartingWindow(task, activity.token,
|
||||
0 /* launchTheme */);
|
||||
return new ShellStartingSurface(task);
|
||||
return mService.mTaskSnapshotController.createStartingSurface(activity, taskSnapshot);
|
||||
}
|
||||
|
||||
|
||||
@@ -144,8 +145,9 @@ public class StartingSurfaceController {
|
||||
|
||||
@Override
|
||||
public void remove(boolean animate) {
|
||||
mService.mAtmService.mTaskOrganizerController.removeStartingWindow(mTask,
|
||||
animate);
|
||||
synchronized (mService.mGlobalLock) {
|
||||
mService.mAtmService.mTaskOrganizerController.removeStartingWindow(mTask, animate);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user