From d18549e0959e7a545fb31cb7c5a6a40a27458f01 Mon Sep 17 00:00:00 2001 From: Kyeonghun Lee Date: Mon, 4 Apr 2016 18:51:36 +0900 Subject: [PATCH] remove phonenumberutil api Change-Id: I74b39ad466de0cb30649a8f9547d2b6fd257891a --- manager/CMakeLists.txt | 2 +- manager/inc/msg-manager-contact.h | 3 + manager/src/msg-manager-contact.cpp | 174 +++++++++++++++++++++++ manager/src/msg-manager-notification.cpp | 30 +--- packaging/msg-service.spec | 1 - 5 files changed, 182 insertions(+), 28 deletions(-) diff --git a/manager/CMakeLists.txt b/manager/CMakeLists.txt index aff20c4..7dcf195 100755 --- a/manager/CMakeLists.txt +++ b/manager/CMakeLists.txt @@ -31,7 +31,7 @@ INCLUDE_DIRECTORIES( ) INCLUDE(FindPkgConfig) -pkg_check_modules(mgr_pkgs REQUIRED glib-2.0 dlog alarm-service appcore-agent badge bundle callmgr_client contacts-service2 capi-appfw-application capi-appfw-package-manager notification vconf phonenumber-utils feedback capi-media-player capi-media-sound-manager) +pkg_check_modules(mgr_pkgs REQUIRED glib-2.0 dlog alarm-service appcore-agent badge bundle callmgr_client contacts-service2 capi-appfw-application capi-appfw-package-manager notification vconf feedback capi-media-player capi-media-sound-manager) INCLUDE_DIRECTORIES(${mgr_pkgs_INCLUDE_DIRS}) LINK_DIRECTORIES(${mgr_pkgs_LIBRARY_DIRS}) diff --git a/manager/inc/msg-manager-contact.h b/manager/inc/msg-manager-contact.h index ed5fab4..dc4411c 100644 --- a/manager/inc/msg-manager-contact.h +++ b/manager/inc/msg-manager-contact.h @@ -74,5 +74,8 @@ int MsgMgrCloseContactSvc(); void MsgMgrAddPhoneLog(contactInfo *contact_info); int MsgMgrGetContactInfo(const MSG_MGR_ADDRESS_INFO_S *pAddrInfo, MSG_MGR_CONTACT_INFO_S *pContactInfo); +char* msg_mgr_clean_country_code(char *src); +char* msg_mgr_normalize_number(char *src); + #endif /*__MSG_MGR_CONTACT_H__ */ diff --git a/manager/src/msg-manager-contact.cpp b/manager/src/msg-manager-contact.cpp index b0e6485..b39ec27 100644 --- a/manager/src/msg-manager-contact.cpp +++ b/manager/src/msg-manager-contact.cpp @@ -403,3 +403,177 @@ int MsgMgrGetContactInfo(const MSG_MGR_ADDRESS_INFO_S *pAddrInfo, MSG_MGR_CONTAC return 0; } + +char* msg_mgr_clean_country_code(char *src) +{ + int ret = 1; + + switch (src[ret++]-'0') { + case 1: + case 7: + break; + case 2: + switch (src[ret++]-'0') { + case 0: + case 7: + break; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 3: + switch (src[ret++]-'0') { + case 0: + case 1: + case 2: + case 3: + case 4: + case 6: + case 9: + break; + case 5: + case 7: + case 8: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 4: + switch (src[ret++]-'0') { + case 0: + case 1: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + break; + case 2: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 5: + switch (src[ret++]-'0') { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + break; + case 0: + case 9: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 6: + switch (src[ret++]-'0') { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + break; + case 7: + case 8: + case 9: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 8: + switch (src[ret++]-'0') { + case 1: + case 2: + case 4: + case 6: + break; + case 0: + case 3: + case 5: + case 7: + case 8: + case 9: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 9: + switch (src[ret++]-'0') { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 8: + break; + case 6: + case 7: + case 9: + ret += 1; + break; + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + break; + } + break; + case 0: + default: + MSG_MGR_DEBUG("The parameter(src:%s) has invalid character set", src); + return src; + } + + return &src[ret]; +} + + +char* msg_mgr_normalize_number(char *src) +{ + char *normalized_number; + + if ('+' == src[0]) + normalized_number = msg_mgr_clean_country_code(src); + else if ('0' == src[0]) + normalized_number = src+1; + else + normalized_number = src; + + MSG_MGR_DEBUG("src = %s, normalized = %s", src, normalized_number); + + return normalized_number; +} diff --git a/manager/src/msg-manager-notification.cpp b/manager/src/msg-manager-notification.cpp index a36bdcc..3bac497 100644 --- a/manager/src/msg-manager-notification.cpp +++ b/manager/src/msg-manager-notification.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include #include @@ -173,16 +172,11 @@ bool _is_valid_email(char *pAddress) bool isExistAddressInReportTable(const char *addr) { char sqlQuery[MAX_QUERY_LEN+1]; - char *normal_addr = NULL; int rowCnt = 0, colCnt = 0; char **db_res = NULL; int msg_err = 0; - int ret = phone_number_get_normalized_number(addr, &normal_addr); - if (ret != PHONE_NUMBER_ERROR_NONE) { - MSG_MGR_ERR("phone_number_get_normalized_number() failed [%d]", ret); - return false; - } + char *normal_addr = msg_mgr_normalize_number((char *)addr); memset(sqlQuery, 0x00, sizeof(sqlQuery)); snprintf(sqlQuery, sizeof(sqlQuery), "* FROM %s WHERE ADDRESS_VAL LIKE '%%%%%s'", MSGFW_SMS_REPORT_TABLE_NAME, normal_addr); @@ -190,27 +184,21 @@ bool isExistAddressInReportTable(const char *addr) msg_err = msg_db_select_with_query(msg_handle, sqlQuery, &db_res, &rowCnt, &colCnt); if (msg_err != MSG_SUCCESS) { MSG_MGR_ERR("msg_db_select_with_query() failed [%d]", msg_err); - g_free(normal_addr); return false; } msg_err = msg_db_free(msg_handle, db_res); if (msg_err != MSG_SUCCESS) { MSG_MGR_ERR("msg_db_free() failed [%d]", msg_err); - g_free(normal_addr); return false; } - if (rowCnt > 0) { - g_free(normal_addr); + if (rowCnt > 0) return true; - } memset(sqlQuery, 0x00, sizeof(sqlQuery)); snprintf(sqlQuery, sizeof(sqlQuery), "* FROM %s WHERE ADDRESS_VAL LIKE '%%%%%s'", MSGFW_REPORT_TABLE_NAME, normal_addr); - g_free(normal_addr); - msg_err = msg_db_select_with_query(msg_handle, sqlQuery, &db_res, &rowCnt, &colCnt); if (msg_err != MSG_SUCCESS) { MSG_MGR_ERR("msg_db_select_with_query() failed [%d]", msg_err); @@ -495,7 +483,7 @@ int MsgMgrDeleteReportNotification(const char *addr) MSG_MGR_DEBUG("notification with priv_id [%d] is NULL", info->priv_id); isDelete = true; } else { - phone_number_get_normalized_number(info->addressVal, &normalAddr); + normalAddr = msg_mgr_normalize_number(info->addressVal); if (normalAddr) { MSG_MGR_SEC_DEBUG("normalized number = %s", normalAddr); @@ -508,9 +496,6 @@ int MsgMgrDeleteReportNotification(const char *addr) MSG_MGR_DEBUG("delete notification failed"); } } - - g_free(normalAddr); - normalAddr = NULL; } notification_free(noti_h); @@ -2403,21 +2388,14 @@ void createInfoData(MSG_MGR_NOTI_INFO_S *noti_info, MSG_MGR_MESSAGE_INFO_S *msg_ report_status_type = MSG_REPORT_TYPE_DELIVERY; } - char *normalNum = NULL; - if (msg_info->addressVal[0] != '\0') - phone_number_get_normalized_number(msg_info->addressVal, &normalNum); - snprintf(sqlQuery, sizeof(sqlQuery), "STATUS " "FROM %s " "WHERE MSG_ID=%d AND STATUS_TYPE=%d AND ADDRESS_VAL LIKE '%%%s';", - MSGFW_REPORT_TABLE_NAME, msg_info->msgId, report_status_type, normalNum); + MSGFW_REPORT_TABLE_NAME, msg_info->msgId, report_status_type, msg_mgr_normalize_number(msg_info->addressVal)); MSG_MGR_DEBUG("sqlQuery = [%s]", sqlQuery); - if (normalNum) - g_free(normalNum); - char **db_res = NULL; int row_cnt = 0, col_cnt = 0; diff --git a/packaging/msg-service.spec b/packaging/msg-service.spec index ad2e69b..ed14600 100755 --- a/packaging/msg-service.spec +++ b/packaging/msg-service.spec @@ -60,7 +60,6 @@ BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libwbxml2) BuildRequires: pkgconfig(motion) BuildRequires: pkgconfig(notification) -BuildRequires: pkgconfig(phonenumber-utils) BuildRequires: pkgconfig(security-server) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(storage) -- 2.34.1