From ba03ca5e0c208ce1b8ad4e1902cc6c60ed86f45c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 24 Feb 2026 14:40:21 -0500 Subject: [PATCH] Drop quotes with unexported authors during backup export. --- .../thoughtcrime/securesms/backup/v2/ArchiveErrorCases.kt | 4 ++++ .../securesms/backup/v2/exporters/ChatItemArchiveExporter.kt | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveErrorCases.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveErrorCases.kt index 583060c4d1..28948db128 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveErrorCases.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveErrorCases.kt @@ -214,6 +214,10 @@ object ExportOddities { return log(0, "Distribution list had self as a member. Removing it.") } + fun quoteAuthorNotFound(sentTimestamp: Long): String { + return log(sentTimestamp, "Quote author was not found in the exported recipients. Removing the quote.") + } + fun emptyQuote(sentTimestamp: Long): String { return log(sentTimestamp, "Quote had no text or attachments. Removing it.") } 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 32f5794384..bb350f6e5c 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 @@ -1174,6 +1174,11 @@ private fun BackupMessageRecord.toRemoteQuote(exportState: ExportState, attachme return null } + if (!exportState.recipientIds.contains(this.quoteAuthor)) { + Log.w(TAG, ExportOddities.quoteAuthorNotFound(this.dateSent)) + return null + } + val localType = QuoteModel.Type.fromCode(this.quoteType) val remoteType = when (localType) { QuoteModel.Type.NORMAL -> {