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 28948db128..61df38a6c4 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 @@ -218,6 +218,10 @@ object ExportOddities { return log(sentTimestamp, "Quote author was not found in the exported recipients. Removing the quote.") } + fun quoteAuthorHasNoAciOrE164(sentTimestamp: Long): String { + return log(sentTimestamp, "Quote author has neither an ACI nor an E164. 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 bb350f6e5c..5fa60a272d 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 @@ -1179,6 +1179,11 @@ private fun BackupMessageRecord.toRemoteQuote(exportState: ExportState, attachme return null } + if (exportState.recipientIdToAci[this.quoteAuthor] == null && exportState.recipientIdToE164[this.quoteAuthor] == null) { + Log.w(TAG, ExportOddities.quoteAuthorHasNoAciOrE164(this.dateSent)) + return null + } + val localType = QuoteModel.Type.fromCode(this.quoteType) val remoteType = when (localType) { QuoteModel.Type.NORMAL -> {