Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e8beab9 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Automerger Merge Worker
Browse files

Merge "Hold WM lock when add starting window to TaskOrganizer" into sc-dev am: 5ddb3b7a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14161102

Change-Id: I572c3567bddca2f60846cf4ea9410a5094334bc7
parents 54b7fc64 5ddb3b7a
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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);
+15 −13
Original line number Diff line number Diff line
@@ -58,11 +58,13 @@ public class StartingSurfaceController {
                    overrideConfig, displayId);
        }

        synchronized (mService.mGlobalLock) {
            final Task task = activity.getTask();
        if (task != null && mService.mAtmService.mTaskOrganizerController.addStartingWindow(task,
                activity.token, theme)) {
            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);
            }
        }
    }
}