diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index 92a3cc432..85f5f8fd7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -1715,6 +1715,11 @@ open class Storage( override fun setExpirationConfiguration(config: ExpirationConfiguration) { val recipient = getRecipientForThread(config.threadId) ?: return + + val expirationDb = DatabaseComponent.get(context).expirationConfigurationDatabase() + val currentConfig = expirationDb.getExpirationConfiguration(config.threadId) + if (currentConfig != null && currentConfig.updatedTimestampMs >= config.updatedTimestampMs) return + if (recipient.isClosedGroupRecipient) { val userGroups = configFactory.userGroups ?: return val groupPublicKey = GroupUtil.addressToGroupSessionId(recipient.address) @@ -1732,7 +1737,7 @@ open class Storage( ) ?: return contacts.set(contact) } - DatabaseComponent.get(context).expirationConfigurationDatabase().setExpirationConfiguration(config) + expirationDb.setExpirationConfiguration(config) } override fun getExpiringMessages(messageIds: List): List> { diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt index fc12b0088..793378681 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt @@ -172,7 +172,7 @@ private fun MessageReceiver.handleExpirationTimerUpdate(message: ExpirationTimer ExpirationConfiguration( threadId, type, - SnodeAPI.nowWithOffset + message.sentTimestamp!! ) ) } catch (e: Exception) {