From 9c8939463177ec10d8dfab755c43b7f275956a24 Mon Sep 17 00:00:00 2001 From: gaelle Date: Thu, 3 Apr 2025 16:02:23 +0200 Subject: [PATCH] update sdk (fix on ldap friends in magic search) --- Linphone/model/search/MagicSearchModel.cpp | 24 +--------------------- Linphone/model/tool/ToolModel.cpp | 3 +++ external/linphone-sdk | 2 +- 3 files changed, 5 insertions(+), 24 deletions(-) diff --git a/Linphone/model/search/MagicSearchModel.cpp b/Linphone/model/search/MagicSearchModel.cpp index 4099d6cfa..1f6e3dcd4 100644 --- a/Linphone/model/search/MagicSearchModel.cpp +++ b/Linphone/model/search/MagicSearchModel.cpp @@ -75,34 +75,12 @@ void MagicSearchModel::setMaxResults(int maxResults) { } } -bool isContactTemporary(std::shared_ptr f, bool allowNullFriendList = false) { - auto friendList = f ? f->getFriendList() : nullptr; - if (friendList == nullptr && !allowNullFriendList) return true; - return friendList && (friendList == ToolModel::getLdapFriendList()); -} - void MagicSearchModel::onSearchResultsReceived(const std::shared_ptr &magicSearch) { auto results = magicSearch->getLastSearch(); qInfo() << log().arg("SDK send callback: onSearchResultsReceived : %1 results.").arg(results.size()); auto appFriends = ToolModel::getAppFriendList(); auto ldapFriends = ToolModel::getLdapFriendList(); - std::list> finalResults; - for (auto result : results) { - auto f = result->getFriend(); - auto sourceFlags = result->getSourceFlags(); - qInfo() << "result" << result->getAddress()->asStringUriOnly(); - qInfo() << "result has flag friend" << result->hasSourceFlag(linphone::MagicSearch::Source::Friends) << ((sourceFlags & (int)linphone::MagicSearch::Source::Friends) != 0); - qInfo() << "result has flag ldap" << result->hasSourceFlag(linphone::MagicSearch::Source::LdapServers) << ((sourceFlags & (int)linphone::MagicSearch::Source::LdapServers) != 0); - qInfo() << "result has flag carddav" << result->hasSourceFlag(linphone::MagicSearch::Source::RemoteCardDAV) << ((sourceFlags & (int)linphone::MagicSearch::Source::RemoteCardDAV) != 0); - bool isFromRemoteDirectory = ((sourceFlags & (int)linphone::MagicSearch::Source::LdapServers) != 0) || - ((sourceFlags & (int)linphone::MagicSearch::Source::RemoteCardDAV) != 0); - if (!isFromRemoteDirectory && isContactTemporary(f, true)) { - qInfo() << "Do not show friend " << f->getName() << "which is not remote and is in a temporary friend list"; - continue; - } - finalResults.push_back(result); - } - emit searchResultsReceived(finalResults); + emit searchResultsReceived(results); for (auto result : results) { auto f = result->getFriend(); auto fList = f ? f->getFriendList() : nullptr; diff --git a/Linphone/model/tool/ToolModel.cpp b/Linphone/model/tool/ToolModel.cpp index 7c384d469..2385a00f9 100644 --- a/Linphone/model/tool/ToolModel.cpp +++ b/Linphone/model/tool/ToolModel.cpp @@ -327,6 +327,9 @@ std::shared_ptr ToolModel::getFriendList(const std::string if (!friendList) { friendList = core->createFriendList(); friendList->setDisplayName(listName); + if (listName == "ldap_friends") { + friendList->setType(linphone::FriendList::Type::ApplicationCache); + } core->addFriendList(friendList); } return friendList; diff --git a/external/linphone-sdk b/external/linphone-sdk index 2e719fab6..07c52d296 160000 --- a/external/linphone-sdk +++ b/external/linphone-sdk @@ -1 +1 @@ -Subproject commit 2e719fab6db0f0d52c156c244602d1375702bcd6 +Subproject commit 07c52d296e822ea6e3b0fac31c91a778a7272d72