summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2022-10-02 18:04:09 +0200
committerJean-François Milants <jf@codingfield.com>2022-10-02 18:04:09 +0200
commitc9b1fb82446390be637374bb11ca53770c9d09f5 (patch)
tree8abccbf131ca5e60e549464160470eadb83e8d0b
parent60abbf0639d14334a27569da7cec71c447a2ab92 (diff)
Brightness management in DisplayApp : do not allow the brightness level OFF when loading app and going to running mode. Such issue could occur in case of inconsistent or corrupted settings.
-rw-r--r--src/displayapp/DisplayApp.cpp17
-rw-r--r--src/displayapp/DisplayApp.h1
2 files changed, 14 insertions, 4 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index aa2c037e..85c6da3e 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -127,7 +127,7 @@ void DisplayApp::Process(void* instance) {
void DisplayApp::InitHw() {
brightnessController.Init();
- brightnessController.Set(settingsController.GetBrightness());
+ ApplyBrightness();
}
void DisplayApp::Refresh() {
@@ -158,7 +158,7 @@ void DisplayApp::Refresh() {
brightnessController.Set(Controllers::BrightnessController::Levels::Low);
break;
case Messages::RestoreBrightness:
- brightnessController.Set(settingsController.GetBrightness());
+ ApplyBrightness();
break;
case Messages::GoToSleep:
while (brightnessController.Level() != Controllers::BrightnessController::Levels::Off) {
@@ -169,7 +169,7 @@ void DisplayApp::Refresh() {
state = States::Idle;
break;
case Messages::GoToRunning:
- brightnessController.Set(settingsController.GetBrightness());
+ ApplyBrightness();
state = States::Running;
break;
case Messages::UpdateTimeOut:
@@ -303,7 +303,7 @@ void DisplayApp::ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction
void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) {
touchHandler.CancelTap();
- brightnessController.Set(settingsController.GetBrightness());
+ ApplyBrightness();
currentScreen.reset(nullptr);
SetFullRefresh(direction);
@@ -530,3 +530,12 @@ void DisplayApp::PushMessageToSystemTask(Pinetime::System::Messages message) {
void DisplayApp::Register(Pinetime::System::SystemTask* systemTask) {
this->systemTask = systemTask;
}
+void DisplayApp::ApplyBrightness() {
+ auto brightness = settingsController.GetBrightness();
+ if(brightness != Controllers::BrightnessController::Levels::Low &&
+ brightness != Controllers::BrightnessController::Levels::Medium &&
+ brightness != Controllers::BrightnessController::Levels::High) {
+ brightness = Controllers::BrightnessController::Levels::High;
+ }
+ brightnessController.Set(brightness);
+}
diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h
index ae605114..4c54e227 100644
--- a/src/displayapp/DisplayApp.h
+++ b/src/displayapp/DisplayApp.h
@@ -121,6 +121,7 @@ namespace Pinetime {
Apps nextApp = Apps::None;
DisplayApp::FullRefreshDirections nextDirection;
System::BootErrors bootError;
+ void ApplyBrightness();
};
}
}