diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.java index a0e5e7566..62b997f54 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.java @@ -1957,12 +1957,13 @@ public class MessageTable extends DatabaseTable implements MessageTypes, Recipie ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(new MessageId(messageId)); } - public boolean clearScheduledStatus(long threadId, long messageId) { + public boolean clearScheduledStatus(long threadId, long messageId, long expiresIn) { SQLiteDatabase database = databaseHelper.getSignalWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(SCHEDULED_DATE, -1); contentValues.put(DATE_SENT, System.currentTimeMillis()); contentValues.put(DATE_RECEIVED, System.currentTimeMillis()); + contentValues.put(EXPIRES_IN, expiresIn); int rowsUpdated = database.update(TABLE_NAME, contentValues, ID_WHERE + " AND " + SCHEDULED_DATE + "!= ?", SqlUtil.buildArgs(messageId, -1)); ApplicationDependencies.getDatabaseObserver().notifyMessageInsertObservers(threadId, new MessageId(messageId)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/ScheduledMessageManager.kt b/app/src/main/java/org/thoughtcrime/securesms/service/ScheduledMessageManager.kt index bd630166b..cb9bb2eab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/ScheduledMessageManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/ScheduledMessageManager.kt @@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.jobs.IndividualSendJob import org.thoughtcrime.securesms.jobs.PushGroupSendJob +import kotlin.time.Duration.Companion.seconds /** * Manages waking up and sending scheduled messages at the correct time @@ -43,7 +44,7 @@ class ScheduledMessageManager( override fun executeEvent(event: Event) { val scheduledMessagesToSend = messagesTable.getScheduledMessagesBefore(System.currentTimeMillis()) for (record in scheduledMessagesToSend) { - if (SignalDatabase.messages.clearScheduledStatus(record.threadId, record.id)) { + if (messagesTable.clearScheduledStatus(record.threadId, record.id, record.recipient.expiresInSeconds.seconds.inWholeMilliseconds)) { if (record.recipient.isPushGroup) { PushGroupSendJob.enqueue(application, ApplicationDependencies.getJobManager(), record.id, record.recipient.id, emptySet(), true) } else {