Propagate user preferred mode to SurfaceControl, only if it has changed.
Bug: 219968277 Test: atest LocalDisplayAdapterTest Change-Id: I3ad062be7c53c88f7312de12677fda39433ecb77
This commit is contained in:
committed by
Nicolo' Mazzucato
parent
ddb497d64a
commit
622b3a38dc
@@ -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();
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user