Merge "Allow No Sensor to be Specified in DDC" into tm-qpr-dev am: 55d73f2ed4

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20580521

Change-Id: I5fd161bb61588a3c4c704d05b8fc18a294de7f1f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Fiona Campbell
2022-12-12 18:53:53 +00:00
committed by Automerger Merge Worker
3 changed files with 25 additions and 4 deletions

View File

@@ -1411,7 +1411,7 @@ public class DisplayDeviceConfig {
loadBrightnessRampsFromConfigXml();
loadAmbientLightSensorFromConfigXml();
loadBrightnessChangeThresholdsFromXml();
setProxSensorUnspecified();
useFallbackProxSensor();
loadAutoBrightnessConfigsFromConfigXml();
loadAutoBrightnessAvailableFromConfigXml();
mLoadedFrom = "<config.xml>";
@@ -1431,7 +1431,7 @@ public class DisplayDeviceConfig {
mBrightnessRampIncreaseMaxMillis = 0;
setSimpleMappingStrategyValues();
loadAmbientLightSensorFromConfigXml();
setProxSensorUnspecified();
useFallbackProxSensor();
loadAutoBrightnessAvailableFromConfigXml();
}
@@ -1940,7 +1940,12 @@ public class DisplayDeviceConfig {
}
}
private void setProxSensorUnspecified() {
private void useFallbackProxSensor() {
mProximitySensor.name = null;
mProximitySensor.type = null;
}
private void useNullProxSensor() {
mProximitySensor.name = "";
mProximitySensor.type = "";
}
@@ -1948,6 +1953,12 @@ public class DisplayDeviceConfig {
private void loadProxSensorFromDdc(DisplayConfiguration config) {
SensorDetails sensorDetails = config.getProxSensor();
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.type = sensorDetails.getType();
final RefreshRateRange rr = sensorDetails.getRefreshRate();
@@ -1956,7 +1967,8 @@ public class DisplayDeviceConfig {
mProximitySensor.maxRefreshRate = rr.getMaximum().floatValue();
}
} 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,
String sensorName, int fallbackType) {
if ("".equals(sensorName) && "".equals(sensorType)) {
return null;
}
final boolean isNameSpecified = !TextUtils.isEmpty(sensorName);
final boolean isTypeSpecified = !TextUtils.isEmpty(sensorType);
if (isNameSpecified || isTypeSpecified) {

View File

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