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

Commit 73a973b2 authored by Kriti Dang's avatar Kriti Dang
Browse files

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

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


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


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


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

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


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