diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java index 9a761e1c0f..6bc5beb775 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java @@ -2,12 +2,13 @@ package org.thoughtcrime.securesms.jobs; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.WorkerThread; import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; -import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; +import org.thoughtcrime.securesms.jobmanager.JsonJobData; /** * A job that effectively debounces thread updates through a combination of having a max instance count @@ -36,8 +37,13 @@ public final class ThreadUpdateJob extends BaseJob { this.threadId = threadId; } + @WorkerThread public static void enqueue(long threadId) { - ApplicationDependencies.getJobManager().add(new ThreadUpdateJob(threadId)); + if (ApplicationDependencies.getIncomingMessageObserver().getDecryptionDrained()) { + SignalDatabase.threads().update(threadId, true); + } else { + ApplicationDependencies.getJobManager().add(new ThreadUpdateJob(threadId)); + } } @Override