From b8c42fa57ea0825d428f7e9e68d0475ece27e3c3 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 25 Apr 2022 08:41:48 -0400 Subject: [PATCH] Filter out invalid phone numbers from system contacts. Some phones are putting UUIDs in phone number fields. Who knows why. Fixes #12191 --- .../thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt index d5945607a4..f2b2295afa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt @@ -33,6 +33,7 @@ import org.thoughtcrime.securesms.util.Stopwatch import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.Util import org.whispersystems.signalservice.api.push.SignalServiceAddress +import org.whispersystems.signalservice.api.util.UuidUtil import java.io.IOException import java.util.Calendar @@ -299,7 +300,9 @@ object ContactDiscovery { contactsProvider().use { iterator -> while (iterator.hasNext()) { val details = iterator.next() - val phoneDetailsWithoutSelf: List = details.numbers.filter { it.number != localNumber } + val phoneDetailsWithoutSelf: List = details.numbers + .filter { it.number != localNumber } + .filterNot { UuidUtil.isUuid(it.number) } for (phoneDetails in phoneDetailsWithoutSelf) { val realNumber: String = Util.getFirstNonEmpty(rewrites[phoneDetails.number], phoneDetails.number)