diff --git a/core/api/test-current.txt b/core/api/test-current.txt index f54a9713561d8..638f92f48fdee 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1138,6 +1138,7 @@ package android.hardware.display { public final class DisplayManager { method public boolean areUserDisabledHdrTypesAllowed(); method @RequiresPermission(android.Manifest.permission.MODIFY_REFRESH_RATE_SWITCHING_TYPE) public int getRefreshRateSwitchingType(); + method @NonNull public int[] getUserDisabledHdrTypes(); method public boolean isMinimalPostProcessingRequested(int); method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAreUserDisabledHdrTypesAllowed(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_REFRESH_RATE_SWITCHING_TYPE) public void setRefreshRateSwitchingType(int); @@ -2595,6 +2596,7 @@ package android.view { } public final class Display { + method @NonNull public int[] getReportedHdrTypes(); method @NonNull public android.graphics.ColorSpace[] getSupportedWideColorGamut(); method public int getType(); method public boolean hasAccess(int); diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java index 3100610f8e68a..50c172955a8a1 100644 --- a/core/java/android/hardware/display/DisplayManager.java +++ b/core/java/android/hardware/display/DisplayManager.java @@ -747,6 +747,17 @@ public final class DisplayManager { return mGlobal.areUserDisabledHdrTypesAllowed(); } + /** + * Returns the HDR formats disabled by the user. + * + * @hide + */ + @TestApi + public @NonNull int[] getUserDisabledHdrTypes() { + return mGlobal.getUserDisabledHdrTypes(); + } + + /** * Creates a virtual display. * diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java index 5de4ad2a22439..867ac08a34932 100644 --- a/core/java/android/hardware/display/DisplayManagerGlobal.java +++ b/core/java/android/hardware/display/DisplayManagerGlobal.java @@ -551,6 +551,18 @@ public final class DisplayManagerGlobal { } } + /** + * Returns the HDR formats disabled by the user. + * + */ + public int[] getUserDisabledHdrTypes() { + try { + return mDm.getUserDisabledHdrTypes(); + } catch (RemoteException ex) { + throw ex.rethrowFromSystemServer(); + } + } + public void requestColorMode(int displayId, int colorMode) { try { mDm.requestColorMode(displayId, colorMode); diff --git a/core/java/android/hardware/display/IDisplayManager.aidl b/core/java/android/hardware/display/IDisplayManager.aidl index db95132bd0c2a..9ca560157a6fd 100644 --- a/core/java/android/hardware/display/IDisplayManager.aidl +++ b/core/java/android/hardware/display/IDisplayManager.aidl @@ -77,6 +77,9 @@ interface IDisplayManager { // No permissions required. boolean areUserDisabledHdrTypesAllowed(); + // No permissions required. + int[] getUserDisabledHdrTypes(); + // Requires CONFIGURE_DISPLAY_COLOR_MODE void requestColorMode(int displayId, int colorMode); diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index 1e2271abee905..bf152cb6ed22f 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -1095,6 +1095,22 @@ public final class Display { } } + /** + * @hide + * Returns the display's HDR supported types. + * + * @see #isHdr() + * @see HdrCapabilities#getSupportedHdrTypes() + */ + @TestApi + @NonNull + public int[] getReportedHdrTypes() { + synchronized (mLock) { + updateDisplayInfoLocked(); + return mDisplayInfo.hdrCapabilities.getSupportedHdrTypes(); + } + } + /** * Returns whether this display supports any HDR type. * diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 449706df0e259..a97d32c754bb1 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -2479,6 +2479,11 @@ public final class DisplayManagerService extends SystemService { } } + @Override // Binder call + public int[] getUserDisabledHdrTypes() { + return mUserDisabledHdrTypes; + } + @Override // Binder call public void requestColorMode(int displayId, int colorMode) { mContext.enforceCallingOrSelfPermission(