Fix NAN temp on system bar HVAC controls
Fixing bug where the AdjustableTemperatureView displayed "NaN" when no temperature was available (namely when booting) to instead display "--" (which was the previous behavior). Also matched previous temperature view behavior to display a string when the min or max temperature has been set. Bug: 168744829 Test: manual - built on flame_car Test: atest AdjustableTemperatureViewTest Change-Id: I048cf09fb31b61905c922b7e531f497bee2586d9
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
<string name="hvac_min_text">Min</string>
|
||||
<!-- String to represent largest setting of an HVAC system [CHAR LIMIT=10]-->
|
||||
<string name="hvac_max_text">Max</string>
|
||||
<!-- String to display when no HVAC temperature is available -->
|
||||
<string name="hvac_null_temp_text" translatable="false">--</string>
|
||||
<!-- Text for voice recognition toast. [CHAR LIMIT=60] -->
|
||||
<string name="voice_recognition_toast">Voice recognition now handled by connected Bluetooth device</string>
|
||||
<!-- Name of Guest Profile. [CHAR LIMIT=35] -->
|
||||
|
||||
@@ -40,6 +40,9 @@ public class AdjustableTemperatureView extends LinearLayout implements Temperatu
|
||||
private float mMinTempC;
|
||||
private float mMaxTempC;
|
||||
private String mTempFormat;
|
||||
private String mNullTempText;
|
||||
private String mMinTempText;
|
||||
private String mMaxTempText;
|
||||
private boolean mDisplayInFahrenheit = false;
|
||||
|
||||
private HvacController mHvacController;
|
||||
@@ -59,6 +62,9 @@ public class AdjustableTemperatureView extends LinearLayout implements Temperatu
|
||||
mTempFormat = getResources().getString(R.string.hvac_temperature_format);
|
||||
mMinTempC = getResources().getFloat(R.dimen.hvac_min_value_celsius);
|
||||
mMaxTempC = getResources().getFloat(R.dimen.hvac_max_value_celsius);
|
||||
mNullTempText = getResources().getString(R.string.hvac_null_temp_text);
|
||||
mMinTempText = getResources().getString(R.string.hvac_min_text);
|
||||
mMaxTempText = getResources().getString(R.string.hvac_max_text);
|
||||
initializeButtons();
|
||||
}
|
||||
|
||||
@@ -69,12 +75,23 @@ public class AdjustableTemperatureView extends LinearLayout implements Temperatu
|
||||
|
||||
@Override
|
||||
public void setTemp(float tempC) {
|
||||
if (tempC > mMaxTempC || tempC < mMinTempC) {
|
||||
return;
|
||||
}
|
||||
if (mTempTextView == null) {
|
||||
mTempTextView = findViewById(R.id.hvac_temperature_text);
|
||||
}
|
||||
if (Float.isNaN(tempC)) {
|
||||
mTempTextView.setText(mNullTempText);
|
||||
return;
|
||||
}
|
||||
if (tempC <= mMinTempC) {
|
||||
mTempTextView.setText(mMinTempText);
|
||||
mCurrentTempC = mMinTempC;
|
||||
return;
|
||||
}
|
||||
if (tempC >= mMaxTempC) {
|
||||
mTempTextView.setText(mMaxTempText);
|
||||
mCurrentTempC = mMaxTempC;
|
||||
return;
|
||||
}
|
||||
mTempTextView.setText(String.format(mTempFormat,
|
||||
mDisplayInFahrenheit ? convertToFahrenheit(tempC) : tempC));
|
||||
mCurrentTempC = tempC;
|
||||
|
||||
@@ -97,6 +97,48 @@ public class AdjustableTemperatureViewTest extends SysuiTestCase {
|
||||
assertEquals(tempText.getText(), String.format(mFormat, TEMP_CELSIUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTemp_tempNaN_setsTextToNaNText() {
|
||||
when(mCarPropertyManager.isPropertyAvailable(eq(HVAC_TEMPERATURE_SET),
|
||||
anyInt())).thenReturn(true);
|
||||
when(mCarPropertyManager.getFloatProperty(eq(HVAC_TEMPERATURE_SET), anyInt())).thenReturn(
|
||||
Float.NaN);
|
||||
|
||||
mHvacController.addTemperatureViewToController(mAdjustableTemperatureView);
|
||||
|
||||
TextView tempText = mAdjustableTemperatureView.findViewById(R.id.hvac_temperature_text);
|
||||
assertEquals(tempText.getText(),
|
||||
getContext().getResources().getString(R.string.hvac_null_temp_text));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTemp_tempBelowMin_setsTextToMinTempText() {
|
||||
when(mCarPropertyManager.isPropertyAvailable(eq(HVAC_TEMPERATURE_SET),
|
||||
anyInt())).thenReturn(true);
|
||||
when(mCarPropertyManager.getFloatProperty(eq(HVAC_TEMPERATURE_SET), anyInt())).thenReturn(
|
||||
getContext().getResources().getFloat(R.dimen.hvac_min_value_celsius));
|
||||
|
||||
mHvacController.addTemperatureViewToController(mAdjustableTemperatureView);
|
||||
|
||||
TextView tempText = mAdjustableTemperatureView.findViewById(R.id.hvac_temperature_text);
|
||||
assertEquals(tempText.getText(),
|
||||
getContext().getResources().getString(R.string.hvac_min_text));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTemp_tempAboveMax_setsTextToMaxTempText() {
|
||||
when(mCarPropertyManager.isPropertyAvailable(eq(HVAC_TEMPERATURE_SET),
|
||||
anyInt())).thenReturn(true);
|
||||
when(mCarPropertyManager.getFloatProperty(eq(HVAC_TEMPERATURE_SET), anyInt())).thenReturn(
|
||||
getContext().getResources().getFloat(R.dimen.hvac_max_value_celsius));
|
||||
|
||||
mHvacController.addTemperatureViewToController(mAdjustableTemperatureView);
|
||||
|
||||
TextView tempText = mAdjustableTemperatureView.findViewById(R.id.hvac_temperature_text);
|
||||
assertEquals(tempText.getText(),
|
||||
getContext().getResources().getString(R.string.hvac_max_text));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTemperatureToFahrenheit_callsViewSetDisplayInFahrenheit() {
|
||||
when(mCarPropertyManager.isPropertyAvailable(eq(HVAC_TEMPERATURE_SET),
|
||||
|
||||
Reference in New Issue
Block a user