From a421b5c6bbc06214801f16e2581686c2234467f7 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 31 Mar 2025 09:38:20 -0400 Subject: [PATCH] Add extra validation around shared contact backups. --- .../backup/v2/exporters/ChatItemArchiveExporter.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 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 1eeda1d3f2..7a89b013d5 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 @@ -875,21 +875,21 @@ private fun BackupMessageRecord.toRemoteContactMessage(mediaArchiveEnabled: Bool name = sharedContact.name.toRemote(), avatar = (sharedContact.avatar?.attachment as? DatabaseAttachment)?.toRemoteMessageAttachment(mediaArchiveEnabled)?.pointer, organization = sharedContact.organization ?: "", - number = sharedContact.phoneNumbers.map { phone -> + number = sharedContact.phoneNumbers.mapNotNull { phone -> ContactAttachment.Phone( value_ = phone.number, type = phone.type.toRemote(), label = phone.label ?: "" - ) + ).takeUnless { it.value_.isBlank() } }, - email = sharedContact.emails.map { email -> + email = sharedContact.emails.mapNotNull { email -> ContactAttachment.Email( value_ = email.email, label = email.label ?: "", type = email.type.toRemote() - ) + ).takeUnless { it.value_.isBlank() } }, - address = sharedContact.postalAddresses.map { address -> + address = sharedContact.postalAddresses.mapNotNull { address -> ContactAttachment.PostalAddress( type = address.type.toRemote(), label = address.label ?: "", @@ -900,7 +900,7 @@ private fun BackupMessageRecord.toRemoteContactMessage(mediaArchiveEnabled: Bool region = address.region ?: "", postcode = address.postalCode ?: "", country = address.country ?: "" - ) + ).takeUnless { it.street.isBlank() && it.pobox.isBlank() && it.neighborhood.isBlank() && it.city.isBlank() && it.region.isBlank() && it.postcode.isBlank() && it.country.isBlank() } } ), reactions = reactionRecords.toRemote()