From c0dbc4b0e530fb74e03f6138070b57db672667db Mon Sep 17 00:00:00 2001 From: Gaelle Braud Date: Mon, 12 May 2025 14:30:53 +0200 Subject: [PATCH] try to improve friend research (clean address before insertion in map) --- Linphone/model/search/MagicSearchModel.cpp | 5 +++-- Linphone/model/tool/ToolModel.cpp | 13 +++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Linphone/model/search/MagicSearchModel.cpp b/Linphone/model/search/MagicSearchModel.cpp index 34ef0ab99..83d2d98c3 100644 --- a/Linphone/model/search/MagicSearchModel.cpp +++ b/Linphone/model/search/MagicSearchModel.cpp @@ -87,8 +87,9 @@ void MagicSearchModel::onSearchResultsReceived(const std::shared_ptrgetAddress(); - friendsManager->appendUnknownFriend(friendAddress->clone(), f); + auto friendAddress = f->getAddress()->clone(); + friendAddress->clean(); + friendsManager->appendUnknownFriend(friendAddress, f); if (friendsManager->isInOtherAddresses(Utils::coreStringToAppString(friendAddress->asStringUriOnly()))) { friendsManager->removeOtherAddress(Utils::coreStringToAppString(friendAddress->asStringUriOnly())); } diff --git a/Linphone/model/tool/ToolModel.cpp b/Linphone/model/tool/ToolModel.cpp index 4db65fb28..f9bb8f863 100644 --- a/Linphone/model/tool/ToolModel.cpp +++ b/Linphone/model/tool/ToolModel.cpp @@ -126,12 +126,13 @@ std::shared_ptr ToolModel::findFriendByAddress(const QString & std::shared_ptr ToolModel::findFriendByAddress(std::shared_ptr linphoneAddr) { auto friendsManager = FriendsManager::getInstance(); + linphoneAddr->clean(); QString key = Utils::coreStringToAppString(linphoneAddr->asStringUriOnly()); if (friendsManager->isInKnownFriends(key)) { - // qDebug() << key << "have been found in known friend, return it"; + // qDebug() << key << "have been found in known friend, return it"; return friendsManager->getKnownFriendAtKey(key); } else if (friendsManager->isInUnknownFriends(key)) { - // qDebug() << key << "have been found in unknown friend, return it"; + // qDebug() << key << "have been found in unknown friend, return it"; return friendsManager->getUnknownFriendAtKey(key); } auto f = CoreModel::getInstance()->getCore()->findFriend(linphoneAddr); @@ -139,17 +140,17 @@ std::shared_ptr ToolModel::findFriendByAddress(std::shared_ptr if (friendsManager->isInUnknownFriends(key)) { friendsManager->removeUnknownFriend(key); } - // qDebug() << "found friend, add to known map"; + // qDebug() << "found friend, add to known map"; friendsManager->appendKnownFriend(linphoneAddr, f); } if (!f) { if (friendsManager->isInOtherAddresses(key)) { - // qDebug() << "A magic search has already be done for address" << key << "and nothing was found, - // return"; + // qDebug() << "A magic search has already be done for address" << key << "and nothing was found,return "; return nullptr; } friendsManager->appendOtherAddress(key); - // qDebug() << "Couldn't find friend" << linphoneAddr->asStringUriOnly() << "in core, use magic search"; + if (CoreModel::getInstance()->getCore()->getRemoteContactDirectories().empty()) return nullptr; + qDebug() << "Couldn't find friend" << linphoneAddr->asStringUriOnly() << "in core or in maps, use magic search"; CoreModel::getInstance()->searchInMagicSearch(Utils::coreStringToAppString(linphoneAddr->asStringUriOnly()), (int)linphone::MagicSearch::Source::LdapServers | (int)linphone::MagicSearch::Source::RemoteCardDAV,