From 666d7033d24ef3f70fd02632842733b0a89109e7 Mon Sep 17 00:00:00 2001 From: przemhb Date: Sun, 15 Nov 2020 21:39:12 +0100 Subject: [PATCH] Fixes a bug which caused notification sounds to overlap in five times mode; instead of five times the sound was played just twice. Closes #1000. Thank you Alex for help! --- .../java/org/tasks/notifications/NotificationManager.kt | 3 +++ app/src/main/java/org/tasks/notifications/Throttle.kt | 6 +++++- .../org/tasks/notifications/ThrottledNotificationManager.kt | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/tasks/notifications/NotificationManager.kt b/app/src/main/java/org/tasks/notifications/NotificationManager.kt index 077791c59..d5306bff4 100644 --- a/app/src/main/java/org/tasks/notifications/NotificationManager.kt +++ b/app/src/main/java/org/tasks/notifications/NotificationManager.kt @@ -202,6 +202,9 @@ class NotificationManager @Inject constructor( cancel(evicted) } for (i in 0 until ringTimes) { + if (i > 0) { + notificationManager.pause(2000) + } notificationManager.notify(notificationId.toInt(), notification) } } diff --git a/app/src/main/java/org/tasks/notifications/Throttle.kt b/app/src/main/java/org/tasks/notifications/Throttle.kt index 0e472cfd7..6a503975d 100644 --- a/app/src/main/java/org/tasks/notifications/Throttle.kt +++ b/app/src/main/java/org/tasks/notifications/Throttle.kt @@ -34,4 +34,8 @@ internal class Throttle constructor( oldest = (oldest + 1) % throttle.size } } -} \ No newline at end of file + + fun pause(millis: Long) = executor.execute { + Thread.sleep(millis) + } +} diff --git a/app/src/main/java/org/tasks/notifications/ThrottledNotificationManager.kt b/app/src/main/java/org/tasks/notifications/ThrottledNotificationManager.kt index 4ec4c730c..bd0c103fa 100644 --- a/app/src/main/java/org/tasks/notifications/ThrottledNotificationManager.kt +++ b/app/src/main/java/org/tasks/notifications/ThrottledNotificationManager.kt @@ -26,6 +26,8 @@ class ThrottledNotificationManager @Inject constructor( } } + fun pause(millis: Long) = throttle.pause(millis) + companion object { private const val NOTIFICATIONS_PER_SECOND = 4 }