Skip to content

Commit 0076962

Browse files
mark9064JF002
authored andcommitted
Unify touch panel handling
1 parent e6ee548 commit 0076962

2 files changed

Lines changed: 17 additions & 24 deletions

File tree

src/systemtask/Messages.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ namespace Pinetime {
66
enum class Messages : uint8_t {
77
GoToSleep,
88
GoToRunning,
9-
TouchWakeUp,
109
OnNewTime,
1110
OnNewNotification,
1211
OnNewCall,

src/systemtask/SystemTask.cpp

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -198,20 +198,6 @@ void SystemTask::Work() {
198198
case Messages::GoToRunning:
199199
GoToRunning();
200200
break;
201-
case Messages::TouchWakeUp: {
202-
if (touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
203-
auto gesture = touchHandler.GestureGet();
204-
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
205-
gesture != Pinetime::Applications::TouchEvents::None &&
206-
((gesture == Pinetime::Applications::TouchEvents::DoubleTap &&
207-
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) ||
208-
(gesture == Pinetime::Applications::TouchEvents::Tap &&
209-
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)))) {
210-
GoToRunning();
211-
}
212-
}
213-
break;
214-
}
215201
case Messages::GoToSleep:
216202
GoToSleep();
217203
break;
@@ -260,8 +246,23 @@ void SystemTask::Work() {
260246
// TODO add intent of fs access icon or something
261247
break;
262248
case Messages::OnTouchEvent:
263-
if (touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
249+
// Finish immediately if no new events
250+
if (!touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
251+
break;
252+
}
253+
if (state == SystemTaskState::Running) {
264254
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent);
255+
} else {
256+
// If asleep, check for touch panel wake triggers
257+
auto gesture = touchHandler.GestureGet();
258+
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
259+
gesture != Pinetime::Applications::TouchEvents::None &&
260+
((gesture == Pinetime::Applications::TouchEvents::DoubleTap &&
261+
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) ||
262+
(gesture == Pinetime::Applications::TouchEvents::Tap &&
263+
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)))) {
264+
GoToRunning();
265+
}
265266
}
266267
break;
267268
case Messages::HandleButtonEvent: {
@@ -493,14 +494,7 @@ void SystemTask::HandleButtonAction(Controllers::ButtonActions action) {
493494
}
494495

495496
void SystemTask::OnTouchEvent() {
496-
if (state == SystemTaskState::Running) {
497-
PushMessage(Messages::OnTouchEvent);
498-
} else {
499-
if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap) or
500-
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
501-
PushMessage(Messages::TouchWakeUp);
502-
}
503-
}
497+
PushMessage(Messages::OnTouchEvent);
504498
}
505499

506500
void SystemTask::PushMessage(System::Messages msg) {

0 commit comments

Comments
 (0)