summaryrefslogtreecommitdiff
path: root/src/displayapp/DisplayApp.cpp
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2022-09-11 14:59:49 +0200
committerJean-François Milants <jf@codingfield.com>2022-09-11 14:59:49 +0200
commitada2c09581d2d13acfa5ce9a97671c0ec17863f1 (patch)
tree2f776adc59d0c63e403d2043cb8460e65d6c46fe /src/displayapp/DisplayApp.cpp
parent18cff286c75f432095db4b188e0f9a8a9e2bd8e8 (diff)
parentc9a5c3fa5c930a5939d3114a6c6b48570d61ca24 (diff)
Merge branch 'develop' into infineat-external-resources
# Conflicts: # src/displayapp/screens/Symbols.h # src/displayapp/screens/settings/SettingWatchFace.cpp # src/displayapp/screens/settings/SettingWatchFace.h
Diffstat (limited to 'src/displayapp/DisplayApp.cpp')
-rw-r--r--src/displayapp/DisplayApp.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index 411497e6..29684466 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -129,6 +129,10 @@ void DisplayApp::InitHw() {
}
void DisplayApp::Refresh() {
+ auto LoadPreviousScreen = [this]() {
+ LoadApp(returnToApp, returnDirection);
+ };
+
TickType_t queueTimeout;
switch (state) {
case States::Idle:
@@ -136,7 +140,7 @@ void DisplayApp::Refresh() {
break;
case States::Running:
if (!currentScreen->IsRunning()) {
- LoadApp(returnToApp, returnDirection);
+ LoadPreviousScreen();
}
queueTimeout = lv_task_handler();
break;
@@ -149,12 +153,10 @@ void DisplayApp::Refresh() {
if (xQueueReceive(msgQueue, &msg, queueTimeout)) {
switch (msg) {
case Messages::DimScreen:
- // Backup brightness is the brightness to return to after dimming or sleeping
- brightnessController.Backup();
brightnessController.Set(Controllers::BrightnessController::Levels::Low);
break;
case Messages::RestoreBrightness:
- brightnessController.Restore();
+ brightnessController.Set(settingsController.GetBrightness());
break;
case Messages::GoToSleep:
while (brightnessController.Level() != Controllers::BrightnessController::Levels::Off) {
@@ -165,7 +167,7 @@ void DisplayApp::Refresh() {
state = States::Idle;
break;
case Messages::GoToRunning:
- brightnessController.Restore();
+ brightnessController.Set(settingsController.GetBrightness());
state = States::Running;
break;
case Messages::UpdateTimeOut:
@@ -181,7 +183,7 @@ void DisplayApp::Refresh() {
case Messages::TimerDone:
if (currentApp == Apps::Timer) {
auto* timer = static_cast<Screens::Timer*>(currentScreen.get());
- timer->SetDone();
+ timer->Reset();
} else {
LoadApp(Apps::Timer, DisplayApp::FullRefreshDirections::Down);
}
@@ -224,9 +226,7 @@ void DisplayApp::Refresh() {
break;
}
} else if (returnTouchEvent == gesture) {
- LoadApp(returnToApp, returnDirection);
- brightnessController.Set(settingsController.GetBrightness());
- brightnessController.Backup();
+ LoadPreviousScreen();
}
} else {
touchHandler.CancelTap();
@@ -237,9 +237,7 @@ void DisplayApp::Refresh() {
if (currentApp == Apps::Clock) {
PushMessageToSystemTask(System::Messages::GoToSleep);
} else {
- LoadApp(returnToApp, returnDirection);
- brightnessController.Set(settingsController.GetBrightness());
- brightnessController.Backup();
+ LoadPreviousScreen();
}
}
break;
@@ -303,6 +301,8 @@ void DisplayApp::ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction
void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) {
touchHandler.CancelTap();
+ brightnessController.Set(settingsController.GetBrightness());
+
currentScreen.reset(nullptr);
SetFullRefresh(direction);
@@ -311,7 +311,8 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
switch (app) {
case Apps::Launcher:
- currentScreen = std::make_unique<Screens::ApplicationList>(this, settingsController, batteryController, dateTimeController);
+ currentScreen =
+ std::make_unique<Screens::ApplicationList>(this, settingsController, batteryController, bleController, dateTimeController);
ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::None:
@@ -367,7 +368,7 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
currentScreen = std::make_unique<Screens::Timer>(this, timerController);
break;
case Apps::Alarm:
- currentScreen = std::make_unique<Screens::Alarm>(this, alarmController, settingsController, *systemTask);
+ currentScreen = std::make_unique<Screens::Alarm>(this, alarmController, settingsController.GetClockType(), *systemTask);
break;
// Settings
@@ -377,7 +378,8 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
dateTimeController,
brightnessController,
motorController,
- settingsController);
+ settingsController,
+ bleController);
ReturnApp(Apps::Clock, FullRefreshDirections::LeftAnim, TouchEvents::SwipeLeft);
break;
case Apps::Settings: