增加已读更新
authorCaisking <3449750381@qq.com>
Sat, 22 Jun 2024 10:40:50 +0000 (18:40 +0800)
committerCaisking <3449750381@qq.com>
Sat, 22 Jun 2024 10:40:50 +0000 (18:40 +0800)
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageModel.h
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp

index effb3cf..ddbc5bc 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-06-21 09:56:18
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-06-22 18:13:06
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageModel.h
+ */
 /***
  * @Date: 2024-04-15 10:55:58
  * @LastEditors: Caisking 3449750381@qq.com
@@ -52,6 +58,7 @@ namespace OHOS
         MessageData *GetNewestData();                                        // 获取最新信息项
         void SetCurrentIndex(uint8_t index);                                 // 设置当前项
         uint8_t GetCurrentIndex();                                           // 获取当前项
+        bool SetMessageIsread();                                             // 设置当前项已读
 
     private:
         MessageModel();
index ebbcb89..16bd283 100644 (file)
@@ -53,6 +53,16 @@ namespace OHOS
     {
         return numberOfItems;
     }
+
+    void MessageModel::PrintData(MessageData messagedata)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "--------------------------------------");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Title: %s", (messagedata.labelTitle).c_str());
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Details: %s", (messagedata.labelDetails).c_str());
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Time: %s", (messagedata.labelTime).c_str());
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Read: %d", messagedata.isRead);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "--------------------------------------");
+    }
     /*检查是否存在数据*/
     bool MessageModel::HasDataJson()
     {
@@ -128,49 +138,6 @@ namespace OHOS
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LoadMessageJson is ok");
         return MessageVector;
     }
-    /*保存json数据*/
-    void MessageModel::SaveMessageData(const std::vector<MessageData> &messageVector)
-    {
-        cJSON *root = cJSON_CreateObject();
-        cJSON *dataArray = cJSON_CreateArray();
-
-        for (const auto &message : messageVector)
-        {
-            cJSON *item = cJSON_CreateObject();
-            cJSON_AddStringToObject(item, "title", message.labelTitle.c_str());
-            cJSON_AddStringToObject(item, "msg", message.labelDetails.c_str());
-            cJSON_AddNumberToObject(item, "time", message.timestamp);
-            cJSON_AddNumberToObject(item, "read", message.isRead);
-
-            cJSON_AddItemToArray(dataArray, item);
-        }
-
-        cJSON_AddItemToObject(root, "infor", dataArray);
-
-        std::string jsonString = cJSON_Print(root);
-        cJSON_Delete(root);
-
-        std::ofstream file(MESSAGE_JSON_FILE);
-        if (file.is_open())
-        {
-            file << jsonString;
-            file.close();
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveMessageData is ok");
-        }
-        else
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to open file for writing");
-        }
-    }
-    void MessageModel::PrintData(MessageData messagedata)
-    {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "--------------------------------------");
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Title: %s", (messagedata.labelTitle).c_str());
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Details: %s", (messagedata.labelDetails).c_str());
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Time: %s", (messagedata.labelTime).c_str());
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message Read: %d", messagedata.isRead);
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "--------------------------------------");
-    }
     void MessageModel::InitMessageListItems()
     {
         // 读取json数据
@@ -212,7 +179,40 @@ namespace OHOS
     {
         return popupViewState;
     }
+    /*保存json数据*/
+    void MessageModel::SaveMessageData(const std::vector<MessageData> &messageVector)
+    {
+        cJSON *root = cJSON_CreateObject();
+        cJSON *dataArray = cJSON_CreateArray();
+
+        for (const auto &message : messageVector)
+        {
+            cJSON *item = cJSON_CreateObject();
+            cJSON_AddStringToObject(item, "title", message.labelTitle.c_str());
+            cJSON_AddStringToObject(item, "msg", message.labelDetails.c_str());
+            cJSON_AddNumberToObject(item, "time", message.timestamp);
+            cJSON_AddNumberToObject(item, "read", message.isRead);
+
+            cJSON_AddItemToArray(dataArray, item);
+        }
+
+        cJSON_AddItemToObject(root, "infor", dataArray);
+
+        std::string jsonString = cJSON_Print(root);
+        cJSON_Delete(root);
 
+        std::ofstream file(MESSAGE_JSON_FILE);
+        if (file.is_open())
+        {
+            file << jsonString;
+            file.close();
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveMessageData is ok");
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to open file for writing");
+        }
+    }
     // 获取目前的message
     MessageData *MessageModel::GetCurrentMessageData()
     {
@@ -264,6 +264,24 @@ namespace OHOS
 
         return true;
     }
+    // 设置当前项已读
+    bool MessageModel::SetMessageIsread()
+    {
+        // 保存更新后的消息数据
+        std::vector<MessageData> messageVector = LoadMessageData();
+        if (!messageVector.empty())
+        {
+            messageVector[GetCurrentIndex()].isRead = true;
+            SaveMessageData(messageVector);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Message marked as read and data saved");
+            return true;
+        }
+        else
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to mark message as read and save data");
+            return false;
+        }
+    }
     // 获取最新消息项
     MessageData *MessageModel::GetNewestData()
     {
index 5d9abf3..a7fdbec 100644 (file)
@@ -151,6 +151,7 @@ namespace OHOS
 
             MessageModel::GetInstance().SetCurrentMessageData(&messageData);
             MessageModel::GetInstance().SetCurrentIndex(arraynum - index);
+            MessageModel::GetInstance().SetMessageIsread();
             // 切换到详情界面
             NativeAbility::GetInstance().ChangeSlice(VIEW_MESSAGE_SHOW);