diff options
Diffstat (limited to 'src/displayapp/screens')
| -rw-r--r-- | src/displayapp/screens/Alarm.cpp | 4 | ||||
| -rw-r--r-- | src/displayapp/screens/Alarm.h | 26 | ||||
| -rw-r--r-- | src/displayapp/screens/ApplicationList.cpp | 24 | ||||
| -rw-r--r-- | src/displayapp/screens/ApplicationList.h | 38 | ||||
| -rw-r--r-- | src/displayapp/screens/Clock.h | 11 | ||||
| -rw-r--r-- | src/displayapp/screens/HeartRate.h | 9 | ||||
| -rw-r--r-- | src/displayapp/screens/InfiniPaint.h | 11 | ||||
| -rw-r--r-- | src/displayapp/screens/Metronome.h | 9 | ||||
| -rw-r--r-- | src/displayapp/screens/Motion.h | 10 | ||||
| -rw-r--r-- | src/displayapp/screens/Music.h | 11 | ||||
| -rw-r--r-- | src/displayapp/screens/Navigation.h | 11 | ||||
| -rw-r--r-- | src/displayapp/screens/Paddle.h | 11 | ||||
| -rw-r--r-- | src/displayapp/screens/Steps.h | 11 | ||||
| -rw-r--r-- | src/displayapp/screens/StopWatch.h | 89 | ||||
| -rw-r--r-- | src/displayapp/screens/Tile.cpp | 1 | ||||
| -rw-r--r-- | src/displayapp/screens/Timer.cpp | 2 | ||||
| -rw-r--r-- | src/displayapp/screens/Timer.h | 64 | ||||
| -rw-r--r-- | src/displayapp/screens/Twos.h | 9 | ||||
| -rw-r--r-- | src/displayapp/screens/Weather.h | 13 |
19 files changed, 248 insertions, 116 deletions
diff --git a/src/displayapp/screens/Alarm.cpp b/src/displayapp/screens/Alarm.cpp index 4e6ce797..cbc702f3 100644 --- a/src/displayapp/screens/Alarm.cpp +++ b/src/displayapp/screens/Alarm.cpp @@ -19,6 +19,10 @@ #include "displayapp/screens/Screen.h" #include "displayapp/screens/Symbols.h" #include "displayapp/InfiniTimeTheme.h" +#include "components/settings/Settings.h" +#include "components/alarm/AlarmController.h" +#include "components/motor/MotorController.h" +#include "systemtask/SystemTask.h" using namespace Pinetime::Applications::Screens; using Pinetime::Controllers::AlarmController; diff --git a/src/displayapp/screens/Alarm.h b/src/displayapp/screens/Alarm.h index 91177366..efa38eb7 100644 --- a/src/displayapp/screens/Alarm.h +++ b/src/displayapp/screens/Alarm.h @@ -17,21 +17,22 @@ */ #pragma once +#include "displayapp/Apps.h" +#include "components/settings/Settings.h" #include "displayapp/screens/Screen.h" -#include "systemtask/SystemTask.h" -#include "displayapp/LittleVgl.h" -#include "components/alarm/AlarmController.h" #include "displayapp/widgets/Counter.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" namespace Pinetime { namespace Applications { namespace Screens { class Alarm : public Screen { public: - Alarm(Controllers::AlarmController& alarmController, - Controllers::Settings::ClockType clockType, - System::SystemTask& systemTask, - Controllers::MotorController& motorController); + explicit Alarm(Controllers::AlarmController& alarmController, + Controllers::Settings::ClockType clockType, + System::SystemTask& systemTask, + Controllers::MotorController& motorController); ~Alarm() override; void SetAlerting(); void OnButtonEvent(lv_obj_t* obj, lv_event_t event); @@ -63,6 +64,15 @@ namespace Pinetime { Widgets::Counter hourCounter = Widgets::Counter(0, 23, jetbrains_mono_76); Widgets::Counter minuteCounter = Widgets::Counter(0, 59, jetbrains_mono_76); }; + } + template<> + struct AppTraits<Apps::Alarm> { + static constexpr Apps app = Apps::Alarm; + static constexpr const char* icon = Screens::Symbols::clock; + static Screens::Screen *Create(AppControllers& controllers) { return new Screens::Alarm(controllers.alarmController, + controllers.settingsController.GetClockType(), + *controllers.systemTask, + controllers.motorController); }; }; - }; + } } diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp index 6014cf53..e5e26098 100644 --- a/src/displayapp/screens/ApplicationList.cpp +++ b/src/displayapp/screens/ApplicationList.cpp @@ -1,8 +1,9 @@ #include "displayapp/screens/ApplicationList.h" +#include "displayapp/screens/Tile.h" #include <lvgl/lvgl.h> #include <functional> -#include "displayapp/Apps.h" -#include "displayapp/DisplayApp.h" +#include <algorithm> +#include "components/settings/Settings.h" using namespace Pinetime::Applications::Screens; @@ -16,18 +17,20 @@ auto ApplicationList::CreateScreenList() const { return screens; } -ApplicationList::ApplicationList(Pinetime::Applications::DisplayApp* app, +ApplicationList::ApplicationList(DisplayApp* app, Pinetime::Controllers::Settings& settingsController, const Pinetime::Controllers::Battery& batteryController, const Pinetime::Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, - Pinetime::Controllers::FS& filesystem) + Pinetime::Controllers::FS& filesystem, + std::array<Tile::Applications, UserAppTypes::Count>&& apps) : app {app}, settingsController {settingsController}, batteryController {batteryController}, bleController {bleController}, dateTimeController {dateTimeController}, filesystem{filesystem}, + apps{std::move(apps)}, screens {app, settingsController.GetAppMenu(), CreateScreenList(), Screens::ScreenListModes::UpDown} { } @@ -40,9 +43,14 @@ bool ApplicationList::OnTouchEvent(Pinetime::Applications::TouchEvents event) { } std::unique_ptr<Screen> ApplicationList::CreateScreen(unsigned int screenNum) const { - std::array<Tile::Applications, appsPerScreen> apps; - for (int i = 0; i < appsPerScreen; i++) { - apps[i] = applications[screenNum * appsPerScreen + i]; + std::array<Tile::Applications, appsPerScreen> pageApps; + + for(int i = 0; i < appsPerScreen; i++) { + if(i+(screenNum * appsPerScreen) >= apps.size()) { + pageApps[i] = {"", Pinetime::Applications::Apps::None, false}; + } else { + pageApps[i] = apps[i + (screenNum * appsPerScreen)]; + } } return std::make_unique<Screens::Tile>(screenNum, @@ -52,5 +60,5 @@ std::unique_ptr<Screen> ApplicationList::CreateScreen(unsigned int screenNum) co batteryController, bleController, dateTimeController, - apps); + pageApps); } diff --git a/src/displayapp/screens/ApplicationList.h b/src/displayapp/screens/ApplicationList.h index 371ee710..2ad9c7c7 100644 --- a/src/displayapp/screens/ApplicationList.h +++ b/src/displayapp/screens/ApplicationList.h @@ -2,15 +2,12 @@ #include <array> #include <memory> - -#include "displayapp/screens/Screen.h" -#include "displayapp/screens/ScreenList.h" -#include "components/datetime/DateTimeController.h" -#include "components/settings/Settings.h" -#include "components/battery/BatteryController.h" -#include "displayapp/screens/Symbols.h" -#include "displayapp/screens/Tile.h" -#include "displayapp/screens/Navigation.h" +#include "displayapp/Apps.h" +#include "Screen.h" +#include "ScreenList.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" +#include "Tile.h" namespace Pinetime { namespace Applications { @@ -22,7 +19,8 @@ namespace Pinetime { const Pinetime::Controllers::Battery& batteryController, const Pinetime::Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, - Pinetime::Controllers::FS& filesystem); + Pinetime::Controllers::FS& filesystem, + std::array<Tile::Applications, UserAppTypes::Count>&& apps); ~ApplicationList() override; bool OnTouchEvent(TouchEvents event) override; @@ -36,29 +34,13 @@ namespace Pinetime { const Pinetime::Controllers::Ble& bleController; Controllers::DateTime& dateTimeController; Pinetime::Controllers::FS& filesystem; + std::array<Tile::Applications, UserAppTypes::Count> apps; static constexpr int appsPerScreen = 6; // Increment this when more space is needed - static constexpr int nScreens = 2; - - std::array<Tile::Applications, appsPerScreen * nScreens> applications {{ - {Symbols::stopWatch, Apps::StopWatch, true}, - {Symbols::clock, Apps::Alarm, true}, - {Symbols::hourGlass, Apps::Timer, true}, - {Symbols::shoe, Apps::Steps, true}, - {Symbols::heartBeat, Apps::HeartRate, true}, - {Symbols::music, Apps::Music, true}, - - {Symbols::paintbrush, Apps::Paint, true}, - {Symbols::paddle, Apps::Paddle, true}, - {"2", Apps::Twos, true}, - {Symbols::drum, Apps::Metronome, true}, - {Symbols::map, Apps::Navigation, Applications::Screens::Navigation::IsAvailable(filesystem)}, - {Symbols::none, Apps::None, false}, + static constexpr int nScreens = (UserAppTypes::Count/appsPerScreen)+1; - // {"M", Apps::Motion}, - }}; ScreenList<nScreens> screens; }; } diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index f3591f43..e67c0260 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -1,13 +1,12 @@ #pragma once -#include <lvgl/src/lv_core/lv_obj.h> #include <chrono> #include <cstdint> #include <memory> -#include <components/heartrate/HeartRateController.h> +#include "displayapp/Controllers.h" #include "displayapp/screens/Screen.h" -#include "components/datetime/DateTimeController.h" -#include "components/ble/weather/WeatherService.h" +#include "displayapp/Apps.h" +#include "Symbols.h" namespace Pinetime { namespace Controllers { @@ -16,6 +15,10 @@ namespace Pinetime { class Ble; class NotificationManager; class MotionController; + class DateTime; + class HeartRateController; + class WeatherService; + class FS; } namespace Applications { diff --git a/src/displayapp/screens/HeartRate.h b/src/displayapp/screens/HeartRate.h index 78ae63db..85da8dee 100644 --- a/src/displayapp/screens/HeartRate.h +++ b/src/displayapp/screens/HeartRate.h @@ -4,6 +4,7 @@ #include <chrono> #include "displayapp/screens/Screen.h" #include "systemtask/SystemTask.h" +#include "Symbols.h" #include <lvgl/src/lv_core/lv_style.h> #include <lvgl/src/lv_core/lv_obj.h> @@ -37,5 +38,13 @@ namespace Pinetime { lv_task_t* taskRefresh; }; } + template <> + struct AppTraits<Apps::HeartRate> { + static constexpr Apps app = Apps::HeartRate; + static constexpr const char* icon = Screens::Symbols::heartBeat; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::HeartRate(controllers.heartRateController, *controllers.systemTask); + }; + }; } } diff --git a/src/displayapp/screens/InfiniPaint.h b/src/displayapp/screens/InfiniPaint.h index ec184c44..a25ace55 100644 --- a/src/displayapp/screens/InfiniPaint.h +++ b/src/displayapp/screens/InfiniPaint.h @@ -5,6 +5,9 @@ #include <algorithm> // std::fill #include "displayapp/screens/Screen.h" #include "components/motor/MotorController.h" +#include "Symbols.h" +#include <displayapp/Apps.h> +#include <displayapp/Controllers.h> namespace Pinetime { namespace Components { @@ -35,5 +38,13 @@ namespace Pinetime { uint8_t color = 2; }; } + template <> + struct AppTraits<Apps::Paint> { + static constexpr Apps app = Apps::Paint; + static constexpr const char* icon = Screens::Symbols::paintbrush; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::InfiniPaint(controllers.lvgl, controllers.motorController); + }; + }; } } diff --git a/src/displayapp/screens/Metronome.h b/src/displayapp/screens/Metronome.h index 13b0d664..8820962d 100644 --- a/src/displayapp/screens/Metronome.h +++ b/src/displayapp/screens/Metronome.h @@ -3,6 +3,7 @@ #include "systemtask/SystemTask.h" #include "components/motor/MotorController.h" #include "displayapp/screens/Screen.h" +#include "Symbols.h" namespace Pinetime { namespace Applications { @@ -36,5 +37,13 @@ namespace Pinetime { lv_task_t* taskRefresh; }; } + template <> + struct AppTraits<Apps::Metronome> { + static constexpr Apps app = Apps::Metronome; + static constexpr const char* icon = Screens::Symbols::drum; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Metronome(controllers.motorController, *controllers.systemTask); + }; + }; } } diff --git a/src/displayapp/screens/Motion.h b/src/displayapp/screens/Motion.h index e4cbe483..3ef570d6 100644 --- a/src/displayapp/screens/Motion.h +++ b/src/displayapp/screens/Motion.h @@ -6,6 +6,8 @@ #include <lvgl/src/lv_core/lv_style.h> #include <lvgl/src/lv_core/lv_obj.h> #include <components/motion/MotionController.h> +#include "displayapp/Controllers.h" +#include "displayapp/Apps.h" namespace Pinetime { namespace Applications { @@ -30,5 +32,13 @@ namespace Pinetime { lv_task_t* taskRefresh; }; } + template <> + struct AppTraits<Apps::Motion> { + static constexpr Apps app = Apps::Motion; + static constexpr const char* icon = "M"; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Motion(controllers.motionController); + }; + }; } } diff --git a/src/displayapp/screens/Music.h b/src/displayapp/screens/Music.h index 847c6e74..acbb6312 100644 --- a/src/displayapp/screens/Music.h +++ b/src/displayapp/screens/Music.h @@ -21,6 +21,9 @@ #include <lvgl/src/lv_core/lv_obj.h> #include <string> #include "displayapp/screens/Screen.h" +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" namespace Pinetime { namespace Controllers { @@ -82,5 +85,13 @@ namespace Pinetime { /** Watchapp */ }; } + template <> + struct AppTraits<Apps::Music> { + static constexpr Apps app = Apps::Music; + static constexpr const char* icon = Screens::Symbols::music; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Music(*controllers.musicService); + }; + }; } } diff --git a/src/displayapp/screens/Navigation.h b/src/displayapp/screens/Navigation.h index eb243b01..d54df13c 100644 --- a/src/displayapp/screens/Navigation.h +++ b/src/displayapp/screens/Navigation.h @@ -22,6 +22,9 @@ #include <string> #include "displayapp/screens/Screen.h" #include <array> +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" namespace Pinetime { namespace Controllers { @@ -55,5 +58,13 @@ namespace Pinetime { lv_task_t* taskRefresh; }; } + template <> + struct AppTraits<Apps::Navigation> { + static constexpr Apps app = Apps::Navigation; + static constexpr const char* icon = Screens::Symbols::map; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Navigation(*controllers.navigationService); + }; + }; } } diff --git a/src/displayapp/screens/Paddle.h b/src/displayapp/screens/Paddle.h index 33dac191..0670e5b1 100644 --- a/src/displayapp/screens/Paddle.h +++ b/src/displayapp/screens/Paddle.h @@ -3,6 +3,9 @@ #include <lvgl/lvgl.h> #include <cstdint> #include "displayapp/screens/Screen.h" +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" namespace Pinetime { namespace Components { @@ -45,5 +48,13 @@ namespace Pinetime { lv_task_t* taskRefresh; }; } + template <> + struct AppTraits<Apps::Paddle> { + static constexpr Apps app = Apps::Paddle; + static constexpr const char* icon = Screens::Symbols::paddle; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Paddle(controllers.lvgl); + }; + }; } } diff --git a/src/displayapp/screens/Steps.h b/src/displayapp/screens/Steps.h index 5dc07eff..5299d67f 100644 --- a/src/displayapp/screens/Steps.h +++ b/src/displayapp/screens/Steps.h @@ -4,6 +4,9 @@ #include <lvgl/lvgl.h> #include "displayapp/screens/Screen.h" #include <components/motion/MotionController.h> +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" namespace Pinetime { @@ -39,5 +42,13 @@ namespace Pinetime { lv_task_t* taskRefresh; }; } + template <> + struct AppTraits<Apps::Steps> { + static constexpr Apps app = Apps::Steps; + static constexpr const char* icon = Screens::Symbols::shoe; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Steps(controllers.motionController, controllers.settingsController); + }; + }; } } diff --git a/src/displayapp/screens/StopWatch.h b/src/displayapp/screens/StopWatch.h index d1acd162..c3550fc4 100644 --- a/src/displayapp/screens/StopWatch.h +++ b/src/displayapp/screens/StopWatch.h @@ -7,50 +7,65 @@ #include "portmacro_cmsis.h" #include "systemtask/SystemTask.h" +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" -namespace Pinetime::Applications::Screens { +namespace Pinetime { + namespace Applications { + namespace Screens { - enum class States { Init, Running, Halted }; + enum class States { Init, Running, Halted }; - struct TimeSeparated_t { - int hours; - int mins; - int secs; - int hundredths; - }; + struct TimeSeparated_t { + int hours; + int mins; + int secs; + int hundredths; + }; - class StopWatch : public Screen { - public: - explicit StopWatch(System::SystemTask& systemTask); - ~StopWatch() override; - void Refresh() override; + class StopWatch : public Screen { + public: + explicit StopWatch(System::SystemTask& systemTask); + ~StopWatch() override; + void Refresh() override; - void playPauseBtnEventHandler(); - void stopLapBtnEventHandler(); - bool OnButtonPushed() override; + void playPauseBtnEventHandler(); + void stopLapBtnEventHandler(); + bool OnButtonPushed() override; - private: - void SetInterfacePaused(); - void SetInterfaceRunning(); - void SetInterfaceStopped(); + private: + void SetInterfacePaused(); + void SetInterfaceRunning(); + void SetInterfaceStopped(); - void Reset(); - void Start(); - void Pause(); + void Reset(); + void Start(); + void Pause(); - Pinetime::System::SystemTask& systemTask; - States currentState = States::Init; - TickType_t startTime; - TickType_t oldTimeElapsed = 0; - TickType_t blinkTime = 0; - static constexpr int maxLapCount = 20; - TickType_t laps[maxLapCount + 1]; - static constexpr int displayedLaps = 2; - int lapsDone = 0; - lv_obj_t *time, *msecTime, *btnPlayPause, *btnStopLap, *txtPlayPause, *txtStopLap; - lv_obj_t* lapText; - bool isHoursLabelUpdated = false; + Pinetime::System::SystemTask& systemTask; + States currentState = States::Init; + TickType_t startTime; + TickType_t oldTimeElapsed = 0; + TickType_t blinkTime = 0; + static constexpr int maxLapCount = 20; + TickType_t laps[maxLapCount + 1]; + static constexpr int displayedLaps = 2; + int lapsDone = 0; + lv_obj_t *time, *msecTime, *btnPlayPause, *btnStopLap, *txtPlayPause, *txtStopLap; + lv_obj_t* lapText; + bool isHoursLabelUpdated = false; - lv_task_t* taskRefresh; - }; + lv_task_t* taskRefresh; + }; + } + template <> + struct AppTraits<Apps::StopWatch> { + static constexpr Apps app = Apps::StopWatch; + static constexpr const char* icon = Screens::Symbols::stopWatch; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::StopWatch(*controllers.systemTask); + }; + }; + } } diff --git a/src/displayapp/screens/Tile.cpp b/src/displayapp/screens/Tile.cpp index 343755e3..7c392c59 100644 --- a/src/displayapp/screens/Tile.cpp +++ b/src/displayapp/screens/Tile.cpp @@ -1,5 +1,4 @@ #include "displayapp/screens/Tile.h" -#include "displayapp/DisplayApp.h" #include "displayapp/screens/BatteryIcon.h" #include "components/ble/BleController.h" #include "displayapp/InfiniTimeTheme.h" diff --git a/src/displayapp/screens/Timer.cpp b/src/displayapp/screens/Timer.cpp index d9488740..a1ede6be 100644 --- a/src/displayapp/screens/Timer.cpp +++ b/src/displayapp/screens/Timer.cpp @@ -62,7 +62,7 @@ Timer::Timer(Controllers::Timer& timerController) : timer {timerController} { txtPlayPause = lv_label_create(lv_scr_act(), nullptr); lv_obj_align(txtPlayPause, btnPlayPause, LV_ALIGN_CENTER, 0, 0); - if (timerController.IsRunning()) { + if (timer.IsRunning()) { SetTimerRunning(); } else { SetTimerStopped(); diff --git a/src/displayapp/screens/Timer.h b/src/displayapp/screens/Timer.h index e452a9d9..f8e337c2 100644 --- a/src/displayapp/screens/Timer.h +++ b/src/displayapp/screens/Timer.h @@ -8,38 +8,48 @@ #include <lvgl/lvgl.h> #include "components/timer/Timer.h" +#include "Symbols.h" -namespace Pinetime::Applications::Screens { - class Timer : public Screen { - public: - Timer(Controllers::Timer& timerController); - ~Timer() override; - void Refresh() override; - void Reset(); - void ToggleRunning(); - void ButtonPressed(); - void MaskReset(); +namespace Pinetime::Applications{ + namespace Screens { + class Timer : public Screen { + public: + Timer(Controllers::Timer& timerController); + ~Timer() override; + void Refresh() override; + void Reset(); + void ToggleRunning(); + void ButtonPressed(); + void MaskReset(); - private: - void SetTimerRunning(); - void SetTimerStopped(); - void UpdateMask(); - Controllers::Timer& timer; + private: + void SetTimerRunning(); + void SetTimerStopped(); + void UpdateMask(); + Pinetime::Controllers::Timer& timer; - lv_obj_t* btnPlayPause; - lv_obj_t* txtPlayPause; + lv_obj_t* btnPlayPause; + lv_obj_t* txtPlayPause; - lv_obj_t* btnObjectMask; - lv_obj_t* highlightObjectMask; - lv_objmask_mask_t* btnMask; - lv_objmask_mask_t* highlightMask; + lv_obj_t* btnObjectMask; + lv_obj_t* highlightObjectMask; + lv_objmask_mask_t* btnMask; + lv_objmask_mask_t* highlightMask; - lv_task_t* taskRefresh; - Widgets::Counter minuteCounter = Widgets::Counter(0, 59, jetbrains_mono_76); - Widgets::Counter secondCounter = Widgets::Counter(0, 59, jetbrains_mono_76); + lv_task_t* taskRefresh; + Widgets::Counter minuteCounter = Widgets::Counter(0, 59, jetbrains_mono_76); + Widgets::Counter secondCounter = Widgets::Counter(0, 59, jetbrains_mono_76); - bool buttonPressing = false; - lv_coord_t maskPosition = 0; - TickType_t pressTime = 0; + bool buttonPressing = false; + lv_coord_t maskPosition = 0; + TickType_t pressTime = 0; + }; + } + + template<> + struct AppTraits<Apps::Timer> { + static constexpr Apps app = Apps::Timer; + static constexpr const char* icon = Screens::Symbols::hourGlass; + static Screens::Screen *Create(AppControllers& controllers) { return new Screens::Timer(controllers.timer); }; }; } diff --git a/src/displayapp/screens/Twos.h b/src/displayapp/screens/Twos.h index e731eae6..4e6980f5 100644 --- a/src/displayapp/screens/Twos.h +++ b/src/displayapp/screens/Twos.h @@ -1,7 +1,8 @@ #pragma once -#include <lvgl/src/lv_core/lv_obj.h> +#include "displayapp/Apps.h" #include "displayapp/screens/Screen.h" +#include "displayapp/Controllers.h" namespace Pinetime { namespace Applications { @@ -35,5 +36,11 @@ namespace Pinetime { bool placeNewTile(); }; } + template<> + struct AppTraits<Apps::Twos> { + static constexpr Apps app = Apps::Twos; + static constexpr const char* icon = "2"; + static Screens::Screen *Create(AppControllers& /*controllers*/) { return new Screens::Twos(); }; + }; } } diff --git a/src/displayapp/screens/Weather.h b/src/displayapp/screens/Weather.h index 459534aa..888dc257 100644 --- a/src/displayapp/screens/Weather.h +++ b/src/displayapp/screens/Weather.h @@ -1,9 +1,12 @@ #pragma once #include <memory> -#include <components/ble/weather/WeatherService.h> +#include "components/ble/weather/WeatherService.h" #include "Screen.h" #include "ScreenList.h" +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" namespace Pinetime { namespace Applications { @@ -41,5 +44,13 @@ namespace Pinetime { std::unique_ptr<Screen> CreateScreenHumidity(); }; } + template <> + struct AppTraits<Apps::Weather> { + static constexpr Apps app = Apps::Weather; + static constexpr const char* icon = Screens::Symbols::sun; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::Weather(controllers.displayApp, *controllers.weatherController); + }; + }; } } |
