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 efc73a6622..bef21ddfb5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -1671,6 +1671,19 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co } override fun getExpirationConfiguration(threadId: Long): ExpirationConfiguration? { + val recipient = getRecipientForThread(threadId) ?: return null + return if (recipient.isContactRecipient && recipient.address.serialize().startsWith(IdPrefix.STANDARD.value)) { + // read it from contacts config if exists + configFactory.contacts?.get(recipient.address.serialize())?.let { contact -> + contact.expiryMode + } + } else if (recipient.isClosedGroupRecipient) { + // read it from group config if exists + val groupPublicKey = GroupUtil.doubleDecodeGroupId(recipient.address.serialize()) + configFactory.userGroups?.getLegacyGroupInfo(groupPublicKey)?.let { + + } + } else null return DatabaseComponent.get(context).expirationConfigurationDatabase().getExpirationConfiguration(threadId) } diff --git a/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt b/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt index ef8473c809..2855d82c2a 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt @@ -152,7 +152,7 @@ class BatchMessageReceiveJob( try { when (message) { is VisibleMessage -> { - MessageReceiver.updateExpiryIfNeeded(message, proto, openGroupID) + MessageReceiver.updateExpiryIfNeeded(message, proto, openGroupID, newLastSeen) val isUserBlindedSender = message.sender == serverPublicKey?.let { SodiumUtilities.blindedKeyPair( 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 9c4ddd7bab..ad004a97d5 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 @@ -270,7 +270,7 @@ fun handleMessageRequestResponse(message: MessageRequestResponse) { } //endregion -fun MessageReceiver.updateExpiryIfNeeded(message: Message, proto: SignalServiceProtos.Content, openGroupID: String?) { +fun MessageReceiver.updateExpiryIfNeeded(message: Message, proto: SignalServiceProtos.Content, openGroupID: String?, lastSeen: Long) { val storage = MessagingModuleConfiguration.shared.storage val sentTime = message.sentTimestamp ?: throw MessageReceiver.Error.InvalidMessage