Loading services/core/java/com/android/server/display/DisplayDeviceConfig.java +37 −4 Original line number Diff line number Diff line Loading @@ -137,6 +137,8 @@ import javax.xml.datatype.DatatypeConfigurationException; * <refreshRate> * <lowerBlockingZoneConfigs> * <defaultRefreshRate>75</defaultRefreshRate> * <defaultRefreshRateInHbmHdr>75</defaultRefreshRateInHbmHdr> * <defaultRefreshRateInHbmSunlight>75</defaultRefreshRateInHbmSunlight> * <blockingZoneThreshold> * <displayBrightnessPoint> * <lux>50</lux> Loading Loading @@ -404,6 +406,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[]{}; Loading Loading @@ -584,6 +587,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. Loading Loading @@ -1325,8 +1337,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; } /** Loading @@ -1334,8 +1345,7 @@ public class DisplayDeviceConfig { * high lux. */ public int getDefaultRefreshRateInHbmSunlight() { return mContext.getResources().getInteger( R.integer.config_defaultRefreshRateInHbmSunlight); return mDefaultRefreshRateInHbmSunlight; } /** Loading Loading @@ -1491,6 +1501,8 @@ public class DisplayDeviceConfig { + ", mDefaultHighBlockingZoneRefreshRate= " + mDefaultHighBlockingZoneRefreshRate + ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate + ", mDefaultRefreshRate= " + mDefaultRefreshRate + ", mDefaultRefreshRateInHbmHdr= " + mDefaultRefreshRateInHbmHdr + ", mDefaultRefreshRateInHbmSunlight= " + mDefaultRefreshRateInHbmSunlight + ", mLowDisplayBrightnessThresholds= " + Arrays.toString(mLowDisplayBrightnessThresholds) + ", mLowAmbientBrightnessThresholds= " Loading Loading @@ -1806,6 +1818,7 @@ public class DisplayDeviceConfig { : refreshRateConfigs.getHigherBlockingZoneConfigs(); loadPeakDefaultRefreshRate(refreshRateConfigs); loadDefaultRefreshRate(refreshRateConfigs); loadDefaultRefreshRateInHbm(refreshRateConfigs); loadLowerRefreshRateBlockingZones(lowerBlockingZoneConfig); loadHigherRefreshRateBlockingZones(higherBlockingZoneConfig); } Loading @@ -1830,6 +1843,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. */ Loading services/core/xsd/display-device-config/display-device-config.xsd +8 −0 Original line number Diff line number Diff line Loading @@ -472,6 +472,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"/> Loading services/core/xsd/display-device-config/schema/current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -188,10 +188,14 @@ 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 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); } Loading services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ public final class DisplayDeviceConfigTest { assertEquals(90, mDisplayDeviceConfig.getDefaultHighBlockingZoneRefreshRate()); assertEquals(85, mDisplayDeviceConfig.getDefaultPeakRefreshRate()); assertEquals(45, mDisplayDeviceConfig.getDefaultRefreshRate()); assertEquals(82, mDisplayDeviceConfig.getDefaultRefreshRateInHbmHdr()); assertEquals(83, mDisplayDeviceConfig.getDefaultRefreshRateInHbmSunlight()); assertArrayEquals(new int[]{45, 55}, mDisplayDeviceConfig.getLowDisplayBrightnessThresholds()); assertArrayEquals(new int[]{50, 60}, Loading Loading @@ -465,6 +467,8 @@ public final class DisplayDeviceConfigTest { + "<refreshRate>\n" + "<defaultRefreshRate>45</defaultRefreshRate>\n" + "<defaultPeakRefreshRate>85</defaultPeakRefreshRate>\n" + "<defaultRefreshRateInHbmHdr>82</defaultRefreshRateInHbmHdr>\n" + "<defaultRefreshRateInHbmSunlight>83</defaultRefreshRateInHbmSunlight>\n" + "<lowerBlockingZoneConfigs>\n" + "<defaultRefreshRate>75</defaultRefreshRate>\n" + "<blockingZoneThreshold>\n" Loading Loading
services/core/java/com/android/server/display/DisplayDeviceConfig.java +37 −4 Original line number Diff line number Diff line Loading @@ -137,6 +137,8 @@ import javax.xml.datatype.DatatypeConfigurationException; * <refreshRate> * <lowerBlockingZoneConfigs> * <defaultRefreshRate>75</defaultRefreshRate> * <defaultRefreshRateInHbmHdr>75</defaultRefreshRateInHbmHdr> * <defaultRefreshRateInHbmSunlight>75</defaultRefreshRateInHbmSunlight> * <blockingZoneThreshold> * <displayBrightnessPoint> * <lux>50</lux> Loading Loading @@ -404,6 +406,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[]{}; Loading Loading @@ -584,6 +587,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. Loading Loading @@ -1325,8 +1337,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; } /** Loading @@ -1334,8 +1345,7 @@ public class DisplayDeviceConfig { * high lux. */ public int getDefaultRefreshRateInHbmSunlight() { return mContext.getResources().getInteger( R.integer.config_defaultRefreshRateInHbmSunlight); return mDefaultRefreshRateInHbmSunlight; } /** Loading Loading @@ -1491,6 +1501,8 @@ public class DisplayDeviceConfig { + ", mDefaultHighBlockingZoneRefreshRate= " + mDefaultHighBlockingZoneRefreshRate + ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate + ", mDefaultRefreshRate= " + mDefaultRefreshRate + ", mDefaultRefreshRateInHbmHdr= " + mDefaultRefreshRateInHbmHdr + ", mDefaultRefreshRateInHbmSunlight= " + mDefaultRefreshRateInHbmSunlight + ", mLowDisplayBrightnessThresholds= " + Arrays.toString(mLowDisplayBrightnessThresholds) + ", mLowAmbientBrightnessThresholds= " Loading Loading @@ -1806,6 +1818,7 @@ public class DisplayDeviceConfig { : refreshRateConfigs.getHigherBlockingZoneConfigs(); loadPeakDefaultRefreshRate(refreshRateConfigs); loadDefaultRefreshRate(refreshRateConfigs); loadDefaultRefreshRateInHbm(refreshRateConfigs); loadLowerRefreshRateBlockingZones(lowerBlockingZoneConfig); loadHigherRefreshRateBlockingZones(higherBlockingZoneConfig); } Loading @@ -1830,6 +1843,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. */ Loading
services/core/xsd/display-device-config/display-device-config.xsd +8 −0 Original line number Diff line number Diff line Loading @@ -472,6 +472,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"/> Loading
services/core/xsd/display-device-config/schema/current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -188,10 +188,14 @@ 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 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); } Loading
services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,8 @@ public final class DisplayDeviceConfigTest { assertEquals(90, mDisplayDeviceConfig.getDefaultHighBlockingZoneRefreshRate()); assertEquals(85, mDisplayDeviceConfig.getDefaultPeakRefreshRate()); assertEquals(45, mDisplayDeviceConfig.getDefaultRefreshRate()); assertEquals(82, mDisplayDeviceConfig.getDefaultRefreshRateInHbmHdr()); assertEquals(83, mDisplayDeviceConfig.getDefaultRefreshRateInHbmSunlight()); assertArrayEquals(new int[]{45, 55}, mDisplayDeviceConfig.getLowDisplayBrightnessThresholds()); assertArrayEquals(new int[]{50, 60}, Loading Loading @@ -465,6 +467,8 @@ public final class DisplayDeviceConfigTest { + "<refreshRate>\n" + "<defaultRefreshRate>45</defaultRefreshRate>\n" + "<defaultPeakRefreshRate>85</defaultPeakRefreshRate>\n" + "<defaultRefreshRateInHbmHdr>82</defaultRefreshRateInHbmHdr>\n" + "<defaultRefreshRateInHbmSunlight>83</defaultRefreshRateInHbmSunlight>\n" + "<lowerBlockingZoneConfigs>\n" + "<defaultRefreshRate>75</defaultRefreshRate>\n" + "<blockingZoneThreshold>\n" Loading