From 365e68e6cc3c9f893e7582d26a1805d6d51ef294 Mon Sep 17 00:00:00 2001 From: Joaquim Date: Mon, 5 Apr 2021 15:22:10 +0100 Subject: Fix wake up lock in twi optimize battery code --- src/systemtask/SystemTask.cpp | 26 ++++++++++++++++---------- src/systemtask/SystemTask.h | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) (limited to 'src/systemtask') diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 43e6f082..57d7fb17 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -167,6 +167,21 @@ void SystemTask::Work() { isSleeping = false; isWakingUp = false; break; + case Messages::TouchWakeUp: { + auto touchInfo = touchPanel.GetTouchInfo(); + if( touchInfo.isTouch and + ( + ( touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap and + settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::DoubleTap + ) or + ( touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::SingleTap and + settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::SingleTap + ) + ) + ) { + GoToRunning(); + } + } break; case Messages::GoToSleep: isGoingToSleep = true; NRF_LOG_INFO("[systemtask] Going to sleep"); @@ -276,16 +291,7 @@ void SystemTask::OnTouchEvent() { } else if(!isWakingUp) { if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::None or settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist ) return; - - if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::SingleTap ) { - GoToRunning(); - } else if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::DoubleTap ) { - - auto info = touchPanel.GetTouchInfo(); - if( info.isTouch and info.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap ) { - GoToRunning(); - } - } + PushMessage(Messages::TouchWakeUp); } } diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index fda951bd..9d0b41ad 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -37,7 +37,7 @@ namespace Pinetime { namespace System { class SystemTask { public: - enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification, OnNewCall, BleConnected, UpdateTimeOut, + enum class Messages {GoToSleep, GoToRunning, TouchWakeUp, OnNewTime, OnNewNotification, OnNewCall, BleConnected, UpdateTimeOut, BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent, OnDisplayTaskSleeping, EnableSleeping, DisableSleeping }; -- cgit v1.2.3-70-g09d2