From 9a637ecfc3a5bcf7e04dbd44b6f9cb041717852d Mon Sep 17 00:00:00 2001 From: SessionHero01 <180888785+SessionHero01@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:45:32 +0800 Subject: [PATCH] Make sure attachment messages are marked as deleted instead. And control messages deleted (#832) --- .../securesms/configs/ConfigToDatabaseSync.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt b/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt index 8ca792d29a..31cc267015 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt @@ -201,10 +201,17 @@ class ConfigToDatabaseSync @Inject constructor( } else { groupInfoConfig.deleteBefore?.let { removeBefore -> val messages = mmsSmsDatabase.getAllMessageRecordsBefore(threadId, TimeUnit.SECONDS.toMillis(removeBefore)) - conversationRepository.markAsDeletedLocally(messages, context.getString(R.string.deleteMessageDeletedGlobally)) + val (controlMessages, visibleMessages) = messages.partition { it.isControlMessage } + + // Mark visible messages as deleted, and control messages actually deleted. + conversationRepository.markAsDeletedLocally(visibleMessages.toSet(), context.getString(R.string.deleteMessageDeletedGlobally)) + conversationRepository.deleteMessages(controlMessages.toSet(), threadId) } groupInfoConfig.deleteAttachmentsBefore?.let { removeAttachmentsBefore -> - mmsDatabase.deleteMessagesInThreadBeforeDate(threadId, TimeUnit.SECONDS.toMillis(removeAttachmentsBefore), onlyMedia = true) + val messagesWithAttachment = mmsSmsDatabase.getAllMessageRecordsBefore(threadId, TimeUnit.SECONDS.toMillis(removeAttachmentsBefore)) + .filterTo(mutableSetOf()) { it.isMms } + + conversationRepository.markAsDeletedLocally(messagesWithAttachment, context.getString(R.string.deleteMessageDeletedGlobally)) } } }