通过消息进行UI更新主界面状态显示
authorCaisking <3449750381@qq.com>
Tue, 20 Aug 2024 10:51:55 +0000 (18:51 +0800)
committerCaisking <3449750381@qq.com>
Tue, 20 Aug 2024 10:51:55 +0000 (18:51 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp
code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp

index 9a96317..cc26587 100644 (file)
@@ -81,6 +81,7 @@ namespace OHOS
         DialState getHighestPriorityActiveState();\r
         bool getMessageActiveState();\r
         void printDialStates();\r
+        void UpdateDialState();\r
 \r
     private:\r
         void InitDialSettingDefault(int Id);\r
index 6f880b0..e151605 100644 (file)
@@ -14,6 +14,7 @@
 #include <array>\r
 #include <stdexcept>\r
 #include "MainViewSample.h"\r
+#include "ui_service.h"\r
 namespace OHOS\r
 {\r
     static const int CARD_SETTING_VALUE_LEN = 32;\r
@@ -501,10 +502,8 @@ namespace OHOS
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d is error", stateIndex);\r
         }\r
-        \r
-        /*进行主界面UI更新通知 如果在主界面*/\r
-        if (MainViewSample::GetInstance() != nullptr)\r
-            MainViewSample::GetInstance()->UpdateStateShow();\r
+\r
+        SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0);\r
     }\r
 \r
     // 接口 2: 获取最高优先级为 true 的状态\r
@@ -538,6 +537,13 @@ namespace OHOS
         return unread_state;\r
     }\r
 \r
+    void MainModel::UpdateDialState()\r
+    {\r
+        /*进行主界面UI更新通知 如果在主界面*/\r
+        if (MainViewSample::GetInstance() != nullptr)\r
+            MainViewSample::GetInstance()->UpdateStateShow();\r
+    }\r
+\r
 }\r
 #if 0\r
     void MainModel::DeleteCardSetting(uint8_t index)\r
index 1caba98..853eab0 100644 (file)
@@ -1,7 +1,7 @@
 /*** 
  * @Date: 2024-07-12 19:25:33
  * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-08-15 14:39:51
+ * @LastEditTime: 2024-08-20 18:34:42
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
  */
 /*
@@ -77,6 +77,7 @@ typedef enum {
     UI_UPDATE_SLEEP_DATA,       //更新睡眠数据
     UI_UPDATE_MESSAGE_DATA,     //更新消息数据
     UI_UPDATE_HEARTRATE_DATA,   //更新心率曲线
+    UI_UPDATE_DIALSTATE_DATA,   //更新主界面状态
 
     UI_AI_JUMP_TO_RESULT_VIEW,  //跳转到返回结果视图
     UI_AI_JUMP_TO_LISTENING_VIEW,//跳转到AI聆听界面     
index daaf2fe..1e0da34 100644 (file)
@@ -39,6 +39,7 @@
 #include "bundle_install_msg.h"
 #include "graphic_service.h"
 #include "ApplistModel.h"
+#include "MainModel.h"
 #if defined(SUPPORT_POWER_MANAGER)
 #include "power_display_service.h"
 #endif
@@ -118,6 +119,7 @@ extern "C"
     static void HandleUpdateSleep(Request *request);
     static void HandleUpdateMessage(Request *request);
     static void HandleUpdateHeartRate(Request *request);
+    static void HandleUpdateDialState(Request *request);
 
     // 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
     MsgHandlerEntry msgHandlers[] = {
@@ -151,6 +153,7 @@ extern "C"
         {UI_UPDATE_SLEEP_DATA, HandleUpdateSleep},
         {UI_UPDATE_MESSAGE_DATA, HandleUpdateMessage},
         {UI_UPDATE_HEARTRATE_DATA, HandleUpdateHeartRate},
+        {UI_UPDATE_DIALSTATE_DATA, HandleUpdateDialState},
 
     };
     /* -------------------------------------------------------------------------- */
@@ -616,12 +619,20 @@ extern "C"
         GraphicService::GetInstance()->PostGraphicEvent(
             std::bind(&OHOS::MessageModel::UpdateMessageView, &OHOS::MessageModel::GetInstance()));
     }
+    // 更新心率数据
     void HandleUpdateHeartRate(Request *request)
     {
         WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMessage");
         GraphicService::GetInstance()->PostGraphicEvent(
             std::bind(&OHOS::HeartModel::Heart_Update_View, OHOS::HeartModel::GetInstance()));
     }
+    // 更新主界面状态数据
+    void HandleUpdateDialState(Request *request)
+    {
+        WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateMessage");
+        GraphicService::GetInstance()->PostGraphicEvent(
+            std::bind(&OHOS::MainModel::UpdateDialState, &OHOS::MainModel::GetInstance()));
+    }
 /* -------------------------------------------------------------------------- */
 #ifdef __cplusplus
 }