|
| 1 | +#include "displayapp/screens/Clock.h" |
| 2 | + |
| 3 | +#include <lvgl/lvgl.h> |
| 4 | +#include "components/battery/BatteryController.h" |
| 5 | +#include "components/motion/MotionController.h" |
| 6 | +#include "components/ble/BleController.h" |
| 7 | +#include "components/ble/NotificationManager.h" |
| 8 | +#include "components/settings/Settings.h" |
| 9 | +#include "displayapp/DisplayApp.h" |
| 10 | +#include "displayapp/screens/WatchFaceDigital.h" |
| 11 | +#include "displayapp/screens/WatchFaceTerminal.h" |
| 12 | +#include "displayapp/screens/WatchFaceInfineat.h" |
| 13 | +#include "displayapp/screens/WatchFaceAnalog.h" |
| 14 | +#include "displayapp/screens/WatchFacePineTimeStyle.h" |
| 15 | +#include "displayapp/screens/WatchFaceCasioStyleG7710.h" |
| 16 | + |
| 17 | +using namespace Pinetime::Applications::Screens; |
| 18 | +using namespace Pinetime::Applications; |
| 19 | + |
| 20 | +Clock::Clock(Controllers::DateTime& dateTimeController, |
| 21 | + const Controllers::Battery& batteryController, |
| 22 | + const Controllers::Ble& bleController, |
| 23 | + const Controllers::AlarmController& alarmController, |
| 24 | + Controllers::NotificationManager& notificationManager, |
| 25 | + Controllers::Settings& settingsController, |
| 26 | + Controllers::HeartRateController& heartRateController, |
| 27 | + Controllers::MotionController& motionController, |
| 28 | + Controllers::WeatherService& weatherService, |
| 29 | + Controllers::FS& filesystem) |
| 30 | + : dateTimeController {dateTimeController}, |
| 31 | + batteryController {batteryController}, |
| 32 | + bleController {bleController}, |
| 33 | + alarmController {alarmController}, |
| 34 | + notificationManager {notificationManager}, |
| 35 | + settingsController {settingsController}, |
| 36 | + heartRateController {heartRateController}, |
| 37 | + motionController {motionController}, |
| 38 | + weatherService {weatherService}, |
| 39 | + filesystem {filesystem}, |
| 40 | + screen {[this, &settingsController]() { |
| 41 | + switch (settingsController.GetWatchFace()) { |
| 42 | + case WatchFace::Digital: |
| 43 | + return WatchFaceDigitalScreen(); |
| 44 | + break; |
| 45 | + case WatchFace::Analog: |
| 46 | + return WatchFaceAnalogScreen(); |
| 47 | + break; |
| 48 | + case WatchFace::PineTimeStyle: |
| 49 | + return WatchFacePineTimeStyleScreen(); |
| 50 | + break; |
| 51 | + case WatchFace::Terminal: |
| 52 | + return WatchFaceTerminalScreen(); |
| 53 | + break; |
| 54 | + case WatchFace::Infineat: |
| 55 | + return WatchFaceInfineatScreen(); |
| 56 | + break; |
| 57 | + case WatchFace::CasioStyleG7710: |
| 58 | + return WatchFaceCasioStyleG7710(); |
| 59 | + break; |
| 60 | + } |
| 61 | + return WatchFaceDigitalScreen(); |
| 62 | + }()} { |
| 63 | + settingsController.SetAppMenu(0); |
| 64 | +} |
| 65 | + |
| 66 | +Clock::~Clock() { |
| 67 | + lv_obj_clean(lv_scr_act()); |
| 68 | +} |
| 69 | + |
| 70 | +bool Clock::OnTouchEvent(Pinetime::Applications::TouchEvents event) { |
| 71 | + return screen->OnTouchEvent(event); |
| 72 | +} |
| 73 | + |
| 74 | +bool Clock::OnButtonPushed() { |
| 75 | + return screen->OnButtonPushed(); |
| 76 | +} |
| 77 | + |
| 78 | +std::unique_ptr<Screen> Clock::WatchFaceDigitalScreen() { |
| 79 | + return std::make_unique<Screens::WatchFaceDigital>(dateTimeController, |
| 80 | + batteryController, |
| 81 | + bleController, |
| 82 | + alarmController, |
| 83 | + notificationManager, |
| 84 | + settingsController, |
| 85 | + heartRateController, |
| 86 | + motionController); |
| 87 | +} |
| 88 | + |
| 89 | +std::unique_ptr<Screen> Clock::WatchFaceAnalogScreen() { |
| 90 | + return std::make_unique<Screens::WatchFaceAnalog>(dateTimeController, |
| 91 | + batteryController, |
| 92 | + bleController, |
| 93 | + notificationManager, |
| 94 | + settingsController); |
| 95 | +} |
| 96 | + |
| 97 | +std::unique_ptr<Screen> Clock::WatchFacePineTimeStyleScreen() { |
| 98 | + return std::make_unique<Screens::WatchFacePineTimeStyle>(dateTimeController, |
| 99 | + batteryController, |
| 100 | + bleController, |
| 101 | + notificationManager, |
| 102 | + settingsController, |
| 103 | + motionController, |
| 104 | + weatherService); |
| 105 | +} |
| 106 | + |
| 107 | +std::unique_ptr<Screen> Clock::WatchFaceTerminalScreen() { |
| 108 | + return std::make_unique<Screens::WatchFaceTerminal>(dateTimeController, |
| 109 | + batteryController, |
| 110 | + bleController, |
| 111 | + notificationManager, |
| 112 | + settingsController, |
| 113 | + heartRateController, |
| 114 | + motionController); |
| 115 | +} |
| 116 | + |
| 117 | +std::unique_ptr<Screen> Clock::WatchFaceInfineatScreen() { |
| 118 | + return std::make_unique<Screens::WatchFaceInfineat>(dateTimeController, |
| 119 | + batteryController, |
| 120 | + bleController, |
| 121 | + notificationManager, |
| 122 | + settingsController, |
| 123 | + motionController, |
| 124 | + filesystem); |
| 125 | +} |
| 126 | + |
| 127 | +std::unique_ptr<Screen> Clock::WatchFaceCasioStyleG7710() { |
| 128 | + return std::make_unique<Screens::WatchFaceCasioStyleG7710>(dateTimeController, |
| 129 | + batteryController, |
| 130 | + bleController, |
| 131 | + notificationManager, |
| 132 | + settingsController, |
| 133 | + heartRateController, |
| 134 | + motionController, |
| 135 | + filesystem); |
| 136 | +} |
0 commit comments