diff options
author | petter <39340152+petterhs@users.noreply.github.com> | 2021-02-07 13:31:02 +0100 |
---|---|---|
committer | petter <39340152+petterhs@users.noreply.github.com> | 2021-02-07 13:31:02 +0100 |
commit | 1e2cc3ce91b402459790332b84e3f8dcbe5dc340 (patch) | |
tree | 4d75e4dad6ed4fdb7fa62d964ae007982ca614b7 /src | |
parent | 7ab153cd7690db8a43bde1af792edecc5e0f8d5d (diff) |
add vibration toggle
Diffstat (limited to 'src')
-rw-r--r-- | src/components/ble/NotificationManager.cpp | 8 | ||||
-rw-r--r-- | src/components/ble/NotificationManager.h | 3 | ||||
-rw-r--r-- | src/displayapp/screens/Notifications.cpp | 4 | ||||
-rw-r--r-- | src/systemtask/SystemTask.cpp | 2 |
4 files changed, 16 insertions, 1 deletions
diff --git a/src/components/ble/NotificationManager.cpp b/src/components/ble/NotificationManager.cpp index dabcb4ba..fd66c194 100644 --- a/src/components/ble/NotificationManager.cpp +++ b/src/components/ble/NotificationManager.cpp @@ -71,6 +71,14 @@ bool NotificationManager::AreNewNotificationsAvailable() { return newNotification; } +bool NotificationManager::isVibrationEnabled() { + return vibrationEnabled; +} + +void NotificationManager::toggleVibrations() { + vibrationEnabled = !vibrationEnabled; +} + bool NotificationManager::ClearNewNotificationFlag() { return newNotification.exchange(false); } diff --git a/src/components/ble/NotificationManager.h b/src/components/ble/NotificationManager.h index 036d2ed9..4dce4eda 100644 --- a/src/components/ble/NotificationManager.h +++ b/src/components/ble/NotificationManager.h @@ -28,6 +28,8 @@ namespace Pinetime { Notification GetPrevious(Notification::Id id); bool ClearNewNotificationFlag(); bool AreNewNotificationsAvailable(); + bool isVibrationEnabled(); + void toggleVibrations(); static constexpr size_t MaximumMessageSize() { return MessageSize; }; size_t NbNotifications() const; @@ -40,6 +42,7 @@ namespace Pinetime { uint8_t writeIndex = 0; bool empty = true; std::atomic<bool> newNotification{false}; + bool vibrationEnabled = true; }; } }
\ No newline at end of file diff --git a/src/displayapp/screens/Notifications.cpp b/src/displayapp/screens/Notifications.cpp index ece9eb07..b481c972 100644 --- a/src/displayapp/screens/Notifications.cpp +++ b/src/displayapp/screens/Notifications.cpp @@ -92,6 +92,10 @@ bool Notifications::OnTouchEvent(Pinetime::Applications::TouchEvents event) { currentItem.reset(new NotificationItem("\nNotification", nextNotification.message.data(), nextNotification.index, notificationManager.NbNotifications(), mode)); } return true; + case Pinetime::Applications::TouchEvents::LongTap: { + notificationManager.toggleVibrations(); + return true; + } default: return false; } diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index e195de8e..250a4ab4 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -162,7 +162,7 @@ void SystemTask::Work() { break; case Messages::OnNewNotification: if(isSleeping && !isWakingUp) GoToRunning(); - motorController.SetDuration(35); + if(notificationManager.isVibrationEnabled()) motorController.SetDuration(35); displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::NewNotification); break; case Messages::BleConnected: |