Apply contact display order.
authorKeebum Kim <keebum.kim@samsung.com>
Mon, 14 Oct 2013 06:28:28 +0000 (15:28 +0900)
committerKeebum Kim <keebum.kim@samsung.com>
Mon, 14 Oct 2013 06:28:28 +0000 (15:28 +0900)
include/utils/MsgUtilStorage.h
utils/MsgContact.cpp
utils/MsgGconfWrapper.cpp
utils/MsgUtilStorage.cpp

index 3d8a1d1..6a1c79e 100755 (executable)
@@ -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
 
index 80cd6d3..ce3b54c 100755 (executable)
@@ -583,6 +583,9 @@ bool MsgUpdateContact(int index, int type)
 
        contacts_record_destroy(contact, true);
 
+       if (type == -1 && cbFunction != NULL)
+               cbFunction();
+
        return true;
 }
 
index 7fcc0d0..4dcf2a6 100755 (executable)
@@ -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);
 }
index 72634af..6a582fa 100755 (executable)
@@ -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;
+}