summaryrefslogtreecommitdiff
path: root/src/displayapp/DisplayApp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/DisplayApp.h')
-rw-r--r--src/displayapp/DisplayApp.h56
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);
+
};
}
}