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

Commit b0e54c56 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Continue layout if needed"

parents ea86f830 a0022cd2
Loading
Loading
Loading
Loading
+11 −16
Original line number Diff line number Diff line
@@ -740,7 +740,7 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
    }

    private void onSplitScreenModeDismissed() {
        mRootActivityContainer.mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            // Adjust the windowing mode of any stack in secondary split-screen to fullscreen.
            for (int i = mStacks.size() - 1; i >= 0; --i) {
@@ -764,12 +764,12 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
                mHomeStack.moveToFront("onSplitScreenModeDismissed");
                topFullscreenStack.moveToFront("onSplitScreenModeDismissed");
            }
            mRootActivityContainer.mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
        }
    }

    private void onSplitScreenModeActivated() {
        mRootActivityContainer.mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            // Adjust the windowing mode of any affected by split-screen to split-screen secondary.
            for (int i = mStacks.size() - 1; i >= 0; --i) {
@@ -784,7 +784,7 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
                        false /* creating */);
            }
        } finally {
            mRootActivityContainer.mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
        }
    }

@@ -1002,12 +1002,9 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
        Configuration values = new Configuration();
        mDisplayContent.computeScreenConfiguration(values);

        if (mService.mWindowManager != null) {
            final Message msg = PooledLambda.obtainMessage(
        mService.mH.sendMessage(PooledLambda.obtainMessage(
                ActivityManagerInternal::updateOomLevelsForDisplay, mService.mAmInternal,
                    mDisplayId);
            mService.mH.sendMessage(msg);
        }
                mDisplayId));

        Settings.System.clearConfiguration(values);
        updateDisplayOverrideConfigurationLocked(values, null /* starting */,
@@ -1026,9 +1023,7 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
        int changes = 0;
        boolean kept = true;

        if (mService.mWindowManager != null) {
            mService.mWindowManager.deferSurfaceLayout();
        }
        mService.deferWindowLayout();
        try {
            if (values != null) {
                if (mDisplayId == DEFAULT_DISPLAY) {
@@ -1045,9 +1040,7 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>

            kept = mService.ensureConfigAndVisibilityAfterUpdate(starting, changes);
        } finally {
            if (mService.mWindowManager != null) {
                mService.mWindowManager.continueSurfaceLayout();
            }
            mService.continueWindowLayout();
        }

        if (result != null) {
@@ -1096,6 +1089,8 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
            mService.mWindowManager.setNewDisplayOverrideConfiguration(
                    overrideConfiguration, mDisplayContent);
        }
        mService.addWindowLayoutReasons(
                ActivityTaskManagerService.LAYOUT_REASON_CONFIG_CHANGED);
    }

    @Override
+4 −2
Original line number Diff line number Diff line
@@ -1703,7 +1703,7 @@ final class ActivityRecord extends ConfigurationContainer {
                // is not visible if it only contains finishing activities.
                && mRootActivityContainer.isTopDisplayFocusedStack(stack);

        mAtmService.mWindowManager.deferSurfaceLayout();
        mAtmService.deferWindowLayout();
        try {
            makeFinishingLocked();
            final TaskRecord task = getTaskRecord();
@@ -1809,7 +1809,7 @@ final class ActivityRecord extends ConfigurationContainer {

            return FINISH_RESULT_REQUESTED;
        } finally {
            mAtmService.mWindowManager.continueSurfaceLayout();
            mAtmService.continueWindowLayout();
        }
    }

@@ -2547,6 +2547,8 @@ final class ActivityRecord extends ConfigurationContainer {
            return;
        }
        mAppWindowToken.setVisibility(visible, mDeferHidingClient);
        mAtmService.addWindowLayoutReasons(
                ActivityTaskManagerService.LAYOUT_REASON_VISIBILITY_CHANGED);
        mStackSupervisor.getActivityMetricsLogger().notifyVisibilityChanged(this);
    }

+6 −7
Original line number Diff line number Diff line
@@ -757,7 +757,6 @@ class ActivityStack extends ConfigurationContainer {
            return;
        }

        final WindowManagerService wm = mService.mWindowManager;
        final ActivityRecord topActivity = getTopActivity();

        // For now, assume that the Stack's windowing mode is what will actually be used
@@ -779,7 +778,7 @@ class ActivityStack extends ConfigurationContainer {
                    topTask.taskId, FORCED_RESIZEABLE_REASON_SPLIT_SCREEN, packageName);
        }

        wm.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            if (!animate && topActivity != null) {
                mStackSupervisor.mNoAnimActivities.add(topActivity);
@@ -850,7 +849,7 @@ class ActivityStack extends ConfigurationContainer {
                // If task moved to docked stack - show recents if needed.
                mService.mWindowManager.showRecentApps();
            }
            wm.continueSurfaceLayout();
            mService.continueWindowLayout();
        }

        if (!deferEnsuringVisibility) {
@@ -1750,11 +1749,11 @@ class ActivityStack extends ConfigurationContainer {
            if (mPausingActivity == r) {
                if (DEBUG_STATES) Slog.v(TAG_STATES, "Moving to PAUSED: " + r
                        + (timeout ? " (due to timeout)" : " (pause complete)"));
                mService.mWindowManager.deferSurfaceLayout();
                mService.deferWindowLayout();
                try {
                    completePauseLocked(true /* resumeNext */, null /* resumingActivity */);
                } finally {
                    mService.mWindowManager.continueSurfaceLayout();
                    mService.continueWindowLayout();
                }
                return;
            } else {
@@ -4360,7 +4359,7 @@ class ActivityStack extends ConfigurationContainer {
        }

        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "stack.resize_" + mStackId);
        mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            // Update override configurations of all tasks in the stack.
            final Rect taskBounds = tempTaskBounds != null ? tempTaskBounds : bounds;
@@ -4384,7 +4383,7 @@ class ActivityStack extends ConfigurationContainer {
                        topRunningActivityLocked(), preserveWindows);
            }
        } finally {
            mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
        }
    }
+8 −9
Original line number Diff line number Diff line
@@ -1495,7 +1495,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
    private void moveTasksToFullscreenStackInSurfaceTransaction(ActivityStack fromStack,
            int toDisplayId, boolean onTop) {

        mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            final int windowingMode = fromStack.getWindowingMode();
            final boolean inPinnedWindowingMode = windowingMode == WINDOWING_MODE_PINNED;
@@ -1561,7 +1561,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
            mRootActivityContainer.resumeFocusedStacksTopActivities();
        } finally {
            mAllowDockedStackResize = true;
            mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
        }
    }

@@ -1630,7 +1630,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
        }

        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeDockedStack");
        mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            // Don't allow re-entry while resizing. E.g. due to docked stack detaching.
            mAllowDockedStackResize = false;
@@ -1694,7 +1694,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
            }
        } finally {
            mAllowDockedStackResize = true;
            mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
        }
    }
@@ -1718,9 +1718,8 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
        }

        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizePinnedStack");
        mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            ActivityRecord r = stack.topRunningActivityLocked();
            Rect insetBounds = null;
            if (tempPinnedTaskBounds != null && stack.isAnimatingBoundsToFullscreen()) {
                // Use 0,0 as the position for the inset rect because we are headed for fullscreen.
@@ -1739,7 +1738,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
            stack.resize(pinnedBounds, tempPinnedTaskBounds, insetBounds, !PRESERVE_WINDOWS,
                    !DEFER_RESUME);
        } finally {
            mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
            Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
        }
    }
@@ -2731,7 +2730,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
                    + taskId + " can't be launch in the home/recents stack.");
        }

        mWindowManager.deferSurfaceLayout();
        mService.deferWindowLayout();
        try {
            if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
                mWindowManager.setDockedStackCreateStateLocked(
@@ -2822,7 +2821,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
                    mWindowManager.checkSplitScreenMinimizedChanged(false /* animate */);
                }
            }
            mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -1400,7 +1400,7 @@ class ActivityStarter {
        int result = START_CANCELED;
        final ActivityStack startedActivityStack;
        try {
            mService.mWindowManager.deferSurfaceLayout();
            mService.deferWindowLayout();
            result = startActivityUnchecked(r, sourceRecord, voiceSession, voiceInteractor,
                    startFlags, doResume, options, inTask, outActivity, restrictedBgActivity);
        } finally {
@@ -1436,7 +1436,7 @@ class ActivityStarter {
                    startedActivityStack.remove();
                }
            }
            mService.mWindowManager.continueSurfaceLayout();
            mService.continueWindowLayout();
        }

        postStartActivityProcessing(r, result, startedActivityStack);
Loading