From 7ca03c7dd8bb661f2bdb7aeaf59754333772ef83 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Tue, 12 Jun 2018 22:35:56 +0200 Subject: [PATCH] Fix duplicate notifications Only send notifications after a timeout equal to 2x the current latency --- .../service/QuasselNotificationBackend.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt index eefcec978..23bf961f9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt @@ -50,6 +50,8 @@ import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.ui.TextDrawable import de.kuschku.quasseldroid.viewmodel.EditorViewModel +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit import javax.inject.Inject class QuasselNotificationBackend @Inject constructor( @@ -61,6 +63,7 @@ class QuasselNotificationBackend @Inject constructor( private var notificationSettings: NotificationSettings private var appearanceSettings: AppearanceSettings private var messageSettings: MessageSettings + private val executor = Executors.newSingleThreadScheduledExecutor() @ColorInt private var selfColor: Int @@ -220,7 +223,14 @@ class QuasselNotificationBackend @Inject constructor( ) } database.notifications().save(*results.toTypedArray()) - results.map(QuasselDatabase.NotificationData::bufferId).distinct().forEach(this::showNotification) + executor.schedule( + { + results.map(QuasselDatabase.NotificationData::bufferId).distinct() + .forEach(this::showNotification) + }, + session.lag.value * 2, + TimeUnit.MILLISECONDS + ) } @Synchronized -- GitLab