From 3395800f6e0e6fba0564cc6e6f5f726598ef0fcf Mon Sep 17 00:00:00 2001 From: Keebum Kim Date: Mon, 14 Oct 2013 15:28:28 +0900 Subject: [PATCH] Apply contact display order. --- include/utils/MsgUtilStorage.h | 1 + utils/MsgContact.cpp | 3 +++ utils/MsgGconfWrapper.cpp | 7 ++++++- utils/MsgUtilStorage.cpp | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/include/utils/MsgUtilStorage.h b/include/utils/MsgUtilStorage.h index 3d8a1d1..6a1c79e 100755 --- a/include/utils/MsgUtilStorage.h +++ b/include/utils/MsgUtilStorage.h @@ -58,5 +58,6 @@ bool MsgStoCheckReadReportIsSent(MsgDbHandler *pDbHandle, msg_message_id_t MsgId msg_error_t MsgStoUpdateNetworkStatus(MsgDbHandler *pDbHandle, MSG_MESSAGE_INFO_S *pMsgInfo, msg_network_status_t status); char *MsgStoReplaceString(const char *org_str, const char *old_str, const char *new_str); void MsgConvertNumber(const char* pSrcNum, char* pDestNum); +msg_error_t MsgStoRefreshConversationDisplayName(); #endif // MSG_UTIL_STORAGE_H diff --git a/utils/MsgContact.cpp b/utils/MsgContact.cpp index 80cd6d3..ce3b54c 100755 --- a/utils/MsgContact.cpp +++ b/utils/MsgContact.cpp @@ -583,6 +583,9 @@ bool MsgUpdateContact(int index, int type) contacts_record_destroy(contact, true); + if (type == -1 && cbFunction != NULL) + cbFunction(); + return true; } diff --git a/utils/MsgGconfWrapper.cpp b/utils/MsgGconfWrapper.cpp index 7fcc0d0..4dcf2a6 100755 --- a/utils/MsgGconfWrapper.cpp +++ b/utils/MsgGconfWrapper.cpp @@ -58,6 +58,10 @@ static void MsgVconfCB(keynode_t *key, void* data) } else if (!strcmp(keyStr, VCONFKEY_CISSAPPL_AUTO_REJECT_UNKNOWN_BOOL)) { bUnknownAutoReject = vconf_keynode_get_bool(key); MSG_DEBUG("[%s] key CB called. set to [%d].", VCONFKEY_CISSAPPL_AUTO_REJECT_UNKNOWN_BOOL, bUnknownAutoReject); + } else if (!strcmp(keyStr, VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER)) { + int contactDisplayOrder = vconf_keynode_get_int(key); + MSG_DEBUG("[%s] key CB called. Apply [%d]", VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, contactDisplayOrder); + MsgStoRefreshConversationDisplayName(); } else { MSG_DEBUG("key did not match."); } @@ -284,11 +288,12 @@ void MsgSettingRegVconfCB() MsgSettingRegVconfCBCommon(VCONFKEY_CISSAPPL_AUTO_REJECT_BOOL, MsgVconfCB); MsgSettingRegVconfCBCommon(VCONFKEY_CISSAPPL_AUTO_REJECT_UNKNOWN_BOOL, MsgVconfCB); + MsgSettingRegVconfCBCommon(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, MsgVconfCB); } void MsgSettingRemoveVconfCB() { MsgSettingRemoveVconfCBCommon(VCONFKEY_CISSAPPL_AUTO_REJECT_BOOL, MsgVconfCB); MsgSettingRemoveVconfCBCommon(VCONFKEY_CISSAPPL_AUTO_REJECT_UNKNOWN_BOOL, MsgVconfCB); - + MsgSettingRemoveVconfCBCommon(VCONFKEY_CONTACTS_SVC_NAME_DISPLAY_ORDER, MsgVconfCB); } diff --git a/utils/MsgUtilStorage.cpp b/utils/MsgUtilStorage.cpp index 72634af..6a582fa 100755 --- a/utils/MsgUtilStorage.cpp +++ b/utils/MsgUtilStorage.cpp @@ -1411,3 +1411,35 @@ char *MsgStoReplaceString(const char *origStr, const char *oldStr, const char *n return replaceStr; } + + +msg_error_t MsgStoRefreshConversationDisplayName() +{ + msg_error_t err = MSG_SUCCESS; + MsgDbHandler dbHandle; + int rowCnt = 0; + char displayName[MAX_DISPLAY_NAME_LEN+1]; + char sqlQuery[MAX_QUERY_LEN+1]; + + memset(sqlQuery, 0x00, sizeof(sqlQuery)); + snprintf(sqlQuery, sizeof(sqlQuery), + "SELECT DISTINCT(CONTACT_ID) FROM %s;", + MSGFW_ADDRESS_TABLE_NAME); + + err = dbHandle.getTable(sqlQuery, &rowCnt); + + if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) { + dbHandle.freeTable(); + MSG_DEBUG("Query Failed [%s]", sqlQuery); + return err; + } + + for (int i = 1; i <= rowCnt; i++) + { + MsgUpdateContact(dbHandle.getColumnToInt(i), -1); + } + + dbHandle.freeTable(); + + return err; +} -- 2.7.4