Skip to content

Commit 5537508

Browse files
committed
weather: Define function to round and render temperature
1 parent 6a014c9 commit 5537508

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/displayapp/screens/Weather.cpp

+9-8
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ namespace {
3131
}
3232
return LV_TABLE_PART_CELL5; // normal
3333
}
34+
35+
int16_t RoundTemperature(int16_t temp) {
36+
return temp = temp / 100 + (temp % 100 >= 50 ? 1 : 0);
37+
}
3438
}
3539

3640
Weather::Weather(Controllers::Settings& settingsController, Controllers::SimpleWeatherService& weatherService)
@@ -127,14 +131,11 @@ void Weather::Refresh() {
127131
maxTemp = Controllers::SimpleWeatherService::CelsiusToFahrenheit(maxTemp);
128132
tempUnit = 'F';
129133
}
130-
temp = temp / 100 + (temp % 100 >= 50 ? 1 : 0);
131-
maxTemp = maxTemp / 100 + (maxTemp % 100 >= 50 ? 1 : 0);
132-
minTemp = minTemp / 100 + (minTemp % 100 >= 50 ? 1 : 0);
133134
lv_label_set_text(icon, Symbols::GetSymbol(optCurrentWeather->iconId));
134135
lv_label_set_text(condition, Symbols::GetCondition(optCurrentWeather->iconId));
135-
lv_label_set_text_fmt(temperature, "%d°%c", temp, tempUnit);
136-
lv_label_set_text_fmt(minTemperature, "%d°", minTemp);
137-
lv_label_set_text_fmt(maxTemperature, "%d°", maxTemp);
136+
lv_label_set_text_fmt(temperature, "%d°%c", RoundTemperature(temp), tempUnit);
137+
lv_label_set_text_fmt(minTemperature, "%d°", RoundTemperature(minTemp));
138+
lv_label_set_text_fmt(maxTemperature, "%d°", RoundTemperature(maxTemp));
138139
} else {
139140
lv_label_set_text(icon, "");
140141
lv_label_set_text(condition, "");
@@ -164,8 +165,8 @@ void Weather::Refresh() {
164165
if (wday > 6) {
165166
wday -= 7;
166167
}
167-
maxTemp = maxTemp / 100 + (maxTemp % 100 >= 50 ? 1 : 0);
168-
minTemp = minTemp / 100 + (minTemp % 100 >= 50 ? 1 : 0);
168+
maxTemp = RoundTemperature(maxTemp);
169+
minTemp = RoundTemperature(minTemp);
169170
const char* dayOfWeek = Controllers::DateTime::DayOfWeekShortToStringLow(static_cast<Controllers::DateTime::Days>(wday));
170171
lv_table_set_cell_value(forecast, 0, i, dayOfWeek);
171172
lv_table_set_cell_value(forecast, 1, i, Symbols::GetSymbol(optCurrentForecast->days[i].iconId));

0 commit comments

Comments
 (0)