diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2022-10-02 21:58:04 +0300 |
|---|---|---|
| committer | JF <JF002@users.noreply.github.com> | 2023-01-05 15:13:05 +0100 |
| commit | 5ef3c0d3be58b6741a9e443e6d2151de2b3a59bc (patch) | |
| tree | 7976755030d9d7db436c0dc2bc0a3c1dbcb2f8ef /src/displayapp/DisplayApp.h | |
| parent | 361756979578c3cc9de7a8c9b999c78ba48eec88 (diff) | |
Implement a return app stack
Each opened app (screen) is pushed on a stack, which is then popped from
when returning instead of hard coded "previous apps". Return swipe and
refresh directions are automatically determined from the app transition.
Diffstat (limited to 'src/displayapp/DisplayApp.h')
| -rw-r--r-- | src/displayapp/DisplayApp.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 4c54e227..3c1829d5 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -20,6 +20,8 @@ #include "displayapp/Messages.h" #include "BootErrors.h" +#include "StaticStack.h" + namespace Pinetime { namespace Drivers { @@ -114,14 +116,18 @@ namespace Pinetime { 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); + void LoadNewScreen(Apps app, DisplayApp::FullRefreshDirections direction); + void LoadScreen(Apps app, DisplayApp::FullRefreshDirections direction); void PushMessageToSystemTask(Pinetime::System::Messages message); Apps nextApp = Apps::None; DisplayApp::FullRefreshDirections nextDirection; System::BootErrors bootError; void ApplyBrightness(); + + static constexpr size_t returnAppStackSize = 10; + StaticStack<Apps, returnAppStackSize> returnAppStack; + StaticStack<FullRefreshDirections, returnAppStackSize> appStackDirections; }; } } |
