@@ -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
3640Weather::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 > 7 ) {
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