InfiniTime.git

commit ad090ab1884ec71a7a5168af9fb9d5149fb11d7b

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;
+          }
+        }
+      }
+    }
+  }
+}