Merge pull request #548 from RyanRory/fix-open-group-spam

Fix Open Group Notification Spam
This commit is contained in:
Niels Andriesse 2021-05-20 15:50:49 +10:00 committed by GitHub
commit 31b5cfb4e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 32 deletions

View File

@ -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();
}

View File

@ -19,6 +19,8 @@ object OpenGroupManager {
private var pollers = mutableMapOf<String, OpenGroupPollerV2>() // One for each server
private var isPolling = false
var isAllCaughtUp = false
fun startPolling() {
if (isPolling) { return }
isPolling = true

View File

@ -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);
}
}
}

View File

@ -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));