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

Commit 4d0a4546 authored by Lingyu Feng's avatar Lingyu Feng Committed by Android (Google) Code Review
Browse files

Merge "Update DisplayWindowSettings.mShouldShowSystemDecors in setCurrentUser()" into main

parents 6f217edf 609c7598
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -3312,6 +3312,16 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        return true;
        return true;
    }
    }


    void updateShouldShowSystemDecorations() {
        final boolean shouldShow = mDisplay.canHostTasks();
        if (allowContentModeSwitch() &&
                (shouldShow != mWmService.mDisplayWindowSettings
                        .shouldShowSystemDecorsLocked(this))) {
            mWmService.mDisplayWindowSettings
                    .setShouldShowSystemDecorsInternalLocked(this, shouldShow);
        }
    }

    DisplayCutout loadDisplayCutout(int displayWidth, int displayHeight) {
    DisplayCutout loadDisplayCutout(int displayWidth, int displayHeight) {
        if (mDisplayPolicy == null || mInitialDisplayCutout == null) {
        if (mDisplayPolicy == null || mInitialDisplayCutout == null) {
            return null;
            return null;
+1 −5
Original line number Original line Diff line number Diff line
@@ -2760,11 +2760,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
            }
            }


            if (ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue()) {
            if (ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue()) {
                if (display.allowContentModeSwitch()) {
                display.updateShouldShowSystemDecorations();
                    mWindowManager.mDisplayWindowSettings
                            .setShouldShowSystemDecorsInternalLocked(display,
                                    display.mDisplay.canHostTasks());
                }


                final boolean inTopology = mWindowManager.mDisplayWindowSettings
                final boolean inTopology = mWindowManager.mDisplayWindowSettings
                        .shouldShowSystemDecorsLocked(display);
                        .shouldShowSystemDecorsLocked(display);
+14 −2
Original line number Original line Diff line number Diff line
@@ -308,6 +308,7 @@ import android.window.ActivityWindowInfo;
import android.window.AddToSurfaceSyncGroupResult;
import android.window.AddToSurfaceSyncGroupResult;
import android.window.ClientWindowFrames;
import android.window.ClientWindowFrames;
import android.window.ConfigurationChangeSetting;
import android.window.ConfigurationChangeSetting;
import android.window.DesktopExperienceFlags;
import android.window.DesktopModeFlags;
import android.window.DesktopModeFlags;
import android.window.IGlobalDragListener;
import android.window.IGlobalDragListener;
import android.window.IScreenRecordingCallback;
import android.window.IScreenRecordingCallback;
@@ -3850,13 +3851,24 @@ public class WindowManagerService extends IWindowManager.Stub
            // Notify whether the root docked task exists for the current user
            // Notify whether the root docked task exists for the current user
            final DisplayContent displayContent = getDefaultDisplayContentLocked();
            final DisplayContent displayContent = getDefaultDisplayContentLocked();


            if (mDisplayReady) {
                // If the display is already prepared, update the density.
                // If the display is already prepared, update the density.
                // Otherwise, we'll update it when it's prepared.
                // Otherwise, we'll update it when it's prepared.
            if (mDisplayReady) {
                final int forcedDensity = getForcedDisplayDensityForUserLocked(newUserId);
                final int forcedDensity = getForcedDisplayDensityForUserLocked(newUserId);
                final int targetDensity = forcedDensity != 0
                final int targetDensity = forcedDensity != 0
                        ? forcedDensity : displayContent.getInitialDisplayDensity();
                        ? forcedDensity : displayContent.getInitialDisplayDensity();
                displayContent.setForcedDensity(targetDensity, UserHandle.USER_CURRENT);
                displayContent.setForcedDensity(targetDensity, UserHandle.USER_CURRENT);

                // Because DisplayWindowSettingsProvider.mOverrideSettings has been reset for the
                // new user, we need to update DisplayWindowSettings.mShouldShowSystemDecors to
                // ensure it reflects the latest value.
                if (DesktopExperienceFlags.ENABLE_DISPLAY_CONTENT_MODE_MANAGEMENT.isTrue()) {
                    final int displayCount = mRoot.mChildren.size();
                    for (int i = 0; i < displayCount; ++i) {
                        final DisplayContent dc = mRoot.mChildren.get(i);
                        dc.updateShouldShowSystemDecorations();
                    }
                }
            }
            }
            mAtmService.mChainTracker.end();
            mAtmService.mChainTracker.end();
        }
        }