From 068b93cf1c3f4d1e4cadfce0e18c1241190e96a8 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Thu, 2 Oct 2025 14:10:10 +0200 Subject: [PATCH] Hide SIP domains in suggestion list --- Linphone/Core/CoreContext.swift | 5 ++ .../ConversationForwardMessageFragment.swift | 23 +++++++++- .../Fragments/StartConversationFragment.swift | 23 +++++++++- .../History/Fragments/StartCallFragment.swift | 23 +++++++++- .../Fragments/AddParticipantsFragment.swift | 46 +++++++++++++------ 5 files changed, 104 insertions(+), 16 deletions(-) diff --git a/Linphone/Core/CoreContext.swift b/Linphone/Core/CoreContext.swift index e6bb1ca48..37d55a18e 100644 --- a/Linphone/Core/CoreContext.swift +++ b/Linphone/Core/CoreContext.swift @@ -219,6 +219,11 @@ class CoreContext: ObservableObject { account.params = newParams } + // TODO: Temporary workaround until SDK fixs + if CorePreferences.defaultDomain == "" { + CorePreferences.defaultDomain = core.defaultAccount?.params?.domain ?? "" + } + self.actionsToPerformOnCoreQueueWhenCoreIsStarted.forEach { $0(core) } self.actionsToPerformOnCoreQueueWhenCoreIsStarted.removeAll() diff --git a/Linphone/UI/Main/Conversations/Fragments/ConversationForwardMessageFragment.swift b/Linphone/UI/Main/Conversations/Fragments/ConversationForwardMessageFragment.swift index d7618ec69..5a41b038d 100644 --- a/Linphone/UI/Main/Conversations/Fragments/ConversationForwardMessageFragment.swift +++ b/Linphone/UI/Main/Conversations/Fragments/ConversationForwardMessageFragment.swift @@ -275,6 +275,7 @@ struct ConversationForwardMessageFragment: View { HStack { if index < contactsManager.lastSearchSuggestions.count && contactsManager.lastSearchSuggestions[index].address != nil { + if contactsManager.lastSearchSuggestions[index].address!.domain != CorePreferences.defaultDomain { Image(uiImage: contactsManager.textToImage( firstName: String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4)), lastName: "")) @@ -284,9 +285,29 @@ struct ConversationForwardMessageFragment: View { Text(String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4))) .default_text_style(styleSize: 16) - .lineLimit(1) + .lineLimit(1) .frame(maxWidth: .infinity, alignment: .leading) .foregroundStyle(Color.orangeMain500) + } else { + if let address = contactsManager.lastSearchSuggestions[index].address { + let nameTmp = address.displayName + ?? address.username + ?? String(address.asStringUriOnly().dropFirst(4)) + + Image(uiImage: contactsManager.textToImage( + firstName: nameTmp, + lastName: "")) + .resizable() + .frame(width: 45, height: 45) + .clipShape(Circle()) + + Text(nameTmp) + .default_text_style(styleSize: 16) + .lineLimit(1) + .frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(Color.orangeMain500) + } + } } else { Image("profil-picture-default") .resizable() diff --git a/Linphone/UI/Main/Conversations/Fragments/StartConversationFragment.swift b/Linphone/UI/Main/Conversations/Fragments/StartConversationFragment.swift index e03cd93bf..55d5dc64b 100644 --- a/Linphone/UI/Main/Conversations/Fragments/StartConversationFragment.swift +++ b/Linphone/UI/Main/Conversations/Fragments/StartConversationFragment.swift @@ -257,6 +257,7 @@ struct StartConversationFragment: View { HStack { if index < contactsManager.lastSearchSuggestions.count && contactsManager.lastSearchSuggestions[index].address != nil { + if contactsManager.lastSearchSuggestions[index].address!.domain != CorePreferences.defaultDomain { Image(uiImage: contactsManager.textToImage( firstName: String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4)), lastName: "")) @@ -266,9 +267,29 @@ struct StartConversationFragment: View { Text(String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4))) .default_text_style(styleSize: 16) - .lineLimit(1) + .lineLimit(1) .frame(maxWidth: .infinity, alignment: .leading) .foregroundStyle(Color.orangeMain500) + } else { + if let address = contactsManager.lastSearchSuggestions[index].address { + let nameTmp = address.displayName + ?? address.username + ?? String(address.asStringUriOnly().dropFirst(4)) + + Image(uiImage: contactsManager.textToImage( + firstName: nameTmp, + lastName: "")) + .resizable() + .frame(width: 45, height: 45) + .clipShape(Circle()) + + Text(nameTmp) + .default_text_style(styleSize: 16) + .lineLimit(1) + .frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(Color.orangeMain500) + } + } } else { Image("profil-picture-default") .resizable() diff --git a/Linphone/UI/Main/History/Fragments/StartCallFragment.swift b/Linphone/UI/Main/History/Fragments/StartCallFragment.swift index 896f53021..735f3928a 100644 --- a/Linphone/UI/Main/History/Fragments/StartCallFragment.swift +++ b/Linphone/UI/Main/History/Fragments/StartCallFragment.swift @@ -385,6 +385,7 @@ struct StartCallFragment: View { HStack { if index < contactsManager.lastSearchSuggestions.count && contactsManager.lastSearchSuggestions[index].address != nil { + if contactsManager.lastSearchSuggestions[index].address!.domain != CorePreferences.defaultDomain { Image(uiImage: contactsManager.textToImage( firstName: String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4)), lastName: "")) @@ -394,9 +395,29 @@ struct StartCallFragment: View { Text(String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4))) .default_text_style(styleSize: 16) - .lineLimit(1) + .lineLimit(1) .frame(maxWidth: .infinity, alignment: .leading) .foregroundStyle(Color.orangeMain500) + } else { + if let address = contactsManager.lastSearchSuggestions[index].address { + let nameTmp = address.displayName + ?? address.username + ?? String(address.asStringUriOnly().dropFirst(4)) + + Image(uiImage: contactsManager.textToImage( + firstName: nameTmp, + lastName: "")) + .resizable() + .frame(width: 45, height: 45) + .clipShape(Circle()) + + Text(nameTmp) + .default_text_style(styleSize: 16) + .lineLimit(1) + .frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(Color.orangeMain500) + } + } } else { Image("profil-picture-default") .resizable() diff --git a/Linphone/UI/Main/Meetings/Fragments/AddParticipantsFragment.swift b/Linphone/UI/Main/Meetings/Fragments/AddParticipantsFragment.swift index 72b9c06fb..92cdfb634 100644 --- a/Linphone/UI/Main/Meetings/Fragments/AddParticipantsFragment.swift +++ b/Linphone/UI/Main/Meetings/Fragments/AddParticipantsFragment.swift @@ -282,19 +282,39 @@ struct AddParticipantsFragment: View { HStack { if index < contactsManager.lastSearchSuggestions.count && contactsManager.lastSearchSuggestions[index].address != nil { - Image(uiImage: contactsManager.textToImage( - firstName: String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4)), - lastName: "")) - .resizable() - .frame(width: 45, height: 45) - .clipShape(Circle()) - - Text(String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4))) - .default_text_style(styleSize: 16) - .lineLimit(1) - .lineLimit(1) - .frame(maxWidth: .infinity, alignment: .leading) - .foregroundStyle(Color.orangeMain500) + if contactsManager.lastSearchSuggestions[index].address!.domain != CorePreferences.defaultDomain { + Image(uiImage: contactsManager.textToImage( + firstName: String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4)), + lastName: "")) + .resizable() + .frame(width: 45, height: 45) + .clipShape(Circle()) + + Text(String(contactsManager.lastSearchSuggestions[index].address!.asStringUriOnly().dropFirst(4))) + .default_text_style(styleSize: 16) + .lineLimit(1) + .frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(Color.orangeMain500) + } else { + if let address = contactsManager.lastSearchSuggestions[index].address { + let nameTmp = address.displayName + ?? address.username + ?? String(address.asStringUriOnly().dropFirst(4)) + + Image(uiImage: contactsManager.textToImage( + firstName: nameTmp, + lastName: "")) + .resizable() + .frame(width: 45, height: 45) + .clipShape(Circle()) + + Text(nameTmp) + .default_text_style(styleSize: 16) + .lineLimit(1) + .frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(Color.orangeMain500) + } + } if let searchAddress = contactsManager.lastSearchSuggestions[index].address?.asStringUriOnly() { if addParticipantsViewModel.participantsToAdd.contains(where: {