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