aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/DisplayApp.h
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2022-10-02 21:58:04 +0300
committerJF <JF002@users.noreply.github.com>2023-01-05 15:13:05 +0100
commit5ef3c0d3be58b6741a9e443e6d2151de2b3a59bc (patch)
tree7976755030d9d7db436c0dc2bc0a3c1dbcb2f8ef /src/displayapp/DisplayApp.h
parent361756979578c3cc9de7a8c9b999c78ba48eec88 (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.h10
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;
};
}
}