Merge "Small improvements to HVAC app." into pi-car-dev
am: 82fe49011b

Change-Id: I883524425e8f54fc3e72ff9aa08572fd2ea8663b
diff --git a/src/com/android/car/hvac/DataStore.java b/src/com/android/car/hvac/DataStore.java
index 83ed5d3..75e8801 100644
--- a/src/com/android/car/hvac/DataStore.java
+++ b/src/com/android/car/hvac/DataStore.java
@@ -32,7 +32,7 @@
  * them, keeping the application's view of the world sane.
  */
 public class DataStore {
-    private static final long COALESCE_TIME_MS = 50L;
+    private static final long COALESCE_TIME_MS = 0L;
 
     @GuardedBy("mTemperature")
     private SparseArray<Float> mTemperature = new SparseArray<Float>();
diff --git a/src/com/android/car/hvac/HvacController.java b/src/com/android/car/hvac/HvacController.java
index c9ae8a4..66c4da4 100644
--- a/src/com/android/car/hvac/HvacController.java
+++ b/src/com/android/car/hvac/HvacController.java
@@ -29,8 +29,8 @@
 import android.os.IBinder;
 import android.os.SystemProperties;
 import android.support.car.Car;
-import android.support.car.CarNotConnectedException;
 import android.support.car.CarConnectionCallback;
+import android.support.car.CarNotConnectedException;
 import android.util.Log;
 
 import java.util.ArrayList;
@@ -51,9 +51,7 @@
             (CarHvacManager.FAN_DIRECTION_FACE | CarHvacManager.FAN_DIRECTION_FLOOR)
     };
     // Hardware specific value for the front seats
-    public static final int SEAT_ALL = VehicleAreaSeat.SEAT_ROW_1_LEFT |
-            VehicleAreaSeat.SEAT_ROW_1_RIGHT | VehicleAreaSeat.SEAT_ROW_2_LEFT |
-            VehicleAreaSeat.SEAT_ROW_2_CENTER | VehicleAreaSeat.SEAT_ROW_2_RIGHT;
+    public static final int SEAT_ALL = DRIVER_ZONE_ID | PASSENGER_ZONE_ID;
 
     /**
      * Callback for receiving updates from the hvac manager. A Callback can be
@@ -94,7 +92,7 @@
         public void onAutoModeChange(boolean isOn) {
         }
 
-        public void onHvacPowerChange(boolean isOn){
+        public void onHvacPowerChange(boolean isOn) {
         }
     }
 
@@ -356,23 +354,24 @@
 
     private void handleTempUpdate(CarPropertyValue value) {
         final int zone = value.getAreaId();
-        final float temp = (Float)value.getValue();
+        final float temp = (Float) value.getValue();
         final boolean available = value.getStatus() == CarPropertyValue.STATUS_AVAILABLE;
         boolean shouldPropagate = mDataStore.shouldPropagateTempUpdate(zone, temp, available);
         if (Log.isLoggable(TAG, Log.DEBUG)) {
             Log.d(TAG, "Temp Update, zone: " + zone + " temp: " + temp +
-                "available: " + available + " should propagate: " + shouldPropagate);
+                    "available: " + available + " should propagate: " + shouldPropagate);
         }
         if (shouldPropagate) {
-            int userTemperature =  mPolicy.hardwareToUserTemp(temp);
             synchronized (mCallbacks) {
                 for (int i = 0; i < mCallbacks.size(); i++) {
-                    if (zone == VehicleAreaSeat.SEAT_ROW_1_LEFT) {
+                    if (zone == DRIVER_ZONE_ID) {
                         mCallbacks.get(i)
                                 .onDriverTemperatureChange(value);
-                    } else {
+                    } else if (zone == PASSENGER_ZONE_ID) {
                         mCallbacks.get(i)
                                 .onPassengerTemperatureChange(value);
+                    } else {
+                        Log.w(TAG, "Unknown temperature set area id: " + zone);
                     }
                 }
             }
@@ -417,8 +416,7 @@
                 fetchFanSpeed();
                 fetchDefrosterState(VehicleAreaWindow.WINDOW_FRONT_WINDSHIELD);
                 fetchDefrosterState(VehicleAreaWindow.WINDOW_REAR_WINDSHIELD);
-                fetchAirflow(DRIVER_ZONE_ID);
-                fetchAirflow(PASSENGER_ZONE_ID);
+                fetchAirflow();
                 fetchAcState();
                 fetchAirCirculation();
                 fetchHvacPowerState();
@@ -462,9 +460,9 @@
         if (mHvacManager != null) {
             try {
                 float value = mHvacManager.getFloatProperty(
-                    CarHvacManager.ID_ZONED_TEMP_SETPOINT, zone);
+                        CarHvacManager.ID_ZONED_TEMP_SETPOINT, zone);
                 boolean available = mHvacManager.isPropertyAvailable(
-                    CarHvacManager.ID_ZONED_TEMP_SETPOINT, zone);
+                        CarHvacManager.ID_ZONED_TEMP_SETPOINT, zone);
                 mDataStore.setTemperature(zone, value, available);
             } catch (android.car.CarNotConnectedException e) {
                 Log.e(TAG, "Car not connected in fetchTemperature");
@@ -473,19 +471,19 @@
     }
 
     public int getDriverTemperature() {
-        return mPolicy.hardwareToUserTemp(mDataStore.getTemperature(DRIVER_ZONE_ID));
+        return Float.valueOf(mDataStore.getTemperature(DRIVER_ZONE_ID)).intValue();
     }
 
     public int getPassengerTemperature() {
-        return mPolicy.hardwareToUserTemp(mDataStore.getTemperature(PASSENGER_ZONE_ID));
+        return Float.valueOf(mDataStore.getTemperature(PASSENGER_ZONE_ID)).intValue();
     }
 
     public void setDriverTemperature(int temperature) {
-        setTemperature(DRIVER_ZONE_ID, mPolicy.userToHardwareTemp(temperature));
+        setTemperature(DRIVER_ZONE_ID, temperature);
     }
 
     public void setPassengerTemperature(int temperature) {
-        setTemperature(PASSENGER_ZONE_ID, mPolicy.userToHardwareTemp(temperature));
+        setTemperature(PASSENGER_ZONE_ID, temperature);
     }
 
     public void setTemperature(final int zone, final float temperature) {
@@ -515,7 +513,7 @@
                 if (mHvacManager != null) {
                     try {
                         mHvacManager.setBooleanProperty(CarHvacManager.ID_ZONED_HVAC_POWER_ON,
-                            SEAT_ALL, state);
+                                SEAT_ALL, state);
                         // if the set() succeeds, consider the property available
                         mDataStore.setHvacPowerState(state);
                     } catch (android.car.CarNotConnectedException e) {
@@ -695,12 +693,12 @@
         return AIRFLOW_STATES[0];
     }
 
-    private void fetchAirflow(int zone) {
+    private void fetchAirflow() {
         if (mHvacManager != null) {
-            zone = SEAT_ALL; // Car specific workaround.
             try {
-                int val = mHvacManager.getIntProperty(CarHvacManager.ID_ZONED_FAN_DIRECTION, zone);
-                mDataStore.setAirflow(zone, fanPositionToAirflowIndex(val));
+                int val = mHvacManager.getIntProperty(CarHvacManager.ID_ZONED_FAN_DIRECTION,
+                        SEAT_ALL);
+                mDataStore.setAirflow(SEAT_ALL, fanPositionToAirflowIndex(val));
             } catch (android.car.CarNotConnectedException e) {
                 Log.e(TAG, "Car not connected in fetchAirFlow");
             }