From 57d2a0bf349acd04ee4b3a3917acf7ece50e27ab Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Fri, 1 Aug 2025 17:52:46 +0800 Subject: [PATCH] =?utf8?q?4GAI=E5=88=A0=E9=99=A4=E5=86=97=E4=BD=99?= =?utf8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/aivoice/src/AiVoiceModel.cpp | 3 +- .../nativeui/aivoice/src/AiVoicePresenter.cpp | 113 ++++++++---------- .../nativeui/uiservice/include/ui_service.h | 1 - .../nativeui/uiservice/src/ui_service.cpp | 10 -- 4 files changed, 49 insertions(+), 78 deletions(-) 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 17adca01d..0f248c3de 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp @@ -1551,8 +1551,7 @@ namespace OHOS if (AiVoiceModel::GetInstance().GetInit_4gai_task()) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "4gAi服务初始化成功"); - bool state = true; - SendMsgToUIService(UI_4G_AI_INIT_STAUS, 0, &state, sizeof(bool)); + // SendMsgToUIService(UI_4G_AI_INIT_STAUS, 0, &state, sizeof(bool)); uapi_UI_start_asr(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType()); AiVoiceModel::GetInstance().stop_ai4g_connect_timer(); p_AiVoicePresenter->ChangeViewAndLogicOperator(AIVOICE_4GSERVICECON_VIEW, AIVOICE_AIMODE_CONNECTING); diff --git a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp index 098bbb867..3a3449afd 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp @@ -411,68 +411,7 @@ namespace OHOS { UNUSED(event); std::string viewId = view.GetViewId(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnRelease %s", viewId.c_str()); - /* ----------------------------- 重置60s取消常亮屏timer ---------------------------- */ - model->reset_ai_screen60s_timer_time(); - /* -------------------------------------------------------------------------- */ - std::unordered_map> viewIdMap = { - {AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面,并清除手表聊天记录 - {AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_LISTENING_VIEWID}}, // 返回继续聆听,并清除手表聊天记录 - }; - auto it = viewIdMap.find(viewId); - if (it != viewIdMap.end()) - { -#if 0 - if(!model->GetIsClickable()) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "当前还不可点击"); - return true; - } -#endif - if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题 - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat"); - PlayersModel::GetInstance()->HandPausePhoneMusic(); // 暂停手机音乐 - PlayersModel::GetInstance()->PlayerPause(); // 暂停手机音乐 - if (model->GetSelect4gorbt() == AI_SELECT_4G) - { - AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer(); - // usleep(50000); - set_clear_queue_stream(1); - LOS_Msleep(100); - uapi_UI_start_asr(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType()); - ChangeViewAndLogicOperator(AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_AIMODE_CONNECTING); - return true; - } - else if (model->GetSelect4gorbt() == AI_SELECT_BT) - { - AiVoiceModel::GetInstance().CancelCurAIChat(); - // AiVoiceModel::GetInstance().sendAIIsReady(); - } - } - else if (it->first == AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID) - { - if (model->GetSelect4gorbt() == AI_SELECT_4G) - { - AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer(); - // model->cancel_tts_play(); - set_clear_queue_stream(1); - // usleep(50000); - LOS_Msleep(100); - dinit_ai_task(); - } - } - ChangeViewAndLogicOperator(it->second.first, it->second.second); - return true; - } - return true; - } - - bool AiVoicePresenter::OnRelease(UIView &view, const ReleaseEvent &event) - { - UNUSED(event); - std::string viewId = view.GetViewId(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnRelease %s", viewId.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::OnPress %s", viewId.c_str()); /* ----------------------------- 重置60s取消常亮屏timer ---------------------------- */ model->reset_ai_screen60s_timer_time(); /* -------------------------------------------------------------------------- */ @@ -619,20 +558,60 @@ namespace OHOS else if (viewId == AIVOICE_SELECT_VIEW_BUTTONBT_VIEW_ID) // 如果点击的是蓝牙连接方式 { model->SetSelect4gorbt(AI_SELECT_BT); - dinit_ai_task(); ChangeViewAndLogicOperator(model->GetCurView(), AIVOICE_AIMODE_CONNECTING); return true; } std::unordered_map> viewIdMap = { + {AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面,并清除手表聊天记录 + {AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID, {AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_LISTENING_VIEWID}}, // 返回继续聆听,并清除手表聊天记录 + }; + auto it = viewIdMap.find(viewId); + if (it != viewIdMap.end()) + { + if (it->first == AIVOICERETURNRESULTTEXT_CONTINUECHAT_BUTTON_VIEW_ID) // 点击继续对话按钮要发取消当前对话指令,避免AI回应中途按继续对话按钮没有取消上一次对话问题 + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CancelCurAIChat"); + PlayersModel::GetInstance()->HandPausePhoneMusic(); // 暂停手机音乐 + PlayersModel::GetInstance()->PlayerPause(); // 暂停手机音乐 + if (model->GetSelect4gorbt() == AI_SELECT_4G) + { + AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer(); + // usleep(50000); + set_clear_queue_stream(1); + LOS_Msleep(100); + uapi_UI_start_asr(AiVoiceModel::GetInstance().GetCurUsing4GAiModelType()); + ChangeViewAndLogicOperator(AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_AIMODE_CONNECTING); + return true; + } + else if (model->GetSelect4gorbt() == AI_SELECT_BT) + { + AiVoiceModel::GetInstance().CancelCurAIChat(); + } + } + else if (it->first == AIVOICERETURNRESULTTEXT_RETURN_BUTTON_VIEW_ID) + { + if (model->GetSelect4gorbt() == AI_SELECT_4G) + { + AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer(); + set_clear_queue_stream(1); + LOS_Msleep(100); + dinit_ai_task(); + } + } + ChangeViewAndLogicOperator(it->second.first, it->second.second); + return true; + } + + std::unordered_map> viewIdMap2 = { {ALERT_APPBLUETOOTH_AND_4GNETWORK_ENSURE_BUTTON_VIEW_ID, {AIVOICE_ALERT_APPBLUETOOTH_AND_4GNETWORK_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面 {AIMODEL_CONNECT_FAILED_ENSURE_BUTTON_VIEW_ID, {AIVOICE_AIMODEL_CONNECT_FAILED_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面 {AIVOICECONNECTTIMEOUT_ENSURE_BUTTON_VIEW_ID, {AIVOICE_CONNECT_TIMEOUT_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面 {CANCEL_THINKING_BUTTON_VIEW_ID, {AIVOICE_THINKING_VIEWID, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面 {AIVOICECONNECTINGVIEW_CANCEL_BUTTON_VIEW_ID, {AIVOICE_AIMODE_CONNECTING, AIVOICE_STARTCHAT_VIEWID}}, // 返回一级界面 }; - auto it = viewIdMap.find(viewId); - if (it != viewIdMap.end()) + it = viewIdMap2.find(viewId); + if (it != viewIdMap2.end()) { if (it->first != ALERT_APPBLUETOOTH_AND_4GNETWORK_ENSURE_BUTTON_VIEW_ID) { @@ -647,6 +626,10 @@ namespace OHOS } return true; } + bool AiVoicePresenter::OnRelease(UIView &view, const ReleaseEvent &event) + { + return true; + } bool AiVoicePresenter::OnDrag(UIView &view, const DragEvent &event) { 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 241684a68..31c4003a8 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 @@ -79,7 +79,6 @@ typedef enum { UI_UPDATE_HEARTRATE_DATA, //更新心率曲线 UI_UPDATE_DIALSTATE_DATA, //更新主界面状态 - UI_4G_AI_INIT_STAUS, //4G AI 初始化状态 UI_AI_JUMP_TO_RESULT_VIEW, //跳转到返回结果视图 UI_AI_JUMP_TO_LISTENING_VIEW,//跳转到AI聆听界面 UI_AI_JUMP_TO_RESPONDERR_VIEW,//处理跳转AI回应错误界面 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 b284b6261..76499fdad 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 @@ -177,7 +177,6 @@ extern "C" {UI_UPDATE_HEARTRATE_DATA, HandleUpdateHeartRate}, {UI_UPDATE_DIALSTATE_DATA, HandleUpdateDialState}, {UI_UPDATE_ALARM_INFO, HandleUpdateAlarmInfo}, - {UI_4G_AI_INIT_STAUS, HandleUpdateInit_4gai_task}, }; /* -------------------------------------------------------------------------- */ void ScreenTurnOn(int32_t timeout) @@ -713,15 +712,6 @@ extern "C" std::bind(&OHOS::LanguageSwitchModel::LanguageSwitchViewupdata, &OHOS::LanguageSwitchModel::GetInstance(),id)); } - static void HandleUpdateInit_4gai_task(Request *request) - { - WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateInit_4gai_task"); - uint8_t data = *((uint8_t *)request->data); - GraphicService::GetInstance()->PostGraphicEvent( - std::bind(&OHOS::AiVoiceModel::SetInit_4gai_task, &OHOS::AiVoiceModel::GetInstance(),data)); - } - - /* -------------------------------------------------------------------------- */ #ifdef __cplusplus } -- 2.17.1