更新AI字符串改为异步线程更新解决list闪屏问题 516/1 516/head
authorluozheng <1732036298@qq.com>
Fri, 12 Jul 2024 11:16:23 +0000 (19:16 +0800)
committerluozheng <1732036298@qq.com>
Fri, 12 Jul 2024 11:16:23 +0000 (19:16 +0800)
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp

index 8ec0813..0944b51 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:14:50
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-12 11:59:20
+ * @LastEditTime: 2024-07-12 19:01:19
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
  */
 #include "aivoice/include/AiVoiceModel.h"
@@ -361,10 +361,11 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */
         aiAnswerStr += str;
         /* -------------------------------------------------------------------------- */
-        if (!UpdateAiAnswerStr())
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::UpdateAiAnswerStr fail!!");
-        }
+        // if (!UpdateAiAnswerStr())
+        // {
+        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::UpdateAiAnswerStr fail!!");
+        // }
+        SendMsgToUIService(UI_UPDATE_AI_QUESTION_STR, 0, nullptr, 0);
     }
 
     /*清空上次用户问题和Ai回答字符串*/
index 1e10287..c7e7eeb 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-25 17:58:27
+ * @LastEditTime: 2024-07-12 18:56:55
  * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
  */
 /*
@@ -66,10 +66,11 @@ typedef enum {
     UI_UPDATE_SYSTEM_VOLUME,    //更新系统音量 
     UI_UPDATE_CALL_VOLUME,      //更新通话音量 
     UI_UPDATE_VIBRATION_MODE,   //更新震动模式  
-    UI_UPDATE_SILENT_MODE,      //更新静音模式  
+    UI_UPDATE_SILENT_MODE,      //更新静音模式
 
     UI_UPDATE_WEATHER_DATA,     //天气数据更新
-    UI_AI_RESPONSE_USERDATA,    //跳转到返回结果视图    
+    UI_AI_RESPONSE_USERDATA,    //跳转到返回结果视图
+    UI_UPDATE_AI_QUESTION_STR,  //更新AI答案的字符串       
     MAX_NUM_HANDLER, 
 } UiServiceMsgId;
 
index 8a12eaa..1268b42 100644 (file)
@@ -103,6 +103,7 @@ static void HandleUpdateCallVolume(Request *request);
 static void HandleUpdateVibrationMode(Request *request);
 static void HandleUpdateSilentMode(Request *request);
 static void HandleAiResponseUserData(Request *request);
+static void HandleUpdateAIQuestionStr(Request *request);
 
 // 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
 MsgHandlerEntry msgHandlers[] = {
@@ -128,6 +129,7 @@ MsgHandlerEntry msgHandlers[] = {
     {UI_UPDATE_VIBRATION_MODE, HandleUpdateVibrationMode},
     {UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode},
     {UI_AI_RESPONSE_USERDATA, HandleAiResponseUserData},
+    {UI_UPDATE_AI_QUESTION_STR, HandleUpdateAIQuestionStr},
     };
 /* -------------------------------------------------------------------------- */
 static void ScreenTurnOn(Request *request)
@@ -519,6 +521,14 @@ void HandleAiResponseUserData(Request *request)
     GraphicService::GetInstance()->PostGraphicEvent(
         std::bind(&OHOS::AiVoiceModel::ChangeToReturnResultTextView, &OHOS::AiVoiceModel::GetInstance()));
 }
+
+//处理更新AI答案字符串
+void HandleUpdateAIQuestionStr(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateAIQuestionStr");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::AiVoiceModel::UpdateAiAnswerStr, &OHOS::AiVoiceModel::GetInstance()));
+}
 /* -------------------------------------------------------------------------- */
 #ifdef __cplusplus
 }