From b188c45cd9fc1355342e8272e952bbdf758eafb2 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 18 Jul 2025 12:10:11 -0300 Subject: [PATCH] Do not include view-once media in regular message backups. --- .../v2/exporters/ChatItemArchiveExporter.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt index ab7458536b..0f62608862 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt @@ -354,7 +354,7 @@ class ChatItemArchiveExporter( } record.viewOnce -> { - builder.viewOnceMessage = record.toRemoteViewOnceMessage(mediaArchiveEnabled = mediaArchiveEnabled, reactionRecords = extraData.reactionsById[id], attachments = extraData.attachmentsById[id]) + builder.viewOnceMessage = record.toRemoteViewOnceMessage(exportState = exportState, reactionRecords = extraData.reactionsById[id], attachments = extraData.attachmentsById[id]) transformTimer.emit("voice") } @@ -862,11 +862,18 @@ private fun LinkPreview.toRemoteLinkPreview(mediaArchiveEnabled: Boolean): org.t ) } -private fun BackupMessageRecord.toRemoteViewOnceMessage(mediaArchiveEnabled: Boolean, reactionRecords: List?, attachments: List?): ViewOnceMessage { - val attachment: DatabaseAttachment? = attachments?.firstOrNull()?.takeUnless { !it.hasData && it.size == 0L && it.remoteDigest == null && it.width == 0 && it.height == 0 && it.blurHash == null } +private fun BackupMessageRecord.toRemoteViewOnceMessage(exportState: ExportState, reactionRecords: List?, attachments: List?): ViewOnceMessage { + val attachment: MessageAttachment? = if (exportState.forTransfer) { + attachments + ?.firstOrNull() + ?.takeUnless { !it.hasData && it.size == 0L && it.remoteDigest == null && it.width == 0 && it.height == 0 && it.blurHash == null } + ?.toRemoteMessageAttachment(mediaArchiveEnabled = false) + } else { + null + } return ViewOnceMessage( - attachment = attachment?.toRemoteMessageAttachment(mediaArchiveEnabled), + attachment = attachment, reactions = reactionRecords?.toRemote() ?: emptyList() ) }