diff options
| author | 2022-11-10 17:14:55 +0000 | |
|---|---|---|
| committer | 2022-11-10 17:14:55 +0000 | |
| commit | 7239296def136fd56151fb2d64fb3958089b97bb (patch) | |
| tree | 9977493e4a921b63b837e7f5e1e4f43f2c2cfc9d | |
| parent | b1f110a7685807c08a73eef614c5cc5892fc2a37 (diff) | |
| parent | 753e5c0126d9ad4b279060608261c82aa9517511 (diff) | |
Merge "Retrive the value of user-pref, if its not stored in persistentDataStore" into tm-qpr-dev
| -rw-r--r-- | services/core/java/com/android/server/display/DisplayManagerService.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 7806ece9e65f..e51976b766fd 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -1681,7 +1681,20 @@ public final class DisplayManagerService extends SystemService { final Point userPreferredResolution = mPersistentDataStore.getUserPreferredResolution(device); final float refreshRate = mPersistentDataStore.getUserPreferredRefreshRate(device); - if (userPreferredResolution == null && Float.isNaN(refreshRate)) { + // If value in persistentDataStore is null, preserving the mode from systemPreferredMode. + // This is required because in some devices, user-preferred mode was not stored in + // persistentDataStore, but was stored in a config which is returned through + // systemPreferredMode. + if ((userPreferredResolution == null && Float.isNaN(refreshRate)) + || (userPreferredResolution.equals(0, 0) && refreshRate == 0.0f)) { + Display.Mode systemPreferredMode = device.getSystemPreferredDisplayModeLocked(); + if (systemPreferredMode == null) { + return; + } + storeModeInPersistentDataStoreLocked( + display.getDisplayIdLocked(), systemPreferredMode.getPhysicalWidth(), + systemPreferredMode.getPhysicalHeight(), systemPreferredMode.getRefreshRate()); + device.setUserPreferredDisplayModeLocked(systemPreferredMode); return; } Display.Mode.Builder modeBuilder = new Display.Mode.Builder(); |