remove phonenumberutil api 42/64642/1
authorKyeonghun Lee <kh9090.lee@samsung.com>
Mon, 4 Apr 2016 09:51:36 +0000 (18:51 +0900)
committerKyeonghun Lee <kh9090.lee@samsung.com>
Mon, 4 Apr 2016 09:51:36 +0000 (18:51 +0900)
Change-Id: I74b39ad466de0cb30649a8f9547d2b6fd257891a

manager/CMakeLists.txt
manager/inc/msg-manager-contact.h
manager/src/msg-manager-contact.cpp
manager/src/msg-manager-notification.cpp
packaging/msg-service.spec

index aff20c4..7dcf195 100755 (executable)
@@ -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})
 
index ed5fab4..dc4411c 100644 (file)
@@ -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__ */
 
index b0e6485..b39ec27 100644 (file)
@@ -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;
+}
index a36bdcc..3bac497 100644 (file)
@@ -34,7 +34,6 @@
 #include <notification_internal.h>
 #include <notification_status.h>
 #include <package_manager.h>
-#include <phone_number.h>
 #include <vconf.h>
 
 #include <msg.h>
@@ -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;
 
index ad2e69b..ed14600 100755 (executable)
@@ -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)