Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df9a41bf authored by Ram Indani's avatar Ram Indani Committed by Android (Google) Code Review
Browse files

Merge "Update getSupportedRefreshRates api" into main

parents d12b194c 7dad2b07
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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();
+2 −0
Original line number Diff line number Diff line
@@ -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();
@@ -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);
  }
+30 −7
Original line number Diff line number Diff line
@@ -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;
@@ -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;

@@ -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;
        }
    }

@@ -2449,6 +2470,8 @@ public final class Display {
         * constrained by the system.
         * @hide
         */
        @SuppressWarnings("UnflaggedApi") // For testing only
        @TestApi
        public float getVsyncRate() {
            return mVsyncRate;
        }
+30 −1
Original line number Diff line number Diff line
@@ -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.
     */
@@ -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)
@@ -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);
@@ -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();
@@ -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);
@@ -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();
@@ -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 ");
+5 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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