From 4fce7cc3cc829f1e5c1409aef0cce40076641319 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 21 Apr 2023 13:44:34 -0400 Subject: [PATCH] Use distinct timestamp for sync message expire timer updates. --- .../securesms/messages/SyncMessageProcessor.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt index 9d57185df9..7ee57d0968 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt @@ -598,7 +598,7 @@ object SyncMessageProcessor { } @Throws(MmsException::class) - private fun handleSynchronizeSentExpirationUpdate(sent: Sent): Long { + private fun handleSynchronizeSentExpirationUpdate(sent: Sent, sideEffect: Boolean = false): Long { log(sent.timestamp, "Synchronize sent expiration update.") val groupId: GroupId? = getSyncMessageDestination(sent).groupId.orNull() @@ -609,7 +609,7 @@ object SyncMessageProcessor { } val recipient: Recipient = getSyncMessageDestination(sent) - val expirationUpdateMessage: OutgoingMessage = expirationUpdateMessage(recipient, sent.timestamp, sent.message.expireTimer.seconds.inWholeMilliseconds) + val expirationUpdateMessage: OutgoingMessage = expirationUpdateMessage(recipient, if (sideEffect) sent.timestamp - 1 else sent.timestamp, sent.message.expireTimer.seconds.inWholeMilliseconds) val threadId: Long = SignalDatabase.threads.getOrCreateThreadIdFor(recipient) val messageId: Long = SignalDatabase.messages.insertMessageOutbox(expirationUpdateMessage, threadId, false, null) @@ -680,7 +680,7 @@ object SyncMessageProcessor { ) if (recipient.expiresInSeconds != sent.message.expireTimer) { - handleSynchronizeSentExpirationUpdate(sent) + handleSynchronizeSentExpirationUpdate(sent, sideEffect = true) } val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient) @@ -751,7 +751,7 @@ object SyncMessageProcessor { ) if (recipient.expiresInSeconds != sent.message.expireTimer) { - handleSynchronizeSentExpirationUpdate(sent) + handleSynchronizeSentExpirationUpdate(sent, sideEffect = true) } val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient) @@ -808,7 +808,7 @@ object SyncMessageProcessor { val bodyRanges = sent.message.bodyRangesList.filterNot { it.hasMentionUuid() }.toBodyRangeList() if (recipient.expiresInSeconds != sent.message.expireTimer) { - handleSynchronizeSentExpirationUpdate(sent) + handleSynchronizeSentExpirationUpdate(sent, sideEffect = true) } val threadId = SignalDatabase.threads.getOrCreateThreadIdFor(recipient)