Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c66230d authored by Julia Kawano's avatar Julia Kawano Committed by Android (Google) Code Review
Browse files

Merge "Fix NAN temp on system bar HVAC controls"

parents 80cede3d e0c05248
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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] -->
+20 −3
Original line number Diff line number Diff line
@@ -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;
+42 −0
Original line number Diff line number Diff line
@@ -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),