From: luozheng <1732036298@qq.com> Date: Fri, 12 Jul 2024 11:16:23 +0000 (+0800) Subject: 更新AI字符串改为异步线程更新解决list闪屏问题 X-Git-Tag: release_V1.2.70_20241020_135402~820 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=9cbb07d27586587abcc91da89084e04b6a1cd644;p=mirrors%2FFD230.git 更新AI字符串改为异步线程更新解决list闪屏问题 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp index 8ec0813ba..0944b512d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp @@ -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回答字符串*/ diff --git a/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h b/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h index 1e10287e5..c7e7eebc3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h +++ b/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h @@ -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; diff --git a/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp b/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp index 8a12eaab0..1268b42bb 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp @@ -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 }