diff options
| author | 2023-01-19 16:19:30 +0800 | |
|---|---|---|
| committer | 2023-01-20 12:55:39 +0000 | |
| commit | 8a6745e9024c47cdf8c2e5af160f6058569bff32 (patch) | |
| tree | 13d0d684b3506174a5350d6575984cf9670f0528 | |
| parent | 6964ec7ba27cdb4ef3cfed7a4327503f5f48dd81 (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.java | 18 |
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[] |