Loading core/api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -51929,7 +51929,7 @@ package android.view { method public int getState(); method @FlaggedApi("com.android.server.display.feature.flags.enable_get_suggested_frame_rate") public float getSuggestedFrameRate(int); method public android.view.Display.Mode[] getSupportedModes(); method @Deprecated public float[] getSupportedRefreshRates(); method @FlaggedApi("com.android.server.display.feature.flags.enable_get_supported_refresh_rates") @NonNull public float[] getSupportedRefreshRates(); method @Deprecated public int getWidth(); method @FlaggedApi("com.android.server.display.feature.flags.enable_has_arr_support") public boolean hasArrSupport(); method public boolean isHdr(); core/api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -3730,6 +3730,7 @@ package android.view { method @NonNull public android.view.Display.Mode getDefaultMode(); method public int getRemoveMode(); method @NonNull public int[] getReportedHdrTypes(); method @NonNull public float[] getSupportedRefreshRatesLegacy(); method @NonNull public android.graphics.ColorSpace[] getSupportedWideColorGamut(); method @Nullable public android.view.Display.Mode getSystemPreferredDisplayMode(); method public int getType(); Loading @@ -3752,6 +3753,7 @@ package android.view { public static final class Display.Mode implements android.os.Parcelable { ctor public Display.Mode(int, int, float); method public float getVsyncRate(); method public boolean isSynthetic(); method public boolean matches(int, int, float); } Loading core/java/android/view/Display.java +30 −7 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.Manifest.permission.CONFIGURE_DISPLAY_COLOR_MODE; import static android.Manifest.permission.CONTROL_DISPLAY_BRIGHTNESS; import static android.hardware.flags.Flags.FLAG_OVERLAYPROPERTIES_CLASS_API; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_GET_SUPPORTED_REFRESH_RATES; import static com.android.server.display.feature.flags.Flags.FLAG_HIGHEST_HDR_SDR_RATIO_API; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_HAS_ARR_SUPPORT; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_GET_SUGGESTED_FRAME_RATE; Loading Loading @@ -63,6 +64,7 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Consumer; Loading Loading @@ -1207,17 +1209,36 @@ public final class Display { /** * Get the supported refresh rates of this display in frames per second. * <p> * This method only returns refresh rates for the display's default modes. For more options, use * {@link #getSupportedModes()}. * * @deprecated use {@link #getSupportedModes()} instead * <ul> * <li> Android version {@link Build.VERSION_CODES#BAKLAVA} and above: * returns display supported render rates. * <li> Android version {@link Build.VERSION_CODES#VANILLA_ICE_CREAM} and below: * This method only returns refresh rates for the display's default modes. For more options, * use {@link #getSupportedModes()}. * </ul> */ @Deprecated public float[] getSupportedRefreshRates() { @FlaggedApi(FLAG_ENABLE_GET_SUPPORTED_REFRESH_RATES) public @NonNull float[] getSupportedRefreshRates() { synchronized (mLock) { updateDisplayInfoLocked(); return mDisplayInfo.getDefaultRefreshRates(); final float[] refreshRates = mDisplayInfo.getDefaultRefreshRates(); Objects.requireNonNull(refreshRates); return refreshRates; } } /** * @hide */ @TestApi @SuppressLint({"UnflaggedApi"}) // Usage in the CTS to test backward compatibility. public @NonNull float[] getSupportedRefreshRatesLegacy() { synchronized (mLock) { updateDisplayInfoLocked(); final float[] refreshRates = mDisplayInfo.getDefaultRefreshRatesLegacy(); Objects.requireNonNull(refreshRates); return refreshRates; } } Loading Loading @@ -2449,6 +2470,8 @@ public final class Display { * constrained by the system. * @hide */ @SuppressWarnings("UnflaggedApi") // For testing only @TestApi public float getVsyncRate() { return mVsyncRate; } Loading core/java/android/view/DisplayInfo.java +30 −1 Original line number Diff line number Diff line Loading @@ -209,6 +209,11 @@ public final class DisplayInfo implements Parcelable { */ public FrameRateCategoryRate frameRateCategoryRate; /** * All the refresh rates supported in the active mode. */ public float[] supportedRefreshRates = new float[0]; /** * The default display mode. */ Loading Loading @@ -449,6 +454,7 @@ public final class DisplayInfo implements Parcelable { && modeId == other.modeId && hasArrSupport == other.hasArrSupport && Objects.equals(frameRateCategoryRate, other.frameRateCategoryRate) && Arrays.equals(supportedRefreshRates, other.supportedRefreshRates) && defaultModeId == other.defaultModeId && userPreferredModeId == other.userPreferredModeId && Arrays.equals(supportedModes, other.supportedModes) Loading Loading @@ -512,6 +518,8 @@ public final class DisplayInfo implements Parcelable { renderFrameRate = other.renderFrameRate; hasArrSupport = other.hasArrSupport; frameRateCategoryRate = other.frameRateCategoryRate; supportedRefreshRates = Arrays.copyOf( other.supportedRefreshRates, other.supportedRefreshRates.length); defaultModeId = other.defaultModeId; userPreferredModeId = other.userPreferredModeId; supportedModes = Arrays.copyOf(other.supportedModes, other.supportedModes.length); Loading Loading @@ -571,6 +579,11 @@ public final class DisplayInfo implements Parcelable { hasArrSupport = source.readBoolean(); frameRateCategoryRate = source.readParcelable(null, android.view.FrameRateCategoryRate.class); int numOfSupportedRefreshRates = source.readInt(); supportedRefreshRates = new float[numOfSupportedRefreshRates]; for (int i = 0; i < numOfSupportedRefreshRates; i++) { supportedRefreshRates[i] = source.readFloat(); } defaultModeId = source.readInt(); userPreferredModeId = source.readInt(); int nModes = source.readInt(); Loading Loading @@ -646,6 +659,10 @@ public final class DisplayInfo implements Parcelable { dest.writeFloat(renderFrameRate); dest.writeBoolean(hasArrSupport); dest.writeParcelable(frameRateCategoryRate, flags); dest.writeInt(supportedRefreshRates.length); for (float supportedRefreshRate : supportedRefreshRates) { dest.writeFloat(supportedRefreshRate); } dest.writeInt(defaultModeId); dest.writeInt(userPreferredModeId); dest.writeInt(supportedModes.length); Loading Loading @@ -750,9 +767,19 @@ public final class DisplayInfo implements Parcelable { } /** * Returns the list of supported refresh rates in the default mode. * Returns the list of supported refresh rates in the active mode. */ public float[] getDefaultRefreshRates() { if (supportedRefreshRates.length == 0) { return getDefaultRefreshRatesLegacy(); } return Arrays.copyOf(supportedRefreshRates, supportedRefreshRates.length); } /** * Returns the list of supported refresh rates in the default mode. */ public float[] getDefaultRefreshRatesLegacy() { Display.Mode[] modes = appsSupportedModes; ArraySet<Float> rates = new ArraySet<>(); Display.Mode defaultMode = getDefaultMode(); Loading Loading @@ -898,6 +925,8 @@ public final class DisplayInfo implements Parcelable { sb.append(hasArrSupport); sb.append(", frameRateCategoryRate "); sb.append(frameRateCategoryRate); sb.append(", supportedRefreshRates "); sb.append(Arrays.toString(supportedRefreshRates)); sb.append(", defaultMode "); sb.append(defaultModeId); sb.append(", userPreferredModeId "); Loading core/java/android/view/SurfaceControl.java +5 −2 Original line number Diff line number Diff line Loading @@ -1932,6 +1932,7 @@ public final class SurfaceControl implements Parcelable { public float renderFrameRate; public boolean hasArrSupport; public FrameRateCategoryRate frameRateCategoryRate; public float[] supportedRefreshRates; public int[] supportedColorModes; public int activeColorMode; Loading @@ -1951,6 +1952,7 @@ public final class SurfaceControl implements Parcelable { + ", renderFrameRate=" + renderFrameRate + ", hasArrSupport=" + hasArrSupport + ", frameRateCategoryRate=" + frameRateCategoryRate + ", supportedRefreshRates=" + Arrays.toString(supportedRefreshRates) + ", supportedColorModes=" + Arrays.toString(supportedColorModes) + ", activeColorMode=" + activeColorMode + ", hdrCapabilities=" + hdrCapabilities Loading @@ -1972,14 +1974,15 @@ public final class SurfaceControl implements Parcelable { && Objects.equals(hdrCapabilities, that.hdrCapabilities) && preferredBootDisplayMode == that.preferredBootDisplayMode && hasArrSupport == that.hasArrSupport && Objects.equals(frameRateCategoryRate, that.frameRateCategoryRate); && Objects.equals(frameRateCategoryRate, that.frameRateCategoryRate) && Arrays.equals(supportedRefreshRates, that.supportedRefreshRates); } @Override public int hashCode() { return Objects.hash(Arrays.hashCode(supportedDisplayModes), activeDisplayModeId, renderFrameRate, activeColorMode, hdrCapabilities, hasArrSupport, frameRateCategoryRate); frameRateCategoryRate, Arrays.hashCode(supportedRefreshRates)); } } Loading Loading
core/api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -51929,7 +51929,7 @@ package android.view { method public int getState(); method @FlaggedApi("com.android.server.display.feature.flags.enable_get_suggested_frame_rate") public float getSuggestedFrameRate(int); method public android.view.Display.Mode[] getSupportedModes(); method @Deprecated public float[] getSupportedRefreshRates(); method @FlaggedApi("com.android.server.display.feature.flags.enable_get_supported_refresh_rates") @NonNull public float[] getSupportedRefreshRates(); method @Deprecated public int getWidth(); method @FlaggedApi("com.android.server.display.feature.flags.enable_has_arr_support") public boolean hasArrSupport(); method public boolean isHdr();
core/api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -3730,6 +3730,7 @@ package android.view { method @NonNull public android.view.Display.Mode getDefaultMode(); method public int getRemoveMode(); method @NonNull public int[] getReportedHdrTypes(); method @NonNull public float[] getSupportedRefreshRatesLegacy(); method @NonNull public android.graphics.ColorSpace[] getSupportedWideColorGamut(); method @Nullable public android.view.Display.Mode getSystemPreferredDisplayMode(); method public int getType(); Loading @@ -3752,6 +3753,7 @@ package android.view { public static final class Display.Mode implements android.os.Parcelable { ctor public Display.Mode(int, int, float); method public float getVsyncRate(); method public boolean isSynthetic(); method public boolean matches(int, int, float); } Loading
core/java/android/view/Display.java +30 −7 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.Manifest.permission.CONFIGURE_DISPLAY_COLOR_MODE; import static android.Manifest.permission.CONTROL_DISPLAY_BRIGHTNESS; import static android.hardware.flags.Flags.FLAG_OVERLAYPROPERTIES_CLASS_API; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_GET_SUPPORTED_REFRESH_RATES; import static com.android.server.display.feature.flags.Flags.FLAG_HIGHEST_HDR_SDR_RATIO_API; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_HAS_ARR_SUPPORT; import static com.android.server.display.feature.flags.Flags.FLAG_ENABLE_GET_SUGGESTED_FRAME_RATE; Loading Loading @@ -63,6 +64,7 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Consumer; Loading Loading @@ -1207,17 +1209,36 @@ public final class Display { /** * Get the supported refresh rates of this display in frames per second. * <p> * This method only returns refresh rates for the display's default modes. For more options, use * {@link #getSupportedModes()}. * * @deprecated use {@link #getSupportedModes()} instead * <ul> * <li> Android version {@link Build.VERSION_CODES#BAKLAVA} and above: * returns display supported render rates. * <li> Android version {@link Build.VERSION_CODES#VANILLA_ICE_CREAM} and below: * This method only returns refresh rates for the display's default modes. For more options, * use {@link #getSupportedModes()}. * </ul> */ @Deprecated public float[] getSupportedRefreshRates() { @FlaggedApi(FLAG_ENABLE_GET_SUPPORTED_REFRESH_RATES) public @NonNull float[] getSupportedRefreshRates() { synchronized (mLock) { updateDisplayInfoLocked(); return mDisplayInfo.getDefaultRefreshRates(); final float[] refreshRates = mDisplayInfo.getDefaultRefreshRates(); Objects.requireNonNull(refreshRates); return refreshRates; } } /** * @hide */ @TestApi @SuppressLint({"UnflaggedApi"}) // Usage in the CTS to test backward compatibility. public @NonNull float[] getSupportedRefreshRatesLegacy() { synchronized (mLock) { updateDisplayInfoLocked(); final float[] refreshRates = mDisplayInfo.getDefaultRefreshRatesLegacy(); Objects.requireNonNull(refreshRates); return refreshRates; } } Loading Loading @@ -2449,6 +2470,8 @@ public final class Display { * constrained by the system. * @hide */ @SuppressWarnings("UnflaggedApi") // For testing only @TestApi public float getVsyncRate() { return mVsyncRate; } Loading
core/java/android/view/DisplayInfo.java +30 −1 Original line number Diff line number Diff line Loading @@ -209,6 +209,11 @@ public final class DisplayInfo implements Parcelable { */ public FrameRateCategoryRate frameRateCategoryRate; /** * All the refresh rates supported in the active mode. */ public float[] supportedRefreshRates = new float[0]; /** * The default display mode. */ Loading Loading @@ -449,6 +454,7 @@ public final class DisplayInfo implements Parcelable { && modeId == other.modeId && hasArrSupport == other.hasArrSupport && Objects.equals(frameRateCategoryRate, other.frameRateCategoryRate) && Arrays.equals(supportedRefreshRates, other.supportedRefreshRates) && defaultModeId == other.defaultModeId && userPreferredModeId == other.userPreferredModeId && Arrays.equals(supportedModes, other.supportedModes) Loading Loading @@ -512,6 +518,8 @@ public final class DisplayInfo implements Parcelable { renderFrameRate = other.renderFrameRate; hasArrSupport = other.hasArrSupport; frameRateCategoryRate = other.frameRateCategoryRate; supportedRefreshRates = Arrays.copyOf( other.supportedRefreshRates, other.supportedRefreshRates.length); defaultModeId = other.defaultModeId; userPreferredModeId = other.userPreferredModeId; supportedModes = Arrays.copyOf(other.supportedModes, other.supportedModes.length); Loading Loading @@ -571,6 +579,11 @@ public final class DisplayInfo implements Parcelable { hasArrSupport = source.readBoolean(); frameRateCategoryRate = source.readParcelable(null, android.view.FrameRateCategoryRate.class); int numOfSupportedRefreshRates = source.readInt(); supportedRefreshRates = new float[numOfSupportedRefreshRates]; for (int i = 0; i < numOfSupportedRefreshRates; i++) { supportedRefreshRates[i] = source.readFloat(); } defaultModeId = source.readInt(); userPreferredModeId = source.readInt(); int nModes = source.readInt(); Loading Loading @@ -646,6 +659,10 @@ public final class DisplayInfo implements Parcelable { dest.writeFloat(renderFrameRate); dest.writeBoolean(hasArrSupport); dest.writeParcelable(frameRateCategoryRate, flags); dest.writeInt(supportedRefreshRates.length); for (float supportedRefreshRate : supportedRefreshRates) { dest.writeFloat(supportedRefreshRate); } dest.writeInt(defaultModeId); dest.writeInt(userPreferredModeId); dest.writeInt(supportedModes.length); Loading Loading @@ -750,9 +767,19 @@ public final class DisplayInfo implements Parcelable { } /** * Returns the list of supported refresh rates in the default mode. * Returns the list of supported refresh rates in the active mode. */ public float[] getDefaultRefreshRates() { if (supportedRefreshRates.length == 0) { return getDefaultRefreshRatesLegacy(); } return Arrays.copyOf(supportedRefreshRates, supportedRefreshRates.length); } /** * Returns the list of supported refresh rates in the default mode. */ public float[] getDefaultRefreshRatesLegacy() { Display.Mode[] modes = appsSupportedModes; ArraySet<Float> rates = new ArraySet<>(); Display.Mode defaultMode = getDefaultMode(); Loading Loading @@ -898,6 +925,8 @@ public final class DisplayInfo implements Parcelable { sb.append(hasArrSupport); sb.append(", frameRateCategoryRate "); sb.append(frameRateCategoryRate); sb.append(", supportedRefreshRates "); sb.append(Arrays.toString(supportedRefreshRates)); sb.append(", defaultMode "); sb.append(defaultModeId); sb.append(", userPreferredModeId "); Loading
core/java/android/view/SurfaceControl.java +5 −2 Original line number Diff line number Diff line Loading @@ -1932,6 +1932,7 @@ public final class SurfaceControl implements Parcelable { public float renderFrameRate; public boolean hasArrSupport; public FrameRateCategoryRate frameRateCategoryRate; public float[] supportedRefreshRates; public int[] supportedColorModes; public int activeColorMode; Loading @@ -1951,6 +1952,7 @@ public final class SurfaceControl implements Parcelable { + ", renderFrameRate=" + renderFrameRate + ", hasArrSupport=" + hasArrSupport + ", frameRateCategoryRate=" + frameRateCategoryRate + ", supportedRefreshRates=" + Arrays.toString(supportedRefreshRates) + ", supportedColorModes=" + Arrays.toString(supportedColorModes) + ", activeColorMode=" + activeColorMode + ", hdrCapabilities=" + hdrCapabilities Loading @@ -1972,14 +1974,15 @@ public final class SurfaceControl implements Parcelable { && Objects.equals(hdrCapabilities, that.hdrCapabilities) && preferredBootDisplayMode == that.preferredBootDisplayMode && hasArrSupport == that.hasArrSupport && Objects.equals(frameRateCategoryRate, that.frameRateCategoryRate); && Objects.equals(frameRateCategoryRate, that.frameRateCategoryRate) && Arrays.equals(supportedRefreshRates, that.supportedRefreshRates); } @Override public int hashCode() { return Objects.hash(Arrays.hashCode(supportedDisplayModes), activeDisplayModeId, renderFrameRate, activeColorMode, hdrCapabilities, hasArrSupport, frameRateCategoryRate); frameRateCategoryRate, Arrays.hashCode(supportedRefreshRates)); } } Loading