From 8646ce48d9d2edee74d7ba4b4b25f2598c6c2663 Mon Sep 17 00:00:00 2001 From: Marc Kassis Date: Mon, 20 Feb 2023 17:21:58 +0100 Subject: [PATCH] Remove use of deprecated API for Display.getReportedHdrTypes Bug: 267427071 Test: atest DisplayTest Change-Id: Ifc352a392588b80c8da147ad09340eac28d1363d --- core/java/android/view/Display.java | 9 +++---- .../src/android/view/DisplayTest.java | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index 20be9d65ab8e6..5476088992594 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -1261,20 +1261,17 @@ public final class Display { /** * @hide - * Returns the display's HDR supported types. + * Returns the current mode's supported HDR types. * * @see #isHdr() - * @see HdrCapabilities#getSupportedHdrTypes() + * @see Mode#getSupportedHdrTypes() */ @TestApi @NonNull public int[] getReportedHdrTypes() { synchronized (mLock) { updateDisplayInfoLocked(); - if (mDisplayInfo.hdrCapabilities == null) { - return new int[0]; - } - return mDisplayInfo.hdrCapabilities.getSupportedHdrTypes(); + return mDisplayInfo.getMode().getSupportedHdrTypes(); } } diff --git a/core/tests/mockingcoretests/src/android/view/DisplayTest.java b/core/tests/mockingcoretests/src/android/view/DisplayTest.java index 9ccf3b3c9d05d..3b8b8c7972415 100644 --- a/core/tests/mockingcoretests/src/android/view/DisplayTest.java +++ b/core/tests/mockingcoretests/src/android/view/DisplayTest.java @@ -116,6 +116,31 @@ public class DisplayTest { Mockito.framework().clearInlineMocks(); } + @Test + public void testGetReportedHdrTypes_returns_mode_specific_hdr_types() { + setDisplayInfoPortrait(mDisplayInfo); + float[] alternativeRefreshRates = new float[0]; + int[] hdrTypesWithDv = new int[] {1, 2, 3, 4}; + Display.Mode modeWithDv = new Display.Mode(/* modeId= */ 0, 0, 0, 0f, + alternativeRefreshRates, hdrTypesWithDv); + + int[] hdrTypesWithoutDv = new int[]{2, 3, 4}; + Display.Mode modeWithoutDv = new Display.Mode(/* modeId= */ 1, 0, 0, 0f, + alternativeRefreshRates, hdrTypesWithoutDv); + + mDisplayInfo.supportedModes = new Display.Mode[] {modeWithoutDv, modeWithDv}; + mDisplayInfo.hdrCapabilities = new Display.HdrCapabilities(hdrTypesWithDv, 0, 0, 0); + + final Display display = new Display(mDisplayManagerGlobal, DEFAULT_DISPLAY, mDisplayInfo, + DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS); + + mDisplayInfo.modeId = 0; + assertArrayEquals(hdrTypesWithDv, display.getReportedHdrTypes()); + + mDisplayInfo.modeId = 1; + assertArrayEquals(hdrTypesWithoutDv, display.getReportedHdrTypes()); + } + @Test public void testConstructor_defaultDisplayAdjustments_matchesDisplayInfo() { setDisplayInfoPortrait(mDisplayInfo);