diff options
author | Jean-François Milants <jf@codingfield.com> | 2021-04-09 20:47:24 +0200 |
---|---|---|
committer | Jean-François Milants <jf@codingfield.com> | 2021-04-09 20:47:24 +0200 |
commit | 63584b6561cbc31095354b06e356f700dcf0e32b (patch) | |
tree | b8ee17d8bfdc57c3b80b7c918f3431d198939856 /src/displayapp/DisplayApp.h | |
parent | 3934e9bef20c5c2ad393e20cfff3a5a1b0d24569 (diff) | |
parent | 9096d1db4c6be9f4a2cc8af99a994c219f25108c (diff) |
Merge branch 'develop' into notification-title
# Conflicts:
# src/displayapp/screens/Notifications.cpp
Diffstat (limited to 'src/displayapp/DisplayApp.h')
-rw-r--r-- | src/displayapp/DisplayApp.h | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index c22aa1f2..ec597431 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -36,7 +36,7 @@ namespace Pinetime { class DisplayApp { public: enum class States {Idle, Running}; - enum class FullRefreshDirections { None, Up, Down }; + enum class FullRefreshDirections { None, Up, Down, Left, Right, LeftAnim, RightAnim }; enum class TouchModes { Gestures, Polling }; DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Drivers::Cst816S &, @@ -50,48 +50,54 @@ namespace Pinetime { void Start(); void PushMessage(Display::Messages msg); - void StartApp(Apps app); + void StartApp(Apps app, DisplayApp::FullRefreshDirections direction); void SetFullRefresh(FullRefreshDirections direction); void SetTouchMode(TouchModes mode); private: - TaskHandle_t taskHandle; - static void Process(void* instance); - void InitHw(); + Pinetime::Drivers::St7789& lcd; Pinetime::Components::LittleVgl& lvgl; - void Refresh(); + Pinetime::Drivers::Cst816S& touchPanel; + Pinetime::Controllers::Battery &batteryController; + Pinetime::Controllers::Ble &bleController; + Pinetime::Controllers::DateTime& dateTimeController; + Pinetime::Drivers::WatchdogView& watchdog; + Pinetime::System::SystemTask& systemTask; + Pinetime::Controllers::NotificationManager& notificationManager; + Pinetime::Controllers::HeartRateController& heartRateController; + Pinetime::Controllers::Settings& settingsController; + + Pinetime::Controllers::FirmwareValidator validator; + Controllers::BrightnessController brightnessController; + + TaskHandle_t taskHandle; States state = States::Running; - void RunningState(); - void IdleState(); QueueHandle_t msgQueue; static constexpr uint8_t queueSize = 10; static constexpr uint8_t itemSize = 1; - Pinetime::Controllers::Battery &batteryController; - Pinetime::Controllers::Ble &bleController; - Pinetime::Controllers::DateTime& dateTimeController; - Pinetime::Drivers::WatchdogView& watchdog; - - Pinetime::Drivers::Cst816S& touchPanel; - TouchEvents OnTouchEvent(); - std::unique_ptr<Screens::Screen> currentScreen; - bool isClock = true; + Apps currentApp = Apps::None; + Apps returnToApp = Apps::None; + FullRefreshDirections returnDirection = FullRefreshDirections::None; + TouchEvents returnTouchEvent = TouchEvents::None; - Pinetime::System::SystemTask& systemTask; - Apps nextApp = Apps::None; - bool onClockApp = false; // TODO find a better way to know that we should handle gestures and button differently for the Clock app. - Controllers::BrightnessController brightnessController; - Pinetime::Controllers::NotificationManager& notificationManager; - Pinetime::Controllers::FirmwareValidator validator; TouchModes touchMode = TouchModes::Gestures; - Pinetime::Controllers::HeartRateController& heartRateController; - Pinetime::Controllers::Settings& settingsController; + + TouchEvents OnTouchEvent(); + void RunningState(); + void IdleState(); + static void Process(void* instance); + void InitHw(); + void Refresh(); + void returnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent); + void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction); + }; } } |