summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wangn <nan.wang@vantiva.net> 2023-01-19 16:19:30 +0800
committer Kriti Dang <kritidang@google.com> 2023-01-20 12:55:39 +0000
commit8a6745e9024c47cdf8c2e5af160f6058569bff32 (patch)
tree13d0d684b3506174a5350d6575984cf9670f0528
parent6964ec7ba27cdb4ef3cfed7a4327503f5f48dd81 (diff)
[HDR]:UserDisabledHdrTypes is not updated after system reboot
After system boots,the UserDisabledHdrTypes also needs to be updated in the display information. Bug:265724287 Test: Prepare a HDR/DolbyVision TV which supports DolbyVision/HDR10/HLG. 1.Connect the STB to the TV. 2.On UI Settings -> Device Preferences -> Display & Sound -> Advanced Display settings -> Format Selection,choose manual,disable DolbyVision format and keep HDR10/HLG formats enabled. 3.Reboot STB ,Check 2) , it is same as previous saved result. 4.Open Netflix, search DolbyVision contents movie and check the format. It should only list HDR contents, no DolbyVision contents. Change-Id: I4c38532ad973a85c289796a9372413bd5491ca26 Signed-off-by: wangn <nan.wang@vantiva.net>
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index b153c1ba98e0..a840e6141e67 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -845,6 +845,15 @@ public final class DisplayManagerService extends SystemService {
for (int i = 0; i < userDisabledHdrTypeStrings.length; i++) {
mUserDisabledHdrTypes[i] = Integer.parseInt(userDisabledHdrTypeStrings[i]);
}
+
+ if (!mAreUserDisabledHdrTypesAllowed) {
+ mLogicalDisplayMapper.forEachLocked(
+ display -> {
+ display.setUserDisabledHdrTypes(mUserDisabledHdrTypes);
+ handleLogicalDisplayChangedLocked(display);
+ });
+ }
+
} catch (NumberFormatException e) {
Slog.e(TAG, "Failed to parse USER_DISABLED_HDR_FORMATS. "
+ "Clearing the setting.", e);
@@ -872,6 +881,15 @@ public final class DisplayManagerService extends SystemService {
Settings.Global.USER_PREFERRED_RESOLUTION_WIDTH, Display.INVALID_DISPLAY_WIDTH);
Display.Mode mode = new Display.Mode(width, height, refreshRate);
mUserPreferredMode = isResolutionAndRefreshRateValid(mode) ? mode : null;
+ if (mUserPreferredMode != null) {
+ mDisplayDeviceRepo.forEachLocked((DisplayDevice device) -> {
+ device.setUserPreferredDisplayModeLocked(mode);
+ });
+ } else {
+ mLogicalDisplayMapper.forEachLocked((LogicalDisplay display) -> {
+ configurePreferredDisplayModeLocked(display);
+ });
+ }
}
private DisplayInfo getDisplayInfoForFrameRateOverride(DisplayEventReceiver.FrameRateOverride[]