Merge "Allow No Sensor to be Specified in DDC" into tm-qpr-dev

This commit is contained in:
Fiona Campbell
2022-12-12 18:25:41 +00:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 4 deletions

View File

@@ -1412,7 +1412,7 @@ public class DisplayDeviceConfig {
loadBrightnessRampsFromConfigXml(); loadBrightnessRampsFromConfigXml();
loadAmbientLightSensorFromConfigXml(); loadAmbientLightSensorFromConfigXml();
loadBrightnessChangeThresholdsFromXml(); loadBrightnessChangeThresholdsFromXml();
setProxSensorUnspecified(); useFallbackProxSensor();
loadAutoBrightnessConfigsFromConfigXml(); loadAutoBrightnessConfigsFromConfigXml();
loadAutoBrightnessAvailableFromConfigXml(); loadAutoBrightnessAvailableFromConfigXml();
mLoadedFrom = "<config.xml>"; mLoadedFrom = "<config.xml>";
@@ -1432,7 +1432,7 @@ public class DisplayDeviceConfig {
mBrightnessRampIncreaseMaxMillis = 0; mBrightnessRampIncreaseMaxMillis = 0;
setSimpleMappingStrategyValues(); setSimpleMappingStrategyValues();
loadAmbientLightSensorFromConfigXml(); loadAmbientLightSensorFromConfigXml();
setProxSensorUnspecified(); useFallbackProxSensor();
loadAutoBrightnessAvailableFromConfigXml(); loadAutoBrightnessAvailableFromConfigXml();
} }
@@ -1941,7 +1941,12 @@ public class DisplayDeviceConfig {
} }
} }
private void setProxSensorUnspecified() { private void useFallbackProxSensor() {
mProximitySensor.name = null;
mProximitySensor.type = null;
}
private void useNullProxSensor() {
mProximitySensor.name = ""; mProximitySensor.name = "";
mProximitySensor.type = ""; mProximitySensor.type = "";
} }
@@ -1949,6 +1954,12 @@ public class DisplayDeviceConfig {
private void loadProxSensorFromDdc(DisplayConfiguration config) { private void loadProxSensorFromDdc(DisplayConfiguration config) {
SensorDetails sensorDetails = config.getProxSensor(); SensorDetails sensorDetails = config.getProxSensor();
if (sensorDetails != null) { if (sensorDetails != null) {
if (sensorDetails.getName() == null && sensorDetails.getType() == null) {
// If prox sensor is defined, but no details given, this is assumed that
// the display does not have or wish to use a prox sensor for it.
useNullProxSensor();
return;
}
mProximitySensor.name = sensorDetails.getName(); mProximitySensor.name = sensorDetails.getName();
mProximitySensor.type = sensorDetails.getType(); mProximitySensor.type = sensorDetails.getType();
final RefreshRateRange rr = sensorDetails.getRefreshRate(); final RefreshRateRange rr = sensorDetails.getRefreshRate();
@@ -1957,7 +1968,8 @@ public class DisplayDeviceConfig {
mProximitySensor.maxRefreshRate = rr.getMaximum().floatValue(); mProximitySensor.maxRefreshRate = rr.getMaximum().floatValue();
} }
} else { } else {
setProxSensorUnspecified(); // If prox sensor is unspecified, then use a fallback.
useFallbackProxSensor();
} }
} }

View File

@@ -33,6 +33,9 @@ public class SensorUtils {
*/ */
public static Sensor findSensor(SensorManager sensorManager, String sensorType, public static Sensor findSensor(SensorManager sensorManager, String sensorType,
String sensorName, int fallbackType) { String sensorName, int fallbackType) {
if ("".equals(sensorName) && "".equals(sensorType)) {
return null;
}
final boolean isNameSpecified = !TextUtils.isEmpty(sensorName); final boolean isNameSpecified = !TextUtils.isEmpty(sensorName);
final boolean isTypeSpecified = !TextUtils.isEmpty(sensorType); final boolean isTypeSpecified = !TextUtils.isEmpty(sensorType);
if (isNameSpecified || isTypeSpecified) { if (isNameSpecified || isTypeSpecified) {

View File

@@ -148,6 +148,8 @@ public final class DisplayDeviceConfigTest {
assertArrayEquals(new float[]{23, 24, 25}, assertArrayEquals(new float[]{23, 24, 25},
mDisplayDeviceConfig.getAmbientDarkeningPercentagesIdle(), ZERO_DELTA); mDisplayDeviceConfig.getAmbientDarkeningPercentagesIdle(), ZERO_DELTA);
assertEquals("ProximitySensor123", mDisplayDeviceConfig.getProximitySensor().name);
assertEquals("prox_type_1", mDisplayDeviceConfig.getProximitySensor().type);
// Todo(brup): Add asserts for BrightnessThrottlingData, DensityMapping, // Todo(brup): Add asserts for BrightnessThrottlingData, DensityMapping,
// HighBrightnessModeData AmbientLightSensor, RefreshRateLimitations and ProximitySensor. // HighBrightnessModeData AmbientLightSensor, RefreshRateLimitations and ProximitySensor.
@@ -420,6 +422,10 @@ public final class DisplayDeviceConfigTest {
+ "</brightnessThrottlingPoint>\n" + "</brightnessThrottlingPoint>\n"
+ "</brightnessThrottlingMap>\n" + "</brightnessThrottlingMap>\n"
+ "</thermalThrottling>\n" + "</thermalThrottling>\n"
+ "<proxSensor>\n"
+ "<name>ProximitySensor123</name>\n"
+ "<type>prox_type_1</type>\n"
+ "</proxSensor>\n"
+ "</displayConfiguration>\n"; + "</displayConfiguration>\n";
} }