diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index afcfff4a21..b2b18f0d5d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -206,10 +206,8 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc poller.setCaughtUp(false); } startPollingIfNeeded(); - // FIXME: Open group handling - /* - publicChatManager.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 62aca11265..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,6 +19,8 @@ object OpenGroupManager { private var pollers = mutableMapOf() // One for each server private var isPolling = false + var isAllCaughtUp = false + fun startPolling() { if (isPolling) { return } isPolling = true 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 46b4d836d7..448d977da9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java @@ -12,6 +12,7 @@ import org.session.libsession.utilities.recipients.Recipient; import org.session.libsession.utilities.Debouncer; import org.session.libsignal.utilities.ThreadUtils; import org.thoughtcrime.securesms.ApplicationContext; +import org.thoughtcrime.securesms.loki.api.OpenGroupManager; import java.util.concurrent.TimeUnit; @@ -42,18 +43,12 @@ public class OptimizedMessageNotifier implements MessageNotifier { @Override public void updateNotification(@NonNull Context context) { Poller poller = ApplicationContext.getInstance(context).poller; - // FIXME: Open group handling boolean isCaughtUp = true; if (poller != null) { isCaughtUp = isCaughtUp && poller.isCaughtUp(); } - // FIXME: Open group handling - /* - if (publicChatManager != null) { - isCaughtUp = isCaughtUp && publicChatManager.areAllCaughtUp(); - } - */ + isCaughtUp = isCaughtUp && OpenGroupManager.INSTANCE.isAllCaughtUp(); if (isCaughtUp) { performOnBackgroundThreadIfNeeded(() -> wrapped.updateNotification(context)); @@ -65,18 +60,12 @@ public class OptimizedMessageNotifier implements MessageNotifier { @Override public void updateNotification(@NonNull Context context, long threadId) { Poller lokiPoller = ApplicationContext.getInstance(context).poller; - // FIXME: Open group handling boolean isCaughtUp = true; if (lokiPoller != null) { isCaughtUp = isCaughtUp && lokiPoller.isCaughtUp(); } - // FIXME: Open group handling - /* - if (publicChatManager != null) { - isCaughtUp = isCaughtUp && publicChatManager.areAllCaughtUp(); - } - */ + isCaughtUp = isCaughtUp && OpenGroupManager.INSTANCE.isAllCaughtUp(); if (isCaughtUp) { performOnBackgroundThreadIfNeeded(() -> wrapped.updateNotification(context, threadId)); @@ -88,18 +77,12 @@ public class OptimizedMessageNotifier implements MessageNotifier { @Override public void updateNotification(@NonNull Context context, long threadId, boolean signal) { Poller lokiPoller = ApplicationContext.getInstance(context).poller; - // FIXME: Open group handling boolean isCaughtUp = true; if (lokiPoller != null) { isCaughtUp = isCaughtUp && lokiPoller.isCaughtUp(); } - // FIXME: Open group handling - /* - if (publicChatManager != null) { - isCaughtUp = isCaughtUp && publicChatManager.areAllCaughtUp(); - } - */ + isCaughtUp = isCaughtUp && OpenGroupManager.INSTANCE.isAllCaughtUp(); if (isCaughtUp) { performOnBackgroundThreadIfNeeded(() -> wrapped.updateNotification(context, threadId, signal)); @@ -111,18 +94,12 @@ public class OptimizedMessageNotifier implements MessageNotifier { @Override public void updateNotification(@androidx.annotation.NonNull Context context, boolean signal, int reminderCount) { Poller lokiPoller = ApplicationContext.getInstance(context).poller; - // FIXME: Open group handling boolean isCaughtUp = true; if (lokiPoller != null) { isCaughtUp = isCaughtUp && lokiPoller.isCaughtUp(); } - // FIXME: Open group handling - /* - if (publicChatManager != null) { - isCaughtUp = isCaughtUp && publicChatManager.areAllCaughtUp(); - } - */ + isCaughtUp = isCaughtUp && OpenGroupManager.INSTANCE.isAllCaughtUp(); if (isCaughtUp) { performOnBackgroundThreadIfNeeded(() -> wrapped.updateNotification(context, signal, reminderCount));