From d458ddba551e568177d0dc46318d222afd4800d2 Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Wed, 7 Sep 2022 12:01:25 -0400 Subject: [PATCH] Schedule TrimThreadsByDateManager on app startup. If enabled, this reschedules the alarm on every startup to make sure that the system never loses track of it. --- .../org/thoughtcrime/securesms/ApplicationContext.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 053315541b..3a1212a01d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -63,6 +63,7 @@ import org.thoughtcrime.securesms.jobs.RetrieveProfileJob; import org.thoughtcrime.securesms.jobs.RetrieveRemoteAnnouncementsJob; import org.thoughtcrime.securesms.jobs.StoryOnboardingDownloadJob; import org.thoughtcrime.securesms.jobs.SubscriptionKeepAliveJob; +import org.thoughtcrime.securesms.keyvalue.KeepMessagesDuration; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.logging.CustomSignalProtocolLogger; import org.thoughtcrime.securesms.logging.PersistentLogger; @@ -194,6 +195,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr .addPostRender(() -> RateLimitUtil.retryAllRateLimitedMessages(this)) .addPostRender(this::initializeExpiringMessageManager) .addPostRender(() -> SignalStore.settings().setDefaultSms(Util.isDefaultSmsProvider(this))) + .addPostRender(this::initializeTrimThreadsByDateManager) .addPostRender(() -> DownloadLatestEmojiDataJob.scheduleIfNecessary(this)) .addPostRender(EmojiSearchIndexDownloadJob::scheduleIfNecessary) .addPostRender(() -> SignalDatabase.messageLog().trimOldMessages(System.currentTimeMillis(), FeatureFlags.retryRespondMaxAge())) @@ -383,6 +385,13 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr ApplicationDependencies.getPendingRetryReceiptManager().scheduleIfNecessary(); } + private void initializeTrimThreadsByDateManager() { + KeepMessagesDuration keepMessagesDuration = SignalStore.settings().getKeepMessagesDuration(); + if (keepMessagesDuration != KeepMessagesDuration.FOREVER) { + ApplicationDependencies.getTrimThreadsByDateManager().scheduleIfNecessary(); + } + } + private void initializePeriodicTasks() { RotateSignedPreKeyListener.schedule(this); DirectoryRefreshListener.schedule(this);