summaryrefslogtreecommitdiff
path: root/src/systemtask/SystemTask.cpp
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2021-07-22 22:57:45 +0300
committerGitHub <noreply@github.com>2021-07-22 21:57:45 +0200
commit0a0f28fff4be4c9fd9030d9375459fb7b5fdd004 (patch)
tree5e6383350f57dec4c4b14d0393020cdc472e33a0 /src/systemtask/SystemTask.cpp
parent57b339707861c5688f5d432f1506a99df6bb0fce (diff)
Make firmware updating more foolproof (#469)
* Make firmware updating more foolproof and fix bugs * No need to manually handle overflow * Make startTime TickType_t * Don't process TouchEvents::None * Fix sleep getting re-enabled issue more directly
Diffstat (limited to 'src/systemtask/SystemTask.cpp')
-rw-r--r--src/systemtask/SystemTask.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index d8b965b1..7efd1d6b 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -198,7 +198,11 @@ void SystemTask::Work() {
Messages message = static_cast<Messages>(msg);
switch (message) {
case Messages::EnableSleeping:
- doNotGoToSleep = false;
+ // Make sure that exiting an app doesn't enable sleeping,
+ // if the exiting was caused by a firmware update
+ if (!bleController.IsFirmwareUpdating()) {
+ doNotGoToSleep = false;
+ }
break;
case Messages::DisableSleeping:
doNotGoToSleep = true;
@@ -275,10 +279,11 @@ void SystemTask::Work() {
displayApp.PushMessage(Pinetime::Applications::Display::Messages::BleFirmwareUpdateStarted);
break;
case Messages::BleFirmwareUpdateFinished:
+ if (bleController.State() == Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated) {
+ NVIC_SystemReset();
+ }
doNotGoToSleep = false;
xTimerStart(idleTimer, 0);
- if (bleController.State() == Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated)
- NVIC_SystemReset();
break;
case Messages::OnTouchEvent:
ReloadIdleTimer();