InfiniTime.git

commit 62de76ba99f28eccbe72bbf132ae64cd05eaf6b6

Author: JF <jf@codingfield.com>

Automatically switch the display on when receiving a notification

 src/SystemTask/SystemTask.cpp | 15 ++++++++++-----
 src/SystemTask/SystemTask.h | 1 +


diff --git a/src/SystemTask/SystemTask.cpp b/src/SystemTask/SystemTask.cpp
index 1f01b1b5393e65560e6f91daacef007b2f04c45e..39e9751b9aeb20ae8a3b504b43f6677586c4d027 100644
--- a/src/SystemTask/SystemTask.cpp
+++ b/src/SystemTask/SystemTask.cpp
@@ -120,15 +120,15 @@           displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::GoToSleep);
           isSleeping = true;
           break;
         case Messages::OnNewTime:
-          xTimerReset(idleTimer, 0);
+          ReloadIdleTimer();
           displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::UpdateDateTime);
           break;
         case Messages::OnNewNotification:
-          xTimerReset(idleTimer, 0);
+          if(isSleeping) GoToRunning();
           displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::NewNotification);
           break;
         case Messages::BleConnected:
-          xTimerReset(idleTimer, 0);
+          ReloadIdleTimer();
           isBleDiscoveryTimerRunning = true;
           bleDiscoveryTimer = 5;
           break;
@@ -145,10 +145,10 @@           if(bleController.State() == Pinetime::Controllers::Ble::FirmwareUpdateStates::Validated)
             NVIC_SystemReset();
           break;
         case Messages::OnTouchEvent:
-          xTimerReset(idleTimer, 0);
+          ReloadIdleTimer();
           break;
         case Messages::OnButtonEvent:
-          xTimerReset(idleTimer, 0);
+          ReloadIdleTimer();
           break;
         default: break;
       }
@@ -217,3 +217,8 @@   if(doNotGoToSleep) return;
   NRF_LOG_INFO("Idle timeout -> Going to sleep")
   PushMessage(Messages::GoToSleep);
 }
+
+void SystemTask::ReloadIdleTimer() const {
+  if(isSleeping) return;
+  xTimerReset(idleTimer, 0);
+}




diff --git a/src/SystemTask/SystemTask.h b/src/SystemTask/SystemTask.h
index e006058f451c676b00cd79e09979436e235ed08b..860647a12848757c9cb1fbc6c798efdbc606522e 100644
--- a/src/SystemTask/SystemTask.h
+++ b/src/SystemTask/SystemTask.h
@@ -66,6 +66,7 @@         static constexpr uint8_t pinTouchIrq = 28;
 
         static void Process(void* instance);
         void Work();
+        void ReloadIdleTimer() const;
         bool isBleDiscoveryTimerRunning = false;
         uint8_t bleDiscoveryTimer = 0;
         static constexpr uint32_t idleTime = 15000;