Author: Jean-François Milants <jf@codingfield.com>
Simple Weather Service Move the function GetIcon that converts SimpleWeatherService::Icons to char (symbol) into a new header file so that it can be used by other apps and companion apps.
src/displayapp/screens/WatchFacePineTimeStyle.cpp | 38 ------------- src/displayapp/screens/WeatherSymbols.h | 46 +++++++++++++++++
diff --git a/src/displayapp/screens/WatchFacePineTimeStyle.cpp b/src/displayapp/screens/WatchFacePineTimeStyle.cpp index 4c28c62c4fc49e76913586e35c268131525172de..5259d553d10173ecbaf6ea39da5a611a42ac723f 100644 --- a/src/displayapp/screens/WatchFacePineTimeStyle.cpp +++ b/src/displayapp/screens/WatchFacePineTimeStyle.cpp @@ -27,6 +27,7 @@ #include "displayapp/screens/BatteryIcon.h" #include "displayapp/screens/BleIcon.h" #include "displayapp/screens/NotificationIcon.h" #include "displayapp/screens/Symbols.h" +#include "displayapp/screens/WeatherSymbols.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" #include "components/ble/NotificationManager.h" @@ -41,41 +42,6 @@ namespace { void event_handler(lv_obj_t* obj, lv_event_t event) { auto* screen = static_cast<WatchFacePineTimeStyle*>(obj->user_data); screen->UpdateSelected(obj, event); - } - - const char* GetIcon(const Pinetime::Controllers::SimpleWeatherService::Icons icon) { - switch (icon) { - case Pinetime::Controllers::SimpleWeatherService::Icons::Sun: - return Symbols::sun; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::CloudsSun: - return Symbols::cloudSun; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::Clouds: - return Symbols::cloud; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::BrokenClouds: - return Symbols::cloudMeatball; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::Thunderstorm: - return Symbols::bolt; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::Snow: - return Symbols::snowflake; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::CloudShowerHeavy: - return Symbols::cloudShowersHeavy; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::CloudSunRain: - return Symbols::cloudSunRain; - break; - case Pinetime::Controllers::SimpleWeatherService::Icons::Smog: - return Symbols::smog; - break; - default: - return Symbols::ban; - break; - } } } @@ -578,7 +544,7 @@ if (currentWeather.IsUpdated()) { auto optCurrentWeather = currentWeather.Get(); if (optCurrentWeather) { lv_label_set_text_fmt(temperature, "%d°", optCurrentWeather->temperature); - lv_label_set_text(weatherIcon, GetIcon(optCurrentWeather->iconId)); + lv_label_set_text(weatherIcon, Symbols::GetSymbol(optCurrentWeather->iconId)); lv_obj_realign(temperature); lv_obj_realign(weatherIcon); } diff --git a/src/displayapp/screens/WeatherSymbols.h b/src/displayapp/screens/WeatherSymbols.h new file mode 100644 index 0000000000000000000000000000000000000000..99ce3887ac16747a88c6647b40ac09df22942841 --- /dev/null +++ b/src/displayapp/screens/WeatherSymbols.h @@ -0,0 +1,46 @@ +#pragma once +#include "components/ble/SimpleWeatherService.h" +#include "displayapp/screens/Symbols.h" + +namespace Pinetime { + namespace Applications { + namespace Screens { + namespace Symbols { + const char* GetSymbol(const Pinetime::Controllers::SimpleWeatherService::Icons icon) { + switch (icon) { + case Pinetime::Controllers::SimpleWeatherService::Icons::Sun: + return Symbols::sun; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::CloudsSun: + return Symbols::cloudSun; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::Clouds: + return Symbols::cloud; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::BrokenClouds: + return Symbols::cloudMeatball; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::Thunderstorm: + return Symbols::bolt; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::Snow: + return Symbols::snowflake; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::CloudShowerHeavy: + return Symbols::cloudShowersHeavy; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::CloudSunRain: + return Symbols::cloudSunRain; + break; + case Pinetime::Controllers::SimpleWeatherService::Icons::Smog: + return Symbols::smog; + break; + default: + return Symbols::ban; + break; + } + } + } + } + } +}