Add sleep mode which disables notifications, touch- and motion wakeup (#1261)
This commit is contained in:
@@ -251,7 +251,8 @@ void SystemTask::Work() {
|
||||
case Messages::TouchWakeUp: {
|
||||
if (touchHandler.GetNewTouchInfo()) {
|
||||
auto gesture = touchHandler.GestureGet();
|
||||
if (gesture != Pinetime::Applications::TouchEvents::None &&
|
||||
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 &&
|
||||
@@ -280,7 +281,7 @@ void SystemTask::Work() {
|
||||
}
|
||||
break;
|
||||
case Messages::OnNewNotification:
|
||||
if (settingsController.GetNotificationStatus() == Pinetime::Controllers::Settings::Notification::ON) {
|
||||
if (settingsController.GetNotificationStatus() == Pinetime::Controllers::Settings::Notification::On) {
|
||||
if (state == SystemTaskState::Sleeping) {
|
||||
GoToRunning();
|
||||
} else {
|
||||
@@ -388,7 +389,8 @@ void SystemTask::Work() {
|
||||
break;
|
||||
case Messages::OnNewHour:
|
||||
using Pinetime::Controllers::AlarmController;
|
||||
if (settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::Hours &&
|
||||
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
|
||||
settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::Hours &&
|
||||
alarmController.State() != AlarmController::AlarmState::Alerting) {
|
||||
if (state == SystemTaskState::Sleeping) {
|
||||
GoToRunning();
|
||||
@@ -399,7 +401,8 @@ void SystemTask::Work() {
|
||||
break;
|
||||
case Messages::OnNewHalfHour:
|
||||
using Pinetime::Controllers::AlarmController;
|
||||
if (settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::HalfHours &&
|
||||
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
|
||||
settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::HalfHours &&
|
||||
alarmController.State() != AlarmController::AlarmState::Alerting) {
|
||||
if (state == SystemTaskState::Sleeping) {
|
||||
GoToRunning();
|
||||
@@ -483,13 +486,13 @@ void SystemTask::UpdateMotion() {
|
||||
motionController.IsSensorOk(motionSensor.IsOk());
|
||||
motionController.Update(motionValues.x, motionValues.y, motionValues.z, motionValues.steps);
|
||||
|
||||
if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist) &&
|
||||
motionController.Should_RaiseWake(state == SystemTaskState::Sleeping)) {
|
||||
GoToRunning();
|
||||
}
|
||||
if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::Shake) &&
|
||||
motionController.Should_ShakeWake(settingsController.GetShakeThreshold())) {
|
||||
GoToRunning();
|
||||
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep) {
|
||||
if ((settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist) &&
|
||||
motionController.Should_RaiseWake(state == SystemTaskState::Sleeping)) ||
|
||||
(settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::Shake) &&
|
||||
motionController.Should_ShakeWake(settingsController.GetShakeThreshold()))) {
|
||||
GoToRunning();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user