Fix scheduled message sends changing thread disappearing message timer.
This commit is contained in:
parent
67fb9d09d4
commit
7bae8b6e1b
2 changed files with 4 additions and 2 deletions
|
@ -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));
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Add table
Reference in a new issue