From 8050122ff45705471c698ef1e6aa84f2465f853b Mon Sep 17 00:00:00 2001 From: Pawel Andruszkiewicz Date: Fri, 15 May 2015 16:19:54 +0200 Subject: [PATCH] [Contact] Fix for AddressBook.find(). In case of unified address book use contacts_db_get_all_records(). Change-Id: Ibe9b13269874ca2a6b30b9cc1ed2cd4c7652df85 Signed-off-by: Pawel Andruszkiewicz --- src/contact/addressbook.cc | 69 ++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/src/contact/addressbook.cc b/src/contact/addressbook.cc index a3742e9b..467c82d0 100644 --- a/src/contact/addressbook.cc +++ b/src/contact/addressbook.cc @@ -330,6 +330,7 @@ PlatformResult AddressBookBatchFunc(NativeFunction impl, } PlatformResult AddressBookFind(const JsonObject& args, JsonArray& array) { + LoggerD("Entered"); PlatformResult status = ContactUtil::CheckDBConnection(); if (status.IsError()) return status; @@ -338,36 +339,48 @@ PlatformResult AddressBookFind(const JsonObject& args, JsonArray& array) { long addressbook_id = common::stol(FromJson(address_book, "id")); int error_code; - contacts_query_h query = nullptr; - contacts_filter_h filter = nullptr; contacts_list_h list = nullptr; - error_code = contacts_query_create(_contacts_contact._uri, &query); - status = - ContactUtil::ErrorChecker(error_code, "Failed contacts_query_create"); - if (status.IsError()) return status; - ContactUtil::ContactsQueryHPtr query_ptr(&query, - ContactUtil::ContactsQueryDeleter); - error_code = contacts_filter_create(_contacts_contact._uri, &filter); - status = - ContactUtil::ErrorChecker(error_code, "Failed contacts_filter_create"); - if (status.IsError()) return status; - ContactUtil::ContactsFilterPtr filter_ptr(filter, - ContactUtil::ContactsFilterDeleter); - error_code = - contacts_filter_add_int(filter, _contacts_contact.address_book_id, - CONTACTS_MATCH_EQUAL, addressbook_id); - status = - ContactUtil::ErrorChecker(error_code, "Failed contacts_filter_add_int"); - if (status.IsError()) return status; - error_code = contacts_query_set_filter(query, filter); - status = - ContactUtil::ErrorChecker(error_code, "Failed contacts_query_set_filter"); - if (status.IsError()) return status; - error_code = contacts_db_get_records_with_query(query, 0, 0, &list); - status = ContactUtil::ErrorChecker( - error_code, "Failed contacts_db_get_records_with_query"); - if (status.IsError()) return status; + if (IsUnified(addressbook_id)) { + LoggerD("calling contacts_db_get_all_records"); + error_code = contacts_db_get_all_records(_contacts_contact._uri, 0, 0, &list); + status = + ContactUtil::ErrorChecker(error_code, "Failed contacts_db_get_all_records"); + if (status.IsError()) { + LoggerD("contacts_db_get_all_records - exit with error"); + return status; + } + } else { + contacts_query_h query = nullptr; + contacts_filter_h filter = nullptr; + + error_code = contacts_query_create(_contacts_contact._uri, &query); + status = + ContactUtil::ErrorChecker(error_code, "Failed contacts_query_create"); + if (status.IsError()) return status; + ContactUtil::ContactsQueryHPtr query_ptr(&query, + ContactUtil::ContactsQueryDeleter); + error_code = contacts_filter_create(_contacts_contact._uri, &filter); + status = + ContactUtil::ErrorChecker(error_code, "Failed contacts_filter_create"); + if (status.IsError()) return status; + ContactUtil::ContactsFilterPtr filter_ptr(filter, + ContactUtil::ContactsFilterDeleter); + error_code = + contacts_filter_add_int(filter, _contacts_contact.address_book_id, + CONTACTS_MATCH_EQUAL, addressbook_id); + status = + ContactUtil::ErrorChecker(error_code, "Failed contacts_filter_add_int"); + if (status.IsError()) return status; + error_code = contacts_query_set_filter(query, filter); + status = + ContactUtil::ErrorChecker(error_code, "Failed contacts_query_set_filter"); + if (status.IsError()) return status; + error_code = contacts_db_get_records_with_query(query, 0, 0, &list); + status = ContactUtil::ErrorChecker( + error_code, "Failed contacts_db_get_records_with_query"); + if (status.IsError()) return status; + } ContactUtil::ContactsListHPtr list_ptr(&list, ContactUtil::ContactsListDeleter); -- 2.34.1