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 5255404141..ba58b0c939 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 @@ -14,6 +14,7 @@ import org.signal.core.util.EventTimer import org.signal.core.util.Hex import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log +import org.signal.core.util.nullIfBlank import org.signal.core.util.nullIfEmpty import org.signal.core.util.orNull import org.signal.core.util.requireBlob @@ -316,7 +317,7 @@ class ChatItemArchiveExporter( attachments = extraData.attachmentsById[record.id] ) - if (standardMessage.text == null && standardMessage.attachments.isEmpty()) { + if (standardMessage.text.isNullOrBlank() && standardMessage.attachments.isEmpty()) { Log.w(TAG, ExportSkips.emptyStandardMessage(record.dateSent)) continue } @@ -883,7 +884,7 @@ private fun BackupMessageRecord.toRemoteDirectStoryReplyMessage(mediaArchiveEnab } private fun BackupMessageRecord.toRemoteStandardMessage(db: SignalDatabase, mediaArchiveEnabled: Boolean, reactionRecords: List?, mentions: List?, attachments: List?): StandardMessage { - val text = body?.let { + val text = body.nullIfBlank()?.let { Text( body = it, bodyRanges = (this.bodyRanges?.toRemoteBodyRanges(this.dateSent) ?: emptyList()) + (mentions?.toRemoteBodyRanges(db) ?: emptyList()) @@ -1378,6 +1379,10 @@ fun List.repairRevisions(current: ChatItem.Builder): List { } } +private fun Text?.isNullOrBlank(): Boolean { + return this == null || this.body.isBlank() +} + private fun Cursor.toBackupMessageRecord(pastIds: Set, backupStartTime: Long): BackupMessageRecord? { val id = this.requireLong(MessageTable.ID) if (pastIds.contains(id)) {