aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens/WatchFaceDigital.cpp
diff options
context:
space:
mode:
authorFintasticMan <finlay.neon.kid@gmail.com>2024-02-20 11:25:02 +0100
committerJF <JF002@users.noreply.github.com>2024-11-04 21:22:38 +0100
commit29ad09f4ef54126831d36fe1b99e794059fc5421 (patch)
tree4699e2008850c8f99297abcf549844317ab0cdb2 /src/displayapp/screens/WatchFaceDigital.cpp
parentafeded0126ff3bb30bdd5b1ed55f5dddca8b92d5 (diff)
weather: Refactor temperature type for type safety
There is now a Temperature struct in the weather service, which holds the internal representation. There is also a temperature struct in the Applications namespace, which holds the temperature in either Celsius or Fahrenheit.
Diffstat (limited to 'src/displayapp/screens/WatchFaceDigital.cpp')
-rw-r--r--src/displayapp/screens/WatchFaceDigital.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/displayapp/screens/WatchFaceDigital.cpp b/src/displayapp/screens/WatchFaceDigital.cpp
index 2e00ee98..b6c4caa1 100644
--- a/src/displayapp/screens/WatchFaceDigital.cpp
+++ b/src/displayapp/screens/WatchFaceDigital.cpp
@@ -2,6 +2,8 @@
#include <lvgl/lvgl.h>
#include <cstdio>
+
+#include "displayapp/Weather.h"
#include "displayapp/screens/NotificationIcon.h"
#include "displayapp/screens/Symbols.h"
#include "displayapp/screens/WeatherSymbols.h"
@@ -174,14 +176,12 @@ void WatchFaceDigital::Refresh() {
if (currentWeather.IsUpdated()) {
auto optCurrentWeather = currentWeather.Get();
if (optCurrentWeather) {
- int16_t temp = optCurrentWeather->temperature;
char tempUnit = 'C';
if (settingsController.GetWeatherFormat() == Controllers::Settings::WeatherFormat::Imperial) {
- temp = Controllers::SimpleWeatherService::CelsiusToFahrenheit(temp);
tempUnit = 'F';
}
- temp = temp / 100 + (temp % 100 >= 50 ? 1 : 0);
- lv_label_set_text_fmt(temperature, "%d°%c", temp, tempUnit);
+ Applications::Temperature temp = Applications::Convert(optCurrentWeather->temperature, settingsController.GetWeatherFormat());
+ lv_label_set_text_fmt(temperature, "%d°%c", temp.temp, tempUnit);
lv_label_set_text(weatherIcon, Symbols::GetSymbol(optCurrentWeather->iconId));
} else {
lv_label_set_text_static(temperature, "");