aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormark9064 <30447455+mark9064@users.noreply.github.com>2024-09-28 00:13:27 +0100
committerJF <JF002@users.noreply.github.com>2024-10-27 19:51:01 +0100
commit00769625881e318e6fe29e926c7bd944c5f049bd (patch)
tree3141816b6db11cfc4ea03ef362c630d3e3376949
parente6ee5485368d9ec34882b5bfe9e7eac590db80ca (diff)
Unify touch panel handling
-rw-r--r--src/systemtask/Messages.h1
-rw-r--r--src/systemtask/SystemTask.cpp40
2 files changed, 17 insertions, 24 deletions
diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h
index 39fb4114..fee94bb7 100644
--- a/src/systemtask/Messages.h
+++ b/src/systemtask/Messages.h
@@ -6,7 +6,6 @@ namespace Pinetime {
enum class Messages : uint8_t {
GoToSleep,
GoToRunning,
- TouchWakeUp,
OnNewTime,
OnNewNotification,
OnNewCall,
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index 1bfae4c6..ed0fd744 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -198,20 +198,6 @@ void SystemTask::Work() {
case Messages::GoToRunning:
GoToRunning();
break;
- case Messages::TouchWakeUp: {
- if (touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
- auto gesture = touchHandler.GestureGet();
- if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
- gesture != Pinetime::Applications::TouchEvents::None &&
- ((gesture == Pinetime::Applications::TouchEvents::DoubleTap &&
- settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) ||
- (gesture == Pinetime::Applications::TouchEvents::Tap &&
- settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)))) {
- GoToRunning();
- }
- }
- break;
- }
case Messages::GoToSleep:
GoToSleep();
break;
@@ -260,8 +246,23 @@ void SystemTask::Work() {
// TODO add intent of fs access icon or something
break;
case Messages::OnTouchEvent:
- if (touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
+ // Finish immediately if no new events
+ if (!touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
+ break;
+ }
+ if (state == SystemTaskState::Running) {
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent);
+ } else {
+ // If asleep, check for touch panel wake triggers
+ auto gesture = touchHandler.GestureGet();
+ if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
+ gesture != Pinetime::Applications::TouchEvents::None &&
+ ((gesture == Pinetime::Applications::TouchEvents::DoubleTap &&
+ settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) ||
+ (gesture == Pinetime::Applications::TouchEvents::Tap &&
+ settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)))) {
+ GoToRunning();
+ }
}
break;
case Messages::HandleButtonEvent: {
@@ -493,14 +494,7 @@ void SystemTask::HandleButtonAction(Controllers::ButtonActions action) {
}
void SystemTask::OnTouchEvent() {
- if (state == SystemTaskState::Running) {
- PushMessage(Messages::OnTouchEvent);
- } else {
- if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap) or
- settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
- PushMessage(Messages::TouchWakeUp);
- }
- }
+ PushMessage(Messages::OnTouchEvent);
}
void SystemTask::PushMessage(System::Messages msg) {