Use distinct timestamp for sync message expire timer updates.

This commit is contained in:
Cody Henthorne 2023-04-21 13:44:34 -04:00
parent 1d793de213
commit 4fce7cc3cc

View file

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