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

Commit 622b3a38 authored by Kriti Dang's avatar Kriti Dang Committed by Nicolo' Mazzucato
Browse files

Propagate user preferred mode to SurfaceControl, only if it has changed.

Bug: 219968277
Test: atest LocalDisplayAdapterTest
Change-Id: I3ad062be7c53c88f7312de12677fda39433ecb77
parent ddb497d6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2463,7 +2463,7 @@ public final class DisplayManagerService extends SystemService {
            pw.println("  mMinimumBrightnessCurve=" + mMinimumBrightnessCurve);

            if (mUserPreferredMode != null) {
                pw.println(mUserPreferredMode);
                pw.println(" mUserPreferredMode=" + mUserPreferredMode);
            }

            pw.println();
+12 −6
Original line number Diff line number Diff line
@@ -871,20 +871,26 @@ final class LocalDisplayAdapter extends DisplayAdapter {
        public void setUserPreferredDisplayModeLocked(Display.Mode mode) {
            final int oldModeId = getPreferredModeId();
            mUserPreferredMode = mode;
            if (mode != null && (mode.isRefreshRateSet() ^ mode.isResolutionSet())) {
                mUserPreferredMode = findMode(mode.getPhysicalWidth(),
            if (mode != null && (mode.isRefreshRateSet() || mode.isResolutionSet())) {
                Display.Mode matchingSupportedMode;
                matchingSupportedMode = findMode(mode.getPhysicalWidth(),
                        mode.getPhysicalHeight(), mode.getRefreshRate());
                if (matchingSupportedMode != null) {
                    mUserPreferredMode = matchingSupportedMode;
                }
            }
            mUserPreferredModeId = findUserPreferredModeIdLocked(mode);

            if (oldModeId != getPreferredModeId()) {
                updateDeviceInfoLocked();
            mUserPreferredModeId = findUserPreferredModeIdLocked(mUserPreferredMode);

            if (oldModeId == getPreferredModeId()) {
                return;
            }
            updateDeviceInfoLocked();

            if (!mSurfaceControlProxy.getBootDisplayModeSupport()) {
                return;
            }
            if (mUserPreferredMode == null) {
            if (mUserPreferredModeId == INVALID_MODE_ID) {
                mSurfaceControlProxy.clearBootDisplayMode(getDisplayTokenLocked());
            } else {
                mSurfaceControlProxy.setBootDisplayMode(getDisplayTokenLocked(),