From de19a4f7b92dfa9742b54f64c92c6bd1387bfb0e Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Wed, 14 Jan 2026 11:51:06 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E8=93=9D=E7=89=99=E7=95=8C?= =?utf8?q?=E9=9D=A2=E5=88=87=E6=8D=A2=E5=85=B6=E4=BB=96=E7=95=8C=E9=9D=A2b?= =?utf8?q?ug?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../thunderbird/include/ThunderBirdModel.h | 1 + .../thunderbird/src/ThunderBirdMainView.cpp | 2 +- .../thunderbird/src/ThunderBirdModel.cpp | 50 ++++++++++++------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h index 06a923360..eeadcd362 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h @@ -234,6 +234,7 @@ namespace OHOS // 哄睡模式处理函数 void HandleSleepModeStart(const char* theme, int is_intention_result); void HandleSleepModeEnd(); + void HandleSleepModeEnd_BlueView(); void HandleBindAndUnbind(int is_bind); // 处理故事响应消息的finished标志 diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp index bc58fd1f4..578dc7c34 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp @@ -1168,7 +1168,7 @@ namespace OHOS if(hideView == THUNDERBIRD_LULLABYVIEW) { - ThunderBirdModel::GetInstance()->HandleSleepModeEnd(); + ThunderBirdModel::GetInstance()->HandleSleepModeEnd_BlueView(); } else if(hideView == THUNDERBIRD_DIALOGUEVIEW && (currentSubView_ == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView_ == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)) { diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index cfce431c6..87e2058a3 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -2952,24 +2952,6 @@ extern "C" { if (ThunderBirdMainView::GetInstance()) { int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); //获取当前视图 - - // 如果当前视图已经是蓝牙界面,说明是从蓝牙连接触发的退出,不需要再切换到对话界面 - if (currentView == THUNDERBIRD_BLUEVIEW) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleSleepModeEnd: 当前已在蓝牙界面,跳过切换到对话界面"); - // 退出哄睡模式时恢复时间线表情 - OnExitLullabyMode(); - if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::GetInstance()->listenIcon) { - ThunderBirdMainView::GetInstance()->listenIcon->SetVisible(false); - } - //直接退出到状态显示界面 - AI_ForceInterrupt(); - ln_ws_send_voice_chat_interrupt("退出哄睡"); - //推送结束故事消息 - do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_FINISH, NULL, 0); - do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0); - return; - } - // 退出哄睡模式时恢复时间线表情 OnExitLullabyMode(); if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::GetInstance()->listenIcon) { @@ -2986,6 +2968,38 @@ extern "C" { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView instance is null, cannot end sleep mode"); } } + + void ThunderBirdModel::HandleSleepModeEnd_BlueView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeEnd"); + // 停止故事模式超时定时器 + StopStoryModeTimeoutTimer(); + // 重置故事模式finished标志 + m_storyModeFinished = false; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "退出故事模式,重新启用VAD"); + int vad_ret = ln_ws_enable_vad_server(); + if (vad_ret == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VAD已成功启用"); + } else { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "启用VAD失败: %d", vad_ret); + } + + + // 如果当前视图已经是蓝牙界面,说明是从蓝牙连接触发的退出,不需要再切换到对话界面 + if (currentView == THUNDERBIRD_BLUEVIEW) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleSleepModeEnd: 当前已在蓝牙界面,跳过切换到对话界面"); + // 退出哄睡模式时恢复时间线表情 + OnExitLullabyMode(); + if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::GetInstance()->listenIcon) { + ThunderBirdMainView::GetInstance()->listenIcon->SetVisible(false); + } + //直接退出到状态显示界面 + AI_ForceInterrupt(); + ln_ws_send_voice_chat_interrupt("退出哄睡"); + //推送结束故事消息 + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_FINISH, NULL, 0); + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0); + } void ThunderBirdModel::HandleStoryResponseFinished(bool finished) { -- 2.17.1