From b775f41ae01bb74ce1394b26da4ced8c26c0be38 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Tue, 22 Jul 2025 09:23:25 +0200 Subject: [PATCH] Include phone number in lastSearchFriend results --- Linphone/Utils/MagicSearchSingleton.swift | 27 +++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/Linphone/Utils/MagicSearchSingleton.swift b/Linphone/Utils/MagicSearchSingleton.swift index 56f06947d..660a652af 100644 --- a/Linphone/Utils/MagicSearchSingleton.swift +++ b/Linphone/Utils/MagicSearchSingleton.swift @@ -61,19 +61,22 @@ final class MagicSearchSingleton: ObservableObject { var lastSearchFriend: [SearchResult] = [] var lastSearchSuggestions: [SearchResult] = [] - magicSearch.lastSearch.forEach { searchResult in - if let friend = searchResult.friend, - let address = searchResult.address, - !lastSearchFriend.contains(where: { $0.address?.weakEqual(address2: address) ?? false }) { - - lastSearchFriend.append(searchResult) - } else { - lastSearchSuggestions.append(searchResult) - } - } - + magicSearch.lastSearch.forEach { searchResult in + if searchResult.friend != nil { + if let address = searchResult.address, + !lastSearchFriend.contains(where: { $0.address?.weakEqual(address2: address) ?? false }) { + lastSearchFriend.append(searchResult) + } else if let phoneNumber = searchResult.phoneNumber, + !lastSearchFriend.contains(where: { $0.phoneNumber == phoneNumber }) { + lastSearchFriend.append(searchResult) + } + } else { + lastSearchSuggestions.append(searchResult) + } + } + lastSearchSuggestions.sort(by: { - $0.address!.asStringUriOnly() < $1.address!.asStringUriOnly() + ($0.address?.asStringUriOnly() ?? "") < ($1.address?.asStringUriOnly() ?? "") }) if let defaultAccount = core.defaultAccount, let contactAddress = defaultAccount.contactAddress {