Merge "Propagate user preferred mode to SurfaceControl, only if it has changed." into tm-dev

This commit is contained in:
TreeHugger Robot
2022-02-25 14:24:54 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 7 deletions

View File

@@ -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();

View File

@@ -884,20 +884,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 {
int preferredSfDisplayModeId = findSfDisplayModeIdLocked(