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

Commit c71afba0 authored by Kriti Dang's avatar Kriti Dang
Browse files

Apply the setting update on systemReady apart from onDisplayAdded.

onDisplayAdded gets called before systemReady, and till that time the
correct settings are not yet updated. So, apply the settings on display
after they can be fetched correctly.

Bug: 261552562
Test: adb shell dumpsys display
Change-Id: I23fe147862c58571a0fddcd35de18be20e5074a9
parent 8bdd5306
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -628,7 +628,6 @@ public final class DisplayManagerService extends SystemService {
            recordTopInsetLocked(mLogicalDisplayMapper.getDisplayLocked(Display.DEFAULT_DISPLAY));

            updateSettingsLocked();

            updateUserDisabledHdrTypesFromSettingsLocked();
            updateUserPreferredDisplayModeSettingsLocked();
        }
@@ -852,6 +851,15 @@ public final class DisplayManagerService extends SystemService {
                for (int i = 0; i < userDisabledHdrTypeStrings.length; i++) {
                    mUserDisabledHdrTypes[i] = Integer.parseInt(userDisabledHdrTypeStrings[i]);
                }

                if (!mAreUserDisabledHdrTypesAllowed) {
                    mLogicalDisplayMapper.forEachLocked(
                            display -> {
                                display.setUserDisabledHdrTypes(mUserDisabledHdrTypes);
                                handleLogicalDisplayChangedLocked(display);
                            });
                }

            } catch (NumberFormatException e) {
                Slog.e(TAG, "Failed to parse USER_DISABLED_HDR_FORMATS. "
                        + "Clearing the setting.", e);
@@ -879,6 +887,15 @@ public final class DisplayManagerService extends SystemService {
                Settings.Global.USER_PREFERRED_RESOLUTION_WIDTH, Display.INVALID_DISPLAY_WIDTH);
        Display.Mode mode = new Display.Mode(width, height, refreshRate);
        mUserPreferredMode = isResolutionAndRefreshRateValid(mode) ? mode : null;
        if (mUserPreferredMode != null) {
            mDisplayDeviceRepo.forEachLocked((DisplayDevice device) -> {
                device.setUserPreferredDisplayModeLocked(mode);
            });
        } else {
            mLogicalDisplayMapper.forEachLocked((LogicalDisplay display) -> {
                configurePreferredDisplayModeLocked(display);
            });
        }
    }

    private DisplayInfo getDisplayInfoForFrameRateOverride(DisplayEventReceiver.FrameRateOverride[]