From 7c7a8602c473bc160506e064097bd9ecc204425b Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Wed, 22 Feb 2023 22:05:37 +0200 Subject: [PATCH] screens: Remove displayapp parameter from screen The DisplayApp class isn't used in the Screen base class and most screens, so requiring it is pointless. In this commit, DisplayApp pointers were added to screens which use it and the explicit Screen constructor was removed in those screens. --- src/displayapp/screens/ApplicationList.cpp | 2 +- src/displayapp/screens/ApplicationList.h | 1 + src/displayapp/screens/Clock.cpp | 2 +- src/displayapp/screens/Clock.h | 1 + src/displayapp/screens/Label.cpp | 4 ++-- src/displayapp/screens/Label.h | 2 +- src/displayapp/screens/List.cpp | 2 +- src/displayapp/screens/List.h | 1 + src/displayapp/screens/Notifications.cpp | 2 +- src/displayapp/screens/Notifications.h | 1 + src/displayapp/screens/Screen.h | 5 +++-- src/displayapp/screens/ScreenList.h | 3 ++- src/displayapp/screens/SystemInfo.cpp | 12 ++++++------ src/displayapp/screens/SystemInfo.h | 1 + src/displayapp/screens/Tile.cpp | 2 +- src/displayapp/screens/Tile.h | 1 + src/displayapp/screens/Weather.cpp | 12 ++++++------ src/displayapp/screens/Weather.h | 1 + src/displayapp/screens/settings/QuickSettings.cpp | 2 +- src/displayapp/screens/settings/QuickSettings.h | 1 + src/displayapp/screens/settings/SettingBluetooth.cpp | 2 +- src/displayapp/screens/settings/SettingBluetooth.h | 1 + src/displayapp/screens/settings/SettingDisplay.cpp | 2 +- src/displayapp/screens/settings/SettingDisplay.h | 1 + .../screens/settings/SettingSetDateTime.cpp | 2 +- src/displayapp/screens/settings/SettingSetDateTime.h | 1 + src/displayapp/screens/settings/SettingWatchFace.cpp | 2 +- src/displayapp/screens/settings/SettingWatchFace.h | 1 + src/displayapp/screens/settings/Settings.cpp | 2 +- src/displayapp/screens/settings/Settings.h | 1 + 30 files changed, 44 insertions(+), 29 deletions(-) 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;