Implement setConfigInfo in car_ui_portrait
Bug: 279449598
Test: presubmit
Change-Id: I3d8e21fbc0a6b1093915087d6bfa293e9c3af06e
diff --git a/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/CarUiPortraitTemperatureControlView.java b/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/CarUiPortraitTemperatureControlView.java
index c23382f..f0c411f 100644
--- a/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/CarUiPortraitTemperatureControlView.java
+++ b/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/CarUiPortraitTemperatureControlView.java
@@ -19,8 +19,7 @@
import static android.car.VehiclePropertyIds.HVAC_POWER_ON;
import static android.car.VehiclePropertyIds.HVAC_TEMPERATURE_SET;
-import static com.android.systemui.car.hvac.HvacUtils.celsiusToFahrenheit;
-
+import android.car.hardware.CarPropertyConfig;
import android.car.hardware.CarPropertyValue;
import android.content.Context;
import android.content.res.TypedArray;
@@ -36,6 +35,8 @@
import com.android.systemui.R;
+import java.util.List;
+
/**
* A fork of {@link TemperatureControlView} that supports touch feedback on HVAC buttons.
*/
@@ -56,11 +57,10 @@
private View mIncreaseButton;
private View mDecreaseButton;
private float mMinTempC;
+ private float mMinTempF;
private float mMaxTempC;
private String mTemperatureFormatCelsius;
private String mTemperatureFormatFahrenheit;
- private float mTemperatureRoundCelsius;
- private float mTemperatureRoundFahrenheit;
private float mTemperatureIncrementCelsius;
private float mTemperatureIncrementFahrenheit;
private float mCurrentTempC;
@@ -78,12 +78,9 @@
R.fraction.celsius_temperature_increment);
mTemperatureIncrementFahrenheit = getResources().getFloat(
R.fraction.fahrenheit_temperature_increment);
- mTemperatureRoundCelsius = getResources().getFloat(
- R.fraction.celsius_temperature_round);
- mTemperatureRoundFahrenheit = getResources().getFloat(
- R.fraction.fahrenheit_temperature_round);
mMinTempC = getResources().getFloat(R.dimen.hvac_min_value_celsius);
+ mMinTempF = getResources().getFloat(R.dimen.hvac_min_value_fahrenheit);
mMaxTempC = getResources().getFloat(R.dimen.hvac_max_value_celsius);
mAvailableTextColor = ContextCompat.getColor(getContext(), R.color.system_bar_text_color);
mUnavailableTextColor = ContextCompat.getColor(getContext(),
@@ -133,6 +130,19 @@
mHvacPropertySetter = hvacPropertySetter;
}
+ @Override
+ public void setConfigInfo(CarPropertyConfig<?> carPropertyConfig) {
+ List<Integer> configArray = carPropertyConfig.getConfigArray();
+ // Need to divide by 10 because config array values are temperature values that have been
+ // multiplied by 10.
+ mMinTempC = configArray.get(0) / 10f;
+ mMaxTempC = configArray.get(1) / 10f;
+ mTemperatureIncrementCelsius = configArray.get(2) / 10f;
+
+ mMinTempF = configArray.get(3) / 10f;
+ mTemperatureIncrementFahrenheit = configArray.get(5) / 10f;
+ }
+
/**
* Returns {@code true} if temperature should be available for change.
*/
@@ -187,19 +197,15 @@
private void incrementTemperature(boolean increment) {
if (!mPowerOn) return;
- float tempIncrement = mDisplayInFahrenheit
- ? mTemperatureIncrementFahrenheit
- : mTemperatureIncrementCelsius;
float newTempC = increment
- ? mCurrentTempC + tempIncrement
- : mCurrentTempC - tempIncrement;
-
+ ? mCurrentTempC + mTemperatureIncrementCelsius
+ : mCurrentTempC - mTemperatureIncrementCelsius;
setTemperature(newTempC);
}
private void updateTemperatureView() {
- float tempToDisplayUnformatted = roundToClosestFraction(
- mDisplayInFahrenheit ? celsiusToFahrenheit(mCurrentTempC) : mCurrentTempC);
+ float tempToDisplayUnformatted =
+ mDisplayInFahrenheit ? celsiusToFahrenheit(mCurrentTempC) : mCurrentTempC;
mTempInDisplay = String.format(
mDisplayInFahrenheit ? mTemperatureFormatFahrenheit : mTemperatureFormatCelsius,
@@ -250,10 +256,8 @@
});
}
- private float roundToClosestFraction(float rawFloat) {
- float incrementFraction = mDisplayInFahrenheit
- ? mTemperatureRoundFahrenheit
- : mTemperatureRoundCelsius;
- return Math.round(rawFloat / incrementFraction) * incrementFraction;
+ private float celsiusToFahrenheit(float tempC) {
+ int numIncrements = Math.round((tempC - mMinTempC) / mTemperatureIncrementCelsius);
+ return mTemperatureIncrementFahrenheit * numIncrements + mMinTempF;
}
}
diff --git a/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/custom/FanSpeedSeekBar.java b/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/custom/FanSpeedSeekBar.java
index bc7f4f2..28fca82 100644
--- a/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/custom/FanSpeedSeekBar.java
+++ b/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/hvac/custom/FanSpeedSeekBar.java
@@ -20,6 +20,7 @@
import static android.car.VehiclePropertyIds.HVAC_FAN_SPEED;
import static android.car.VehiclePropertyIds.HVAC_POWER_ON;
+import android.car.hardware.CarPropertyConfig;
import android.car.hardware.CarPropertyValue;
import android.content.Context;
import android.content.res.TypedArray;
@@ -157,6 +158,11 @@
}
@Override
+ public void setConfigInfo(CarPropertyConfig<?> carPropertyConfig) {
+ // no-op.
+ }
+
+ @Override
public void onHvacTemperatureUnitChanged(boolean usesFahrenheit) {
// no-op.
}
diff --git a/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/statusicon/ui/StatusBarSensorInfoManager.java b/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/statusicon/ui/StatusBarSensorInfoManager.java
index 0c960a6..7a7d8da 100644
--- a/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/statusicon/ui/StatusBarSensorInfoManager.java
+++ b/car_product/car_ui_portrait/apps/CarUiPortraitSystemUI/src/com/android/systemui/car/statusicon/ui/StatusBarSensorInfoManager.java
@@ -19,8 +19,6 @@
import static android.car.VehiclePropertyIds.ENV_OUTSIDE_TEMPERATURE;
import static android.car.VehiclePropertyIds.HVAC_TEMPERATURE_DISPLAY_UNITS;
-import static com.android.systemui.car.hvac.HvacUtils.celsiusToFahrenheit;
-
import android.car.Car;
import android.car.VehicleUnit;
import android.car.hardware.CarPropertyValue;
@@ -148,4 +146,8 @@
Log.d(TAG, msg);
}
}
+
+ private float celsiusToFahrenheit(float tempC) {
+ return (tempC * 9f / 5f) + 32;
+ }
}