summaryrefslogtreecommitdiff
path: root/src/displayapp/DisplayApp.cpp
diff options
context:
space:
mode:
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: