diff --git a/src/displayapp/screens/ApplicationList.cpp b/src/displayapp/screens/ApplicationList.cpp index d5f815db..0a65a5d4 100644 --- a/src/displayapp/screens/ApplicationList.cpp +++ b/src/displayapp/screens/ApplicationList.cpp @@ -23,7 +23,7 @@ ApplicationList::ApplicationList(Pinetime::Applications::DisplayApp* app, const Pinetime::Controllers::Battery& batteryController, const Pinetime::Controllers::Ble& bleController, Controllers::DateTime& dateTimeController) - : Screen(app), + : app {app}, settingsController {settingsController}, batteryController {batteryController}, bleController {bleController}, diff --git a/src/displayapp/screens/ApplicationList.h b/src/displayapp/screens/ApplicationList.h index eff4c8a6..4a9b347f 100644 --- a/src/displayapp/screens/ApplicationList.h +++ b/src/displayapp/screens/ApplicationList.h @@ -25,6 +25,7 @@ namespace Pinetime { bool OnTouchEvent(TouchEvents event) override; private: + DisplayApp* app; auto CreateScreenList() const; std::unique_ptr CreateScreen(unsigned int screenNum) const; diff --git a/src/displayapp/screens/Clock.cpp b/src/displayapp/screens/Clock.cpp index 640a393d..8627fb45 100644 --- a/src/displayapp/screens/Clock.cpp +++ b/src/displayapp/screens/Clock.cpp @@ -26,7 +26,7 @@ Clock::Clock(DisplayApp* app, Controllers::HeartRateController& heartRateController, Controllers::MotionController& motionController, Controllers::FS& filesystem) - : Screen(app), + : app {app}, dateTimeController {dateTimeController}, batteryController {batteryController}, bleController {bleController}, diff --git a/src/displayapp/screens/Clock.h b/src/displayapp/screens/Clock.h index dd97fa9b..8cd92090 100644 --- a/src/displayapp/screens/Clock.h +++ b/src/displayapp/screens/Clock.h @@ -36,6 +36,7 @@ namespace Pinetime { bool OnButtonPushed() override; private: + DisplayApp* app; Controllers::DateTime& dateTimeController; const Controllers::Battery& batteryController; const Controllers::Ble& bleController; diff --git a/src/displayapp/screens/Label.cpp b/src/displayapp/screens/Label.cpp index d5a09be9..e85e2a5a 100644 --- a/src/displayapp/screens/Label.cpp +++ b/src/displayapp/screens/Label.cpp @@ -2,8 +2,8 @@ using namespace Pinetime::Applications::Screens; -Label::Label(uint8_t screenID, uint8_t numScreens, Pinetime::Applications::DisplayApp* app, lv_obj_t* labelText) - : Screen(app), labelText {labelText}, pageIndicator(screenID, numScreens) { +Label::Label(uint8_t screenID, uint8_t numScreens, lv_obj_t* labelText) + : labelText {labelText}, pageIndicator(screenID, numScreens) { pageIndicator.Create(); } diff --git a/src/displayapp/screens/Label.h b/src/displayapp/screens/Label.h index acd8b377..33c5ff96 100644 --- a/src/displayapp/screens/Label.h +++ b/src/displayapp/screens/Label.h @@ -10,7 +10,7 @@ namespace Pinetime { class Label : public Screen { public: - Label(uint8_t screenID, uint8_t numScreens, DisplayApp* app, lv_obj_t* labelText); + Label(uint8_t screenID, uint8_t numScreens, lv_obj_t* labelText); ~Label() override; private: diff --git a/src/displayapp/screens/List.cpp b/src/displayapp/screens/List.cpp index 3f219ea1..264b4fc9 100644 --- a/src/displayapp/screens/List.cpp +++ b/src/displayapp/screens/List.cpp @@ -17,7 +17,7 @@ List::List(uint8_t screenID, DisplayApp* app, Controllers::Settings& settingsController, std::array& applications) - : Screen(app), settingsController {settingsController}, pageIndicator(screenID, numScreens) { + : app {app}, settingsController {settingsController}, pageIndicator(screenID, numScreens) { // Set the background to Black lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, lv_color_make(0, 0, 0)); diff --git a/src/displayapp/screens/List.h b/src/displayapp/screens/List.h index b5bc032c..564229e6 100644 --- a/src/displayapp/screens/List.h +++ b/src/displayapp/screens/List.h @@ -31,6 +31,7 @@ namespace Pinetime { void OnButtonEvent(lv_obj_t* object, lv_event_t event); private: + DisplayApp* app; Controllers::Settings& settingsController; Pinetime::Applications::Apps apps[MAXLISTITEMS]; diff --git a/src/displayapp/screens/Notifications.cpp b/src/displayapp/screens/Notifications.cpp index 6c68c70d..037c43a7 100644 --- a/src/displayapp/screens/Notifications.cpp +++ b/src/displayapp/screens/Notifications.cpp @@ -16,7 +16,7 @@ Notifications::Notifications(DisplayApp* app, Pinetime::Controllers::MotorController& motorController, System::SystemTask& systemTask, Modes mode) - : Screen(app), + : app {app}, notificationManager {notificationManager}, alertNotificationService {alertNotificationService}, motorController {motorController}, diff --git a/src/displayapp/screens/Notifications.h b/src/displayapp/screens/Notifications.h index a4d2709b..114316b3 100644 --- a/src/displayapp/screens/Notifications.h +++ b/src/displayapp/screens/Notifications.h @@ -69,6 +69,7 @@ namespace Pinetime { }; private: + DisplayApp* app; Pinetime::Controllers::NotificationManager& notificationManager; Pinetime::Controllers::AlertNotificationService& alertNotificationService; Pinetime::Controllers::MotorController& motorController; diff --git a/src/displayapp/screens/Screen.h b/src/displayapp/screens/Screen.h index 73f80191..60d73e56 100644 --- a/src/displayapp/screens/Screen.h +++ b/src/displayapp/screens/Screen.h @@ -50,9 +50,11 @@ namespace Pinetime { } public: - explicit Screen(DisplayApp* app) : app {app} { + explicit Screen(DisplayApp* app) { } + explicit Screen() = default; + virtual ~Screen() = default; static void RefreshTaskCallback(lv_task_t* task); @@ -77,7 +79,6 @@ namespace Pinetime { } protected: - DisplayApp* app; bool running = true; }; } diff --git a/src/displayapp/screens/ScreenList.h b/src/displayapp/screens/ScreenList.h index 255544b6..78f32314 100644 --- a/src/displayapp/screens/ScreenList.h +++ b/src/displayapp/screens/ScreenList.h @@ -19,7 +19,7 @@ namespace Pinetime { uint8_t initScreen, const std::array()>, N>&& screens, ScreenListModes mode) - : Screen(app), + : app {app}, initScreen {initScreen}, screens {std::move(screens)}, mode {mode}, @@ -102,6 +102,7 @@ namespace Pinetime { } private: + DisplayApp* app; uint8_t initScreen = 0; const std::array()>, N> screens; ScreenListModes mode = ScreenListModes::UpDown; diff --git a/src/displayapp/screens/SystemInfo.cpp b/src/displayapp/screens/SystemInfo.cpp index 7b399bd2..a63fc287 100644 --- a/src/displayapp/screens/SystemInfo.cpp +++ b/src/displayapp/screens/SystemInfo.cpp @@ -38,7 +38,7 @@ SystemInfo::SystemInfo(Pinetime::Applications::DisplayApp* app, Pinetime::Drivers::WatchdogView& watchdog, Pinetime::Controllers::MotionController& motionController, const Pinetime::Drivers::Cst816S& touchPanel) - : Screen(app), + : app {app}, dateTimeController {dateTimeController}, batteryController {batteryController}, brightnessController {brightnessController}, @@ -94,7 +94,7 @@ std::unique_ptr SystemInfo::CreateScreen1() { BootloaderVersion::VersionString()); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::make_unique(0, 5, app, label); + return std::make_unique(0, 5, label); } std::unique_ptr SystemInfo::CreateScreen2() { @@ -173,7 +173,7 @@ std::unique_ptr SystemInfo::CreateScreen2() { touchPanel.GetFwVersion(), TARGET_DEVICE_NAME); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::make_unique(1, 5, app, label); + return std::make_unique(1, 5, label); } std::unique_ptr SystemInfo::CreateScreen3() { @@ -204,7 +204,7 @@ std::unique_ptr SystemInfo::CreateScreen3() { mon.frag_pct, static_cast(mon.free_biggest_size)); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::make_unique(2, 5, app, label); + return std::make_unique(2, 5, label); } bool SystemInfo::sortById(const TaskStatus_t& lhs, const TaskStatus_t& rhs) { @@ -265,7 +265,7 @@ std::unique_ptr SystemInfo::CreateScreen4() { } lv_table_set_cell_value(infoTask, i + 1, 3, buffer); } - return std::make_unique(3, 5, app, infoTask); + return std::make_unique(3, 5, infoTask); } std::unique_ptr SystemInfo::CreateScreen5() { @@ -282,5 +282,5 @@ std::unique_ptr SystemInfo::CreateScreen5() { "#FFFF00 InfiniTime#"); lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::make_unique(4, 5, app, label); + return std::make_unique(4, 5, label); } diff --git a/src/displayapp/screens/SystemInfo.h b/src/displayapp/screens/SystemInfo.h index ec9285d7..7624afbc 100644 --- a/src/displayapp/screens/SystemInfo.h +++ b/src/displayapp/screens/SystemInfo.h @@ -34,6 +34,7 @@ namespace Pinetime { bool OnTouchEvent(TouchEvents event) override; private: + DisplayApp* app; Pinetime::Controllers::DateTime& dateTimeController; const Pinetime::Controllers::Battery& batteryController; Pinetime::Controllers::BrightnessController& brightnessController; diff --git a/src/displayapp/screens/Tile.cpp b/src/displayapp/screens/Tile.cpp index fafcfd87..4d9ee163 100644 --- a/src/displayapp/screens/Tile.cpp +++ b/src/displayapp/screens/Tile.cpp @@ -32,7 +32,7 @@ Tile::Tile(uint8_t screenID, const Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, std::array& applications) - : Screen(app), + : app {app}, dateTimeController {dateTimeController}, pageIndicator(screenID, numScreens), statusIcons(batteryController, bleController) { diff --git a/src/displayapp/screens/Tile.h b/src/displayapp/screens/Tile.h index c067f29b..91acb26c 100644 --- a/src/displayapp/screens/Tile.h +++ b/src/displayapp/screens/Tile.h @@ -36,6 +36,7 @@ namespace Pinetime { void OnValueChangedEvent(lv_obj_t* obj, uint32_t buttonId); private: + DisplayApp* app; Controllers::DateTime& dateTimeController; lv_task_t* taskUpdate; diff --git a/src/displayapp/screens/Weather.cpp b/src/displayapp/screens/Weather.cpp index ff067db8..4921174c 100644 --- a/src/displayapp/screens/Weather.cpp +++ b/src/displayapp/screens/Weather.cpp @@ -26,7 +26,7 @@ using namespace Pinetime::Applications::Screens; Weather::Weather(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::WeatherService& weather) - : Screen(app), + : app {app}, weatherService(weather), screens {app, 0, @@ -97,7 +97,7 @@ std::unique_ptr Weather::CreateScreenTemperature() { } lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(0, 5, app, label)); + return std::unique_ptr(new Screens::Label(0, 5, label)); } std::unique_ptr Weather::CreateScreenAir() { @@ -130,7 +130,7 @@ std::unique_ptr Weather::CreateScreenAir() { } lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(0, 5, app, label)); + return std::unique_ptr(new Screens::Label(0, 5, label)); } std::unique_ptr Weather::CreateScreenClouds() { @@ -159,7 +159,7 @@ std::unique_ptr Weather::CreateScreenClouds() { } lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(0, 5, app, label)); + return std::unique_ptr(new Screens::Label(0, 5, label)); } std::unique_ptr Weather::CreateScreenPrecipitation() { @@ -188,7 +188,7 @@ std::unique_ptr Weather::CreateScreenPrecipitation() { } lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(0, 5, app, label)); + return std::unique_ptr(new Screens::Label(0, 5, label)); } std::unique_ptr Weather::CreateScreenHumidity() { @@ -217,5 +217,5 @@ std::unique_ptr Weather::CreateScreenHumidity() { } lv_label_set_align(label, LV_LABEL_ALIGN_CENTER); lv_obj_align(label, lv_scr_act(), LV_ALIGN_CENTER, 0, 0); - return std::unique_ptr(new Screens::Label(0, 5, app, label)); + return std::unique_ptr(new Screens::Label(0, 5, label)); } diff --git a/src/displayapp/screens/Weather.h b/src/displayapp/screens/Weather.h index 21b05bd8..459534aa 100644 --- a/src/displayapp/screens/Weather.h +++ b/src/displayapp/screens/Weather.h @@ -23,6 +23,7 @@ namespace Pinetime { bool OnTouchEvent(TouchEvents event) override; private: + DisplayApp* app; bool running = true; Controllers::WeatherService& weatherService; diff --git a/src/displayapp/screens/settings/QuickSettings.cpp b/src/displayapp/screens/settings/QuickSettings.cpp index c98b5cee..05484888 100644 --- a/src/displayapp/screens/settings/QuickSettings.cpp +++ b/src/displayapp/screens/settings/QuickSettings.cpp @@ -34,7 +34,7 @@ QuickSettings::QuickSettings(Pinetime::Applications::DisplayApp* app, Controllers::MotorController& motorController, Pinetime::Controllers::Settings& settingsController, const Controllers::Ble& bleController) - : Screen(app), + : app {app}, dateTimeController {dateTimeController}, brightness {brightness}, motorController {motorController}, diff --git a/src/displayapp/screens/settings/QuickSettings.h b/src/displayapp/screens/settings/QuickSettings.h index 6f03bc22..55da6176 100644 --- a/src/displayapp/screens/settings/QuickSettings.h +++ b/src/displayapp/screens/settings/QuickSettings.h @@ -32,6 +32,7 @@ namespace Pinetime { void UpdateScreen(); private: + DisplayApp* app; Controllers::DateTime& dateTimeController; Controllers::BrightnessController& brightness; Controllers::MotorController& motorController; diff --git a/src/displayapp/screens/settings/SettingBluetooth.cpp b/src/displayapp/screens/settings/SettingBluetooth.cpp index fd07be88..75a62d89 100644 --- a/src/displayapp/screens/settings/SettingBluetooth.cpp +++ b/src/displayapp/screens/settings/SettingBluetooth.cpp @@ -35,7 +35,7 @@ namespace { } SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) - : Screen(app), + : app {app}, checkboxList( 0, 1, diff --git a/src/displayapp/screens/settings/SettingBluetooth.h b/src/displayapp/screens/settings/SettingBluetooth.h index 611a0d5c..1e3f9b81 100644 --- a/src/displayapp/screens/settings/SettingBluetooth.h +++ b/src/displayapp/screens/settings/SettingBluetooth.h @@ -19,6 +19,7 @@ namespace Pinetime { ~SettingBluetooth() override; private: + DisplayApp* app; CheckboxList checkboxList; }; } diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp index e044a85a..a9476432 100644 --- a/src/displayapp/screens/settings/SettingDisplay.cpp +++ b/src/displayapp/screens/settings/SettingDisplay.cpp @@ -18,7 +18,7 @@ namespace { constexpr std::array SettingDisplay::options; SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) - : Screen(app), settingsController {settingsController} { + : app {app}, settingsController {settingsController} { lv_obj_t* container1 = lv_cont_create(lv_scr_act(), nullptr); diff --git a/src/displayapp/screens/settings/SettingDisplay.h b/src/displayapp/screens/settings/SettingDisplay.h index eeddaef8..64212c02 100644 --- a/src/displayapp/screens/settings/SettingDisplay.h +++ b/src/displayapp/screens/settings/SettingDisplay.h @@ -20,6 +20,7 @@ namespace Pinetime { void UpdateSelected(lv_obj_t* object, lv_event_t event); private: + DisplayApp* app; static constexpr std::array options = {5000, 7000, 10000, 15000, 20000, 30000}; Controllers::Settings& settingsController; diff --git a/src/displayapp/screens/settings/SettingSetDateTime.cpp b/src/displayapp/screens/settings/SettingSetDateTime.cpp index 905a76ab..6a06aae4 100644 --- a/src/displayapp/screens/settings/SettingSetDateTime.cpp +++ b/src/displayapp/screens/settings/SettingSetDateTime.cpp @@ -15,7 +15,7 @@ bool SettingSetDateTime::OnTouchEvent(Pinetime::Applications::TouchEvents event) SettingSetDateTime::SettingSetDateTime(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::DateTime& dateTimeController, Pinetime::Controllers::Settings& settingsController) - : Screen(app), + : app {app}, dateTimeController {dateTimeController}, settingsController {settingsController}, screens {app, diff --git a/src/displayapp/screens/settings/SettingSetDateTime.h b/src/displayapp/screens/settings/SettingSetDateTime.h index dea283f8..051b1abe 100644 --- a/src/displayapp/screens/settings/SettingSetDateTime.h +++ b/src/displayapp/screens/settings/SettingSetDateTime.h @@ -20,6 +20,7 @@ namespace Pinetime { void Quit(); private: + DisplayApp* app; Controllers::DateTime& dateTimeController; Controllers::Settings& settingsController; diff --git a/src/displayapp/screens/settings/SettingWatchFace.cpp b/src/displayapp/screens/settings/SettingWatchFace.cpp index da32b5ee..03ff3b8b 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.cpp +++ b/src/displayapp/screens/settings/SettingWatchFace.cpp @@ -22,7 +22,7 @@ auto SettingWatchFace::CreateScreenList() const { SettingWatchFace::SettingWatchFace(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController, Pinetime::Controllers::FS& filesystem) - : Screen(app), + : app {app}, settingsController {settingsController}, filesystem {filesystem}, screens {app, 0, CreateScreenList(), Screens::ScreenListModes::UpDown} { diff --git a/src/displayapp/screens/settings/SettingWatchFace.h b/src/displayapp/screens/settings/SettingWatchFace.h index 7b8cdcdc..45a50e3d 100644 --- a/src/displayapp/screens/settings/SettingWatchFace.h +++ b/src/displayapp/screens/settings/SettingWatchFace.h @@ -25,6 +25,7 @@ namespace Pinetime { bool OnTouchEvent(TouchEvents event) override; private: + DisplayApp* app; auto CreateScreenList() const; std::unique_ptr CreateScreen(unsigned int screenNum) const; diff --git a/src/displayapp/screens/settings/Settings.cpp b/src/displayapp/screens/settings/Settings.cpp index ffa01d18..065417fa 100644 --- a/src/displayapp/screens/settings/Settings.cpp +++ b/src/displayapp/screens/settings/Settings.cpp @@ -19,7 +19,7 @@ auto Settings::CreateScreenList() const { } Settings::Settings(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) - : Screen(app), + : app {app}, settingsController {settingsController}, screens {app, settingsController.GetSettingsMenu(), CreateScreenList(), Screens::ScreenListModes::UpDown} { } diff --git a/src/displayapp/screens/settings/Settings.h b/src/displayapp/screens/settings/Settings.h index b88c13b7..3f809753 100644 --- a/src/displayapp/screens/settings/Settings.h +++ b/src/displayapp/screens/settings/Settings.h @@ -20,6 +20,7 @@ namespace Pinetime { bool OnTouchEvent(Pinetime::Applications::TouchEvents event) override; private: + DisplayApp* app; auto CreateScreenList() const; std::unique_ptr CreateScreen(unsigned int screenNum) const;