From 0e30d14b96d51c968ce68af2a9cdb8d85ec32331 Mon Sep 17 00:00:00 2001 From: 0x330a <92654767+0x330a@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:16:09 +1000 Subject: [PATCH] refactor: start looking at how to incorporate the user config changes to the expiry message update times and where to read values from --- .../org/thoughtcrime/securesms/database/Storage.kt | 13 +++++++++++++ .../messaging/jobs/BatchMessageReceiveJob.kt | 2 +- .../sending_receiving/ReceivedMessageHandler.kt | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) 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