summaryrefslogtreecommitdiff
path: root/src/displayapp/DisplayApp.cpp
diff options
context:
space:
mode:
authorKieran Cawthray <kieranc@gmail.com>2021-05-21 14:34:25 +0200
committerKieran Cawthray <kieranc@gmail.com>2021-05-21 14:34:25 +0200
commit565601ef5060cd4372be9e5bab130aff64f12223 (patch)
tree5f5156132be07cdb151ae56dca6c9e3cab259e32 /src/displayapp/DisplayApp.cpp
parent5c413016a7b9e78040fb8e5b48cd37b7963362df (diff)
parentf88c0f41fac506cc55e026cc67d1d5bce4669d31 (diff)
Merge remote-tracking branch 'upstream/develop' into pinetimestyle
Diffstat (limited to 'src/displayapp/DisplayApp.cpp')
-rw-r--r--src/displayapp/DisplayApp.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index a6c4a3ec..419b9f6f 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -2,6 +2,7 @@
#include <libraries/log/nrf_log.h>
#include <displayapp/screens/HeartRate.h>
#include <displayapp/screens/Motion.h>
+#include <displayapp/screens/Timer.h>
#include "components/battery/BatteryController.h"
#include "components/ble/BleController.h"
#include "components/datetime/DateTimeController.h"
@@ -55,7 +56,8 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd,
Pinetime::Controllers::HeartRateController& heartRateController,
Controllers::Settings& settingsController,
Pinetime::Controllers::MotorController& motorController,
- Pinetime::Controllers::MotionController& motionController)
+ Pinetime::Controllers::MotionController& motionController,
+ Pinetime::Controllers::TimerController& timerController)
: lcd {lcd},
lvgl {lvgl},
touchPanel {touchPanel},
@@ -68,7 +70,8 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd,
heartRateController {heartRateController},
settingsController {settingsController},
motorController {motorController},
- motionController {motionController} {
+ motionController {motionController},
+ timerController {timerController} {
msgQueue = xQueueCreate(queueSize, itemSize);
// Start clock when smartwatch boots
LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::None);
@@ -148,6 +151,14 @@ void DisplayApp::Refresh() {
case Messages::NewNotification:
LoadApp(Apps::NotificationsPreview, DisplayApp::FullRefreshDirections::Down);
break;
+ case Messages::TimerDone:
+ if (currentApp == Apps::Timer) {
+ auto *timer = dynamic_cast<Screens::Timer*>(currentScreen.get());
+ timer->setDone();
+ } else {
+ LoadApp(Apps::Timer, DisplayApp::FullRefreshDirections::Down);
+ }
+ break;
case Messages::TouchEvent: {
if (state != States::Running)
break;
@@ -264,6 +275,9 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Preview);
ReturnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp);
break;
+ case Apps::Timer:
+ currentScreen = std::make_unique<Screens::Timer>(this, timerController);
+ break;
// Settings
case Apps::QuickSettings: