summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/display/DisplayDeviceConfig.java41
-rw-r--r--services/core/xsd/display-device-config/display-device-config.xsd8
-rw-r--r--services/core/xsd/display-device-config/schema/current.txt4
-rw-r--r--services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java4
4 files changed, 53 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/display/DisplayDeviceConfig.java b/services/core/java/com/android/server/display/DisplayDeviceConfig.java
index 0ee25e2e03e7..bb44ddf98394 100644
--- a/services/core/java/com/android/server/display/DisplayDeviceConfig.java
+++ b/services/core/java/com/android/server/display/DisplayDeviceConfig.java
@@ -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>
@@ -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[]{};
@@ -585,6 +588,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.
*/
@@ -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;
}
/**
@@ -1334,8 +1345,7 @@ public class DisplayDeviceConfig {
* high lux.
*/
public int getDefaultRefreshRateInHbmSunlight() {
- return mContext.getResources().getInteger(
- R.integer.config_defaultRefreshRateInHbmSunlight);
+ return mDefaultRefreshRateInHbmSunlight;
}
/**
@@ -1491,6 +1501,8 @@ public class DisplayDeviceConfig {
+ ", mDefaultHighBlockingZoneRefreshRate= " + mDefaultHighBlockingZoneRefreshRate
+ ", mDefaultPeakRefreshRate= " + mDefaultPeakRefreshRate
+ ", mDefaultRefreshRate= " + mDefaultRefreshRate
+ + ", mDefaultRefreshRateInHbmHdr= " + mDefaultRefreshRateInHbmHdr
+ + ", mDefaultRefreshRateInHbmSunlight= " + mDefaultRefreshRateInHbmSunlight
+ ", mLowDisplayBrightnessThresholds= "
+ Arrays.toString(mLowDisplayBrightnessThresholds)
+ ", mLowAmbientBrightnessThresholds= "
@@ -1806,6 +1818,7 @@ public class DisplayDeviceConfig {
: refreshRateConfigs.getHigherBlockingZoneConfigs();
loadPeakDefaultRefreshRate(refreshRateConfigs);
loadDefaultRefreshRate(refreshRateConfigs);
+ loadDefaultRefreshRateInHbm(refreshRateConfigs);
loadLowerRefreshRateBlockingZones(lowerBlockingZoneConfig);
loadHigherRefreshRateBlockingZones(higherBlockingZoneConfig);
}
@@ -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.
*/
diff --git a/services/core/xsd/display-device-config/display-device-config.xsd b/services/core/xsd/display-device-config/display-device-config.xsd
index abe48f894e59..91a11380c81c 100644
--- a/services/core/xsd/display-device-config/display-device-config.xsd
+++ b/services/core/xsd/display-device-config/display-device-config.xsd
@@ -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"/>
diff --git a/services/core/xsd/display-device-config/schema/current.txt b/services/core/xsd/display-device-config/schema/current.txt
index 2c97af55f092..1110d86e1fc1 100644
--- a/services/core/xsd/display-device-config/schema/current.txt
+++ b/services/core/xsd/display-device-config/schema/current.txt
@@ -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);
}
diff --git a/services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java b/services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java
index d1fbc1e50e83..8f70617a66ea 100644
--- a/services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java
+++ b/services/tests/servicestests/src/com/android/server/display/DisplayDeviceConfigTest.java
@@ -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},
@@ -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"