summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kriti Dang <kritidang@google.com> 2022-11-10 17:14:55 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-11-10 17:14:55 +0000
commit7239296def136fd56151fb2d64fb3958089b97bb (patch)
tree9977493e4a921b63b837e7f5e1e4f43f2c2cfc9d
parentb1f110a7685807c08a73eef614c5cc5892fc2a37 (diff)
parent753e5c0126d9ad4b279060608261c82aa9517511 (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.java15
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();