void setNotification(notification_h noti_h, MSG_MGR_NOTI_INFO_S *noti_info, bool bFeedback);
-bool isExistAddressInReportTable(const char *addr);
-
/* Wrapper */
void createServiceHandle(app_control_h *svc_h);
void setServiceAppId(app_control_h svc_h, const char* app_id);
}
-bool isExistAddressInReportTable(const char *addr)
-{
- char sqlQuery[MAX_QUERY_LEN+1];
- int rowCnt = 0, colCnt = 0;
- char **db_res = NULL;
- int msg_err = 0;
-
- 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);
-
- 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);
- 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);
- return false;
- }
-
- 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);
-
- 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);
- 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);
- return false;
- }
-
- if (rowCnt > 0)
- return true;
-
- return false;
-}
-
-
void MsgMgrInitReportNotiList()
{
MSG_MGR_BEGIN();
while (noti_list != NULL) {
noti = notification_list_get_data(noti_list);
+ if (noti == NULL) {
+ MSG_MGR_DEBUG("notification_list_get_data() failed!!");
+ break;
+ }
char tempAddr[MAX_ADDRESS_VAL_LEN+1];
memset(tempAddr, 0x00, sizeof(tempAddr));
break;
}
- char *addr = NULL;
+ char *is_report_noti = NULL;
+
+ int ret = app_control_get_extra_data(app_control, "is_report_noti", &is_report_noti);
+ if (ret == APP_CONTROL_ERROR_NONE && is_report_noti != NULL && g_strcmp0(is_report_noti, "true") == 0) {
+ char *addr = NULL;
- int ret = app_control_get_extra_data(app_control, "address", &addr);
- if (ret == APP_CONTROL_ERROR_NONE && addr != NULL) {
- if (isExistAddressInReportTable(addr)) {
+ ret = app_control_get_extra_data(app_control, "address", &addr);
+ if (ret == APP_CONTROL_ERROR_NONE && addr != NULL) {
report_notification_s *info = new report_notification_s;
memset(info, 0x00, sizeof(report_notification_s));
msg_report_notification_list = g_list_append(msg_report_notification_list, (void *)info);
MSG_MGR_SEC_DEBUG("appended list data = [priv_id = %d address = %s]", info->priv_id, info->addressVal);
+
+ g_free(addr);
+ addr = NULL;
}
+ }
- g_free(addr);
- addr = NULL;
+ if (is_report_noti) {
+ g_free(is_report_noti);
+ is_report_noti = NULL;
}
+
noti_list = notification_list_get_next(noti_list);
}
goto __END_OF_ADD_REPORT_NOTI;
}
+ addServiceExtraData(noti_info.svc_h, "is_report_noti", "true");
setNotification(noti_h, ¬i_info, true);
info->priv_id = noti_info.id;