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

Commit a087b29e authored by Rupesh Bansal's avatar Rupesh Bansal Committed by Android (Google) Code Review
Browse files

Merge "Added display device config for default refresh rates in the hbm mode"

parents df193032 24603992
Loading
Loading
Loading
Loading
+38 −5
Original line number Diff line number Diff line
@@ -154,6 +154,8 @@ import javax.xml.datatype.DatatypeConfigurationException;
 *      <refreshRate>
 *        <lowerBlockingZoneConfigs>
 *          <defaultRefreshRate>75</defaultRefreshRate>
 *          <defaultRefreshRateInHbmHdr>75</defaultRefreshRateInHbmHdr>
 *          <defaultRefreshRateInHbmSunlight>75</defaultRefreshRateInHbmSunlight>
 *          <blockingZoneThreshold>
 *            <displayBrightnessPoint>
 *              <lux>50</lux>
@@ -429,6 +431,7 @@ public class DisplayDeviceConfig {
    private static final long STABLE_FLAG = 1L << 62;
    private static final int DEFAULT_PEAK_REFRESH_RATE = 0;
    private static final int DEFAULT_REFRESH_RATE = 60;
    private static final int DEFAULT_REFRESH_RATE_IN_HBM = 0;
    private static final int DEFAULT_LOW_REFRESH_RATE = 60;
    private static final int DEFAULT_HIGH_REFRESH_RATE = 0;
    private static final int[] DEFAULT_BRIGHTNESS_THRESHOLDS = new int[]{};
@@ -608,6 +611,15 @@ public class DisplayDeviceConfig {
     */
    private int mDefaultRefreshRate = DEFAULT_REFRESH_RATE;

    /**
     * Default refresh rate while the device has high brightness mode enabled for HDR.
     */
    private int mDefaultRefreshRateInHbmHdr = DEFAULT_REFRESH_RATE_IN_HBM;

    /**
     * Default refresh rate while the device has high brightness mode enabled for Sunlight.
     */
    private int mDefaultRefreshRateInHbmSunlight = DEFAULT_REFRESH_RATE_IN_HBM;
    /**
     * Default refresh rate in the high zone defined by brightness and ambient thresholds.
     * If non-positive, then the refresh rate is unchanged even if thresholds are configured.
@@ -1348,8 +1360,7 @@ public class DisplayDeviceConfig {
     * @return Default refresh rate while the device has high brightness mode enabled for HDR.
     */
    public int getDefaultRefreshRateInHbmHdr() {
        return mContext.getResources().getInteger(
            R.integer.config_defaultRefreshRateInHbmHdr);
        return mDefaultRefreshRateInHbmHdr;
    }

    /**
@@ -1357,8 +1368,7 @@ public class DisplayDeviceConfig {
     * high lux.
     */
    public int getDefaultRefreshRateInHbmSunlight() {
        return mContext.getResources().getInteger(
            R.integer.config_defaultRefreshRateInHbmSunlight);
        return mDefaultRefreshRateInHbmSunlight;
    }

    /**
@@ -1540,6 +1550,8 @@ public class DisplayDeviceConfig {
                + ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate
                + ", mDefaultRefreshRate= " + mDefaultRefreshRate
                + ", mRefreshRateZoneProfiles= " + mRefreshRateZoneProfiles
                + ", mDefaultRefreshRateInHbmHdr= " + mDefaultRefreshRateInHbmHdr
                + ", mDefaultRefreshRateInHbmSunlight= " + mDefaultRefreshRateInHbmSunlight
                + ", mLowDisplayBrightnessThresholds= "
                + Arrays.toString(mLowDisplayBrightnessThresholds)
                + ", mLowAmbientBrightnessThresholds= "
@@ -1866,6 +1878,7 @@ public class DisplayDeviceConfig {
                        : refreshRateConfigs.getHigherBlockingZoneConfigs();
        loadPeakDefaultRefreshRate(refreshRateConfigs);
        loadDefaultRefreshRate(refreshRateConfigs);
        loadDefaultRefreshRateInHbm(refreshRateConfigs);
        loadLowerRefreshRateBlockingZones(lowerBlockingZoneConfig);
        loadHigherRefreshRateBlockingZones(higherBlockingZoneConfig);
        loadRefreshRateZoneProfiles(refreshRateConfigs);
@@ -1906,6 +1919,26 @@ public class DisplayDeviceConfig {
        }
    }

    private void loadDefaultRefreshRateInHbm(RefreshRateConfigs refreshRateConfigs) {
        if (refreshRateConfigs != null
                && refreshRateConfigs.getDefaultRefreshRateInHbmHdr() != null) {
            mDefaultRefreshRateInHbmHdr = refreshRateConfigs.getDefaultRefreshRateInHbmHdr()
                    .intValue();
        } else {
            mDefaultRefreshRateInHbmHdr = mContext.getResources().getInteger(
                    R.integer.config_defaultRefreshRateInHbmHdr);
        }

        if (refreshRateConfigs != null
                && refreshRateConfigs.getDefaultRefreshRateInHbmSunlight() != null) {
            mDefaultRefreshRateInHbmSunlight =
                    refreshRateConfigs.getDefaultRefreshRateInHbmSunlight().intValue();
        } else {
            mDefaultRefreshRateInHbmSunlight = mContext.getResources().getInteger(
                R.integer.config_defaultRefreshRateInHbmSunlight);
        }
    }

    /**
     * Loads the refresh rate configurations pertaining to the upper blocking zones.
     */
+8 −0
Original line number Diff line number Diff line
@@ -481,6 +481,14 @@
                    minOccurs="0" maxOccurs="1">
            <xs:annotation name="final"/>
        </xs:element>
        <xs:element name="defaultRefreshRateInHbmHdr" type="xs:nonNegativeInteger"
                    minOccurs="0" maxOccurs="1">
            <xs:annotation name="final"/>
        </xs:element>
        <xs:element name="defaultRefreshRateInHbmSunlight" type="xs:nonNegativeInteger"
                    minOccurs="0" maxOccurs="1">
            <xs:annotation name="final"/>
        </xs:element>
        <xs:element name="lowerBlockingZoneConfigs" type="blockingZoneConfig"
                    minOccurs="0" maxOccurs="1">
            <xs:annotation name="final"/>
+4 −0
Original line number Diff line number Diff line
@@ -192,11 +192,15 @@ package com.android.server.display.config {
    ctor public RefreshRateConfigs();
    method public final java.math.BigInteger getDefaultPeakRefreshRate();
    method public final java.math.BigInteger getDefaultRefreshRate();
    method public final java.math.BigInteger getDefaultRefreshRateInHbmHdr();
    method public final java.math.BigInteger getDefaultRefreshRateInHbmSunlight();
    method public final com.android.server.display.config.BlockingZoneConfig getHigherBlockingZoneConfigs();
    method public final com.android.server.display.config.BlockingZoneConfig getLowerBlockingZoneConfigs();
    method public final com.android.server.display.config.RefreshRateZoneProfiles getRefreshRateZoneProfiles();
    method public final void setDefaultPeakRefreshRate(java.math.BigInteger);
    method public final void setDefaultRefreshRate(java.math.BigInteger);
    method public final void setDefaultRefreshRateInHbmHdr(java.math.BigInteger);
    method public final void setDefaultRefreshRateInHbmSunlight(java.math.BigInteger);
    method public final void setHigherBlockingZoneConfigs(com.android.server.display.config.BlockingZoneConfig);
    method public final void setLowerBlockingZoneConfigs(com.android.server.display.config.BlockingZoneConfig);
    method public final void setRefreshRateZoneProfiles(com.android.server.display.config.RefreshRateZoneProfiles);
+4 −2
Original line number Diff line number Diff line
@@ -157,13 +157,13 @@ public final class DisplayDeviceConfigTest {
        assertEquals(90, mDisplayDeviceConfig.getDefaultHighBlockingZoneRefreshRate());
        assertEquals(85, mDisplayDeviceConfig.getDefaultPeakRefreshRate());
        assertEquals(45, mDisplayDeviceConfig.getDefaultRefreshRate());

        assertEquals(2, mDisplayDeviceConfig.getRefreshRangeProfiles().size());
        assertEquals(60, mDisplayDeviceConfig.getRefreshRange("test1").min, SMALL_DELTA);
        assertEquals(60, mDisplayDeviceConfig.getRefreshRange("test1").max, SMALL_DELTA);
        assertEquals(80, mDisplayDeviceConfig.getRefreshRange("test2").min, SMALL_DELTA);
        assertEquals(90, mDisplayDeviceConfig.getRefreshRange("test2").max, SMALL_DELTA);

        assertEquals(82, mDisplayDeviceConfig.getDefaultRefreshRateInHbmHdr());
        assertEquals(83, mDisplayDeviceConfig.getDefaultRefreshRateInHbmSunlight());
        assertArrayEquals(new int[]{45, 55},
                mDisplayDeviceConfig.getLowDisplayBrightnessThresholds());
        assertArrayEquals(new int[]{50, 60},
@@ -575,6 +575,8 @@ public final class DisplayDeviceConfigTest {
                +               "</refreshRateRange>\n"
                +           "</refreshRateZoneProfile>\n"
                +       "</refreshRateZoneProfiles>"
                +       "<defaultRefreshRateInHbmHdr>82</defaultRefreshRateInHbmHdr>\n"
                +       "<defaultRefreshRateInHbmSunlight>83</defaultRefreshRateInHbmSunlight>\n"
                +       "<lowerBlockingZoneConfigs>\n"
                +           "<defaultRefreshRate>75</defaultRefreshRate>\n"
                +           "<blockingZoneThreshold>\n"