Fix HVAC app null pointer exception.
Change-Id: I5401e48f412385af90ea8dbf5d911c7ac7956ea6
Fix: 131745456
Test: Flashed on Hawk. Verified app gets proper values.
diff --git a/src/com/android/car/hvac/HvacPolicy.java b/src/com/android/car/hvac/HvacPolicy.java
index de46285..5c37dac 100644
--- a/src/com/android/car/hvac/HvacPolicy.java
+++ b/src/com/android/car/hvac/HvacPolicy.java
@@ -34,12 +34,33 @@
for (CarPropertyConfig config : properties) {
switch (config.getPropertyId()) {
case CarHvacManager.ID_ZONED_FAN_SPEED_SETPOINT: {
- mMaxHardwareFanSpeed = (int) config.getMaxValue();
+ // Since we are using one max value to represent all zones, it should find
+ // the minimum max value for fan speed for all zones.
+ mMaxHardwareFanSpeed = Integer.MAX_VALUE;
+ for(int areaId : config.getAreaIds()) {
+ Integer newValue = (Integer) config.getMaxValue(areaId);
+ if (newValue != null && newValue < mMaxHardwareFanSpeed) {
+ mMaxHardwareFanSpeed = newValue;
+ }
+ }
} break;
case CarHvacManager.ID_ZONED_TEMP_SETPOINT: {
- mMaxHardwareTemp = (float) config.getMaxValue();
- mMinHardwareTemp = (float) config.getMinValue();
+ // Since we are using one max value and one min value to represent all zones,
+ // it should find the minimum max value and maximum min value for temp for all
+ // zones.
+ mMaxHardwareTemp = Float.MAX_VALUE;
+ mMinHardwareTemp = -Float.MAX_VALUE;
+ for(int areaId : config.getAreaIds()) {
+ Float newValue = (Float) config.getMaxValue(areaId);
+ if (newValue != null && newValue < mMaxHardwareTemp) {
+ mMaxHardwareTemp = newValue;
+ }
+ newValue = (Float) config.getMinValue(areaId);
+ if (newValue != null && newValue > mMinHardwareTemp) {
+ mMinHardwareTemp = newValue;
+ }
+ }
} break;
}
}