From 8b60d5eda1745ed514070fc842758fa603a5de90 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 30 Mar 2022 16:03:58 +0200 Subject: [PATCH] Fixed duplicated phone numbers in contact details --- app/src/main/java/org/linphone/contact/NativeContact.kt | 5 ++++- app/src/main/java/org/linphone/utils/LinphoneUtils.kt | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/contact/NativeContact.kt b/app/src/main/java/org/linphone/contact/NativeContact.kt index 8684a703e..6a4a4c920 100644 --- a/app/src/main/java/org/linphone/contact/NativeContact.kt +++ b/app/src/main/java/org/linphone/contact/NativeContact.kt @@ -36,6 +36,7 @@ import org.linphone.core.SubscribePolicy import org.linphone.core.tools.Log import org.linphone.utils.AppUtils import org.linphone.utils.ImageUtils +import org.linphone.utils.LinphoneUtils class NativeContact(val nativeId: String, private val lookupKey: String? = null) : Contact() { override fun compareTo(other: Contact): Int { @@ -136,7 +137,9 @@ class NativeContact(val nativeId: String, private val lookupKey: String? = null) if (number != null && number.isNotEmpty()) { Log.d("[Native Contact] Found phone number $data1 ($data4), type label is $typeLabel") - if (!rawPhoneNumbers.contains(number)) { + val trimmedNumber = LinphoneUtils.trimPhoneNumber(number) + val found = rawPhoneNumbers.find { LinphoneUtils.trimPhoneNumber(it) == trimmedNumber } + if (found == null) { phoneNumbers.add(PhoneNumber(number, typeLabel)) rawPhoneNumbers.add(number) } diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt index 6bea3de9e..01bdd9bed 100644 --- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt +++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt @@ -175,5 +175,12 @@ class LinphoneUtils { remoteSipUri.clean() return "${localSipUri.asStringUriOnly()}~${remoteSipUri.asStringUriOnly()}" } + + fun trimPhoneNumber(phoneNumber: String): String { + return phoneNumber.replace(" ", "") + .replace("-", "") + .replace("(", "") + .replace(")", "") + } } }