Throttle notifications when doing the intial message fetch.

This commit is contained in:
Greyson Parrelli
2020-05-28 08:32:35 -04:00
parent 51c82702e2
commit 3a06412cd8
4 changed files with 107 additions and 8 deletions

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.dependencies;
import android.app.Application;
import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.BuildConfig;
@@ -61,13 +62,15 @@ public class ApplicationDependencies {
private static InitialMessageRetriever initialMessageRetriever;
private static MessageNotifier messageNotifier;
@MainThread
public static synchronized void init(@NonNull Application application, @NonNull Provider provider) {
if (ApplicationDependencies.application != null || ApplicationDependencies.provider != null) {
throw new IllegalStateException("Already initialized!");
}
ApplicationDependencies.application = application;
ApplicationDependencies.provider = provider;
ApplicationDependencies.application = application;
ApplicationDependencies.provider = provider;
ApplicationDependencies.messageNotifier = provider.provideMessageNotifier();
}
public static @NonNull Application getApplication() {
@@ -251,11 +254,6 @@ public class ApplicationDependencies {
public static synchronized @NonNull MessageNotifier getMessageNotifier() {
assertInitialization();
if (messageNotifier == null) {
messageNotifier = provider.provideMessageNotifier();
}
return messageNotifier;
}

View File

@@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.megaphone.MegaphoneRepository;
import org.thoughtcrime.securesms.messages.InitialMessageRetriever;
import org.thoughtcrime.securesms.notifications.DefaultMessageNotifier;
import org.thoughtcrime.securesms.notifications.MessageNotifier;
import org.thoughtcrime.securesms.notifications.OptimizedMessageNotifier;
import org.thoughtcrime.securesms.push.SecurityEventListener;
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
import org.thoughtcrime.securesms.recipients.LiveRecipientCache;
@@ -162,7 +163,7 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
@Override
public @NonNull MessageNotifier provideMessageNotifier() {
return new DefaultMessageNotifier();
return new OptimizedMessageNotifier(new DefaultMessageNotifier());
}
private static class DynamicCredentialsProvider implements CredentialsProvider {