Resolve TSAM-6815: Increase unread count for thread list when receiving restricted... 19/84719/1
authorKyeonghun Lee <kh9090.lee@samsung.com>
Mon, 22 Aug 2016 06:22:10 +0000 (15:22 +0900)
committerKyeonghun Lee <kh9090.lee@samsung.com>
Mon, 22 Aug 2016 06:22:10 +0000 (15:22 +0900)
Change-Id: Ifbf5585c7d0d97d414572171313186d607795c44
Signed-off-by: Kyeonghun Lee <kh9090.lee@samsung.com>
framework/deliver-handler/MsgDeliverHandler.cpp
manager/src/msg-manager-notification.cpp
utils/MsgUtilStorage.cpp

index 633025a..5bb1559 100755 (executable)
@@ -288,8 +288,6 @@ msg_error_t MsgHandleSMS(MSG_MESSAGE_INFO_S *pMsgInfo, bool *pSendNoti, bool *bO
        if (msg_check_dpm_policy(pMsgInfo->msgType.mainType) == false) {
                MSG_DEBUG("Messaging is restricted by DPM policy.");
                pMsgInfo->bRestricted = true;
-               *pSendNoti = false;
-               *bOnlyNoti = false;
        }
 
        if (pMsgInfo->msgType.subType == MSG_NORMAL_SMS) {
index b4b26c8..c21f375 100644 (file)
@@ -1676,8 +1676,8 @@ int getLatestMsgInfo(MSG_MGR_NOTI_INFO_S *noti_info, bool isForInstantMessage)
                                "A.ADDRESS_VAL, "
                                "B.DISPLAY_TIME, "
                                "B.MSG_ID, "
-                               "B.SUBJECT, "
-                               "B.MSG_TEXT, "
+                               "(CASE WHEN B.DPM_RESTRICTED = 0 THEN B.SUBJECT ELSE \"restricted message\" END), "
+                               "(CASE WHEN B.DPM_RESTRICTED = 0 THEN B.MSG_TEXT ELSE \"restricted message\" END), "
                                "B.MAIN_TYPE, "
                                "(COUNT(DISTINCT(CASE WHEN B.MAIN_TYPE = %d THEN B.MSG_ID END))) AS SMS_UNREAD_CNT, "
                                "(COUNT(DISTINCT(CASE WHEN B.MAIN_TYPE = %d THEN B.MSG_ID END))) AS MMS_UNREAD_CNT, "
index aaf1613..f9725bb 100755 (executable)
@@ -684,9 +684,9 @@ msg_error_t MsgStoUpdateConversation(MsgDbHandler *pDbHandle, msg_thread_id_t co
 
                memset(sqlQuery, 0x00, MAX_QUERY_LEN);
                snprintf(sqlQuery, sizeof(sqlQuery),
-                               "SELECT MAIN_TYPE, SUB_TYPE, MSG_DIRECTION, DISPLAY_TIME, LENGTH(SUBJECT), SUBJECT, MSG_TEXT "
+                               "SELECT MAIN_TYPE, SUB_TYPE, MSG_DIRECTION, DISPLAY_TIME, LENGTH(SUBJECT), SUBJECT, MSG_TEXT, DPM_RESTRICTED "
                                "FROM %s "
-                               "WHERE CONV_ID = %d AND FOLDER_ID > %d AND FOLDER_ID < %d AND STORAGE_ID = %d AND DPM_RESTRICTED = 0 AND SCHEDULED_TIME = 0 ORDER BY DISPLAY_TIME DESC;",
+                               "WHERE CONV_ID = %d AND FOLDER_ID > %d AND FOLDER_ID < %d AND STORAGE_ID = %d AND SCHEDULED_TIME = 0 ORDER BY DISPLAY_TIME DESC;",
                                MSGFW_MESSAGE_TABLE_NAME,
                                convId, MSG_ALLBOX_ID, MSG_SPAMBOX_ID, MSG_STORAGE_PHONE);
 
@@ -697,31 +697,7 @@ msg_error_t MsgStoUpdateConversation(MsgDbHandler *pDbHandle, msg_thread_id_t co
                }
 
                err = pDbHandle->stepQuery();
-               if (err == MSG_ERR_DB_DONE) {
-                       pDbHandle->finalizeQuery();
-
-                       memset(sqlQuery, 0x00, MAX_QUERY_LEN);
-                       snprintf(sqlQuery, sizeof(sqlQuery),
-                                       "SELECT MAIN_TYPE, SUB_TYPE, MSG_DIRECTION, DISPLAY_TIME, 0, '', '' "
-                                       "FROM %s "
-                                       "WHERE CONV_ID = %d AND FOLDER_ID > %d AND FOLDER_ID < %d AND STORAGE_ID = %d AND SCHEDULED_TIME = 0 ORDER BY DISPLAY_TIME DESC;",
-                                       MSGFW_MESSAGE_TABLE_NAME,
-                                       convId, MSG_ALLBOX_ID, MSG_SPAMBOX_ID, MSG_STORAGE_PHONE);
-
-                       err = pDbHandle->prepareQuery(sqlQuery);
-                       if (err != MSG_SUCCESS) {
-                               MSG_DEBUG("Fail to prepareQuery().");
-                               return err;
-                       }
-
-                       err = pDbHandle->stepQuery();
-                       if (err != MSG_ERR_DB_ROW) {
-                               MSG_DEBUG("Fail to stepQuery().");
-                               pDbHandle->finalizeQuery();
-                               return err;
-                       }
-
-               } else if (err != MSG_ERR_DB_ROW) {
+               if (err != MSG_ERR_DB_ROW) {
                        MSG_DEBUG("Fail to stepQuery().");
                        pDbHandle->finalizeQuery();
                        return err;
@@ -732,10 +708,16 @@ msg_error_t MsgStoUpdateConversation(MsgDbHandler *pDbHandle, msg_thread_id_t co
                int msg_direction = pDbHandle->columnInt(2);
                time_t disp_time = (time_t)pDbHandle->columnInt(3);
                int subject_length = pDbHandle->columnInt(4);
+               bool dpm_restricted = pDbHandle->columnInt(7);
                char subject[MAX_SUBJECT_LEN+1] = {0, };
-               snprintf(subject, sizeof(subject), "%s", pDbHandle->columnText(5));
                char msg_text[MAX_MSG_TEXT_LEN+1] = {0, };
-               snprintf(msg_text, sizeof(msg_text), "%s", pDbHandle->columnText(6));
+               if (!dpm_restricted) {
+                       snprintf(subject, sizeof(subject), "%s", pDbHandle->columnText(5));
+                       snprintf(msg_text, sizeof(msg_text), "%s", pDbHandle->columnText(6));
+               } else {
+                       snprintf(subject, sizeof(subject), "restricted message");
+                       snprintf(msg_text, sizeof(msg_text), "restricted message");
+               }
 
                pDbHandle->finalizeQuery();
                memset(sqlQuery, 0x00, MAX_QUERY_LEN);
@@ -746,7 +728,7 @@ msg_error_t MsgStoUpdateConversation(MsgDbHandler *pDbHandle, msg_thread_id_t co
                tmpSize = strlen(sqlQuery);
 #ifdef MSG_NOTI_INTEGRATION
                snprintf(sqlQuery+tmpSize, MAX_QUERY_LEN-tmpSize,
-                               "UNREAD_CNT = (SELECT COUNT(MSG_ID) FROM %s WHERE CONV_ID = %d AND (FOLDER_ID = %d OR FOLDER_ID = %d) AND STORAGE_ID = %d AND READ_STATUS = 0 AND DPM_RESTRICTED = 0), ",
+                               "UNREAD_CNT = (SELECT COUNT(MSG_ID) FROM %s WHERE CONV_ID = %d AND (FOLDER_ID = %d OR FOLDER_ID = %d) AND STORAGE_ID = %d AND READ_STATUS = 0), ",
                                MSGFW_MESSAGE_TABLE_NAME, convId, MSG_INBOX_ID, MSG_CBMSGBOX_ID, MSG_STORAGE_PHONE);
 #else
                snprintf(sqlQuery+tmpSize, MAX_QUERY_LEN-tmpSize,