From b97827b94ca64f2b7e7ac73d1278481209493131 Mon Sep 17 00:00:00 2001 From: Evgen Servetnik Date: Wed, 16 Aug 2017 12:48:37 +0300 Subject: [PATCH] TizenRefApp-9139 Fix predictive shearch for number without local code. Change-Id: I981cfa6fbd79c422e037d3dd29fb27113df81636 Signed-off-by: Evgen Servetnik --- .../ContactManager/src/ContactManager.cpp | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/Common/ContactManager/src/ContactManager.cpp b/src/Common/ContactManager/src/ContactManager.cpp index 41708491..7ae6347c 100644 --- a/src/Common/ContactManager/src/ContactManager.cpp +++ b/src/Common/ContactManager/src/ContactManager.cpp @@ -119,9 +119,32 @@ template<> std::shared_ptr> ContactManager::search(const std::string &keyword) { + contacts_query_h query = nullptr; + contacts_filter_h filter = nullptr; contacts_list_h list = nullptr; - contacts_db_search_records_with_range(ContactPersonNumber::getUri(), keyword.c_str(), - 0, 0, CONTACTS_SEARCH_RANGE_NAME | CONTACTS_SEARCH_RANGE_NUMBER, &list); + + contacts_query_create(ContactPersonNumber::getUri(), &query); + contacts_filter_create(ContactPersonNumber::getUri(), &filter); + contacts_filter_add_str(filter, _contacts_person_number.number, CONTACTS_MATCH_CONTAINS, keyword.c_str()); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + contacts_filter_add_str(filter, _contacts_person_number.display_name, CONTACTS_MATCH_CONTAINS, keyword.c_str()); + contacts_query_set_filter(query, filter); + + /* set projection */ + unsigned int numberProjection[] = { + _contacts_person_number.person_id, + _contacts_person_number.number, + _contacts_person_number.display_name, + _contacts_person_number.image_thumbnail_path + }; + + contacts_query_set_projection(query, numberProjection, sizeof(numberProjection)/sizeof(unsigned int)); + contacts_query_set_distinct(query, true); + + contacts_db_get_records_with_query(query, 0, 0, &list); + contacts_filter_destroy(filter); + contacts_query_destroy(query); + return list ? std::make_shared>(list) : nullptr; } -- 2.34.1