From 6822bc461c53377f8e772ec3c376b6398935ce1b Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Thu, 20 May 2021 15:41:17 +1000 Subject: [PATCH] new approach for batch notification --- .../securesms/ApplicationContext.java | 2 +- .../securesms/loki/api/OpenGroupManager.kt | 16 +--------------- .../notifications/DefaultMessageNotifier.java | 4 ++++ .../notifications/OptimizedMessageNotifier.java | 2 +- .../pollers/OpenGroupPollerV2.kt | 2 -- 5 files changed, 7 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 9cc136153a..b2b18f0d5d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -207,7 +207,7 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc } startPollingIfNeeded(); - OpenGroupManager.INSTANCE.markAllAsNotCaughtUp(); + OpenGroupManager.INSTANCE.setAllCaughtUp(false); OpenGroupManager.INSTANCE.startPolling(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt index c682a89557..20bc37e553 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt @@ -19,21 +19,7 @@ object OpenGroupManager { private var pollers = mutableMapOf() // One for each server private var isPolling = false - val isAllCaughtUp: Boolean - get() { - pollers.values.forEach { poller -> - if (!poller.isCaughtUp) { - return false - } - } - return true - } - - fun markAllAsNotCaughtUp() { - pollers.values.forEach { poller -> - poller.isCaughtUp = false - } - } + var isAllCaughtUp = false fun startPolling() { if (isPolling) { return } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java index d5ab94c1a0..55dd3f17a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java @@ -56,6 +56,7 @@ import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; +import org.thoughtcrime.securesms.loki.api.OpenGroupManager; import org.thoughtcrime.securesms.loki.protocol.SessionMetaProtocol; import org.thoughtcrime.securesms.loki.utilities.MentionUtilities; import org.thoughtcrime.securesms.mms.SlideDeck; @@ -286,6 +287,9 @@ public class DefaultMessageNotifier implements MessageNotifier { } finally { if (telcoCursor != null) telcoCursor.close(); if (pushCursor != null) pushCursor.close(); + if (!OpenGroupManager.INSTANCE.isAllCaughtUp()) { + OpenGroupManager.INSTANCE.setAllCaughtUp(true); + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java index 72bddb4bbb..448d977da9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java @@ -23,7 +23,7 @@ public class OptimizedMessageNotifier implements MessageNotifier { @MainThread public OptimizedMessageNotifier(@NonNull MessageNotifier wrapped) { this.wrapped = wrapped; - this.debouncer = new Debouncer(TimeUnit.SECONDS.toMillis(2)); + this.debouncer = new Debouncer(TimeUnit.SECONDS.toMillis(1)); } @Override diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt index 70e1ea903e..320c3afd97 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPollerV2.kt @@ -18,7 +18,6 @@ import java.util.concurrent.TimeUnit class OpenGroupPollerV2(private val server: String, private val executorService: ScheduledExecutorService?) { var hasStarted = false - var isCaughtUp = false private var future: ScheduledFuture<*>? = null companion object { @@ -45,7 +44,6 @@ class OpenGroupPollerV2(private val server: String, private val executorService: handleNewMessages(openGroupID, response.messages, isBackgroundPoll) handleDeletedMessages(openGroupID, response.deletions) } - isCaughtUp = true }.always { executorService?.schedule(this@OpenGroupPollerV2::poll, OpenGroupPollerV2.pollInterval, TimeUnit.MILLISECONDS) }.map { }