From 462cfffa1699b168ca40c2035f3d59e11f329616 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Thu, 25 Dec 2025 10:47:28 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E6=83=85=E6=81=A2?= =?utf8?q?=E5=A4=8D=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/thunderbird/include/ThunderBirdModel.h | 3 +++ .../thunderbird/src/ThunderBirdDialogueView.cpp | 13 +++++++++++++ .../thunderbird/src/ThunderBirdPresenter.cpp | 8 +++++--- 3 files changed, 21 insertions(+), 3 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 648f1507e..1404cbdfa 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 @@ -423,6 +423,9 @@ namespace OHOS // 对话模式相关标志 bool m_dialogueModeFinished = false; // 对话模式是否已finished(收到finished=true) + + // 表情切换标志位 + bool m_needGetTimelineExpression = false; // 是否需要获取时间线表情(从对话/哄睡退出到发呆中界面时使用) }; } diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp index ce49796d1..d27dca418 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp @@ -244,6 +244,19 @@ namespace OHOS // ThunderBirdModel::GetInstance()->OnExitDialogueMode(); // ThunderBirdPresenter::GetInstance()->SetDialogueing(false); // } + + // 检查是否从对话/哄睡退出,如果是则获取时间线表情 + if (ThunderBirdModel::GetInstance()->m_needGetTimelineExpression) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdDialogueView::Show: 从对话/哄睡退出到发呆中界面,获取时间线表情"); + // 获取时间线表情 + do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_TIMELINE_GET_STATUS, NULL, 0); + // 重置标志位 + ThunderBirdModel::GetInstance()->m_needGetTimelineExpression = false; + } else { + // 正常进入发呆中界面,设置标志位为1 + ThunderBirdModel::GetInstance()->m_needGetTimelineExpression = true; + } + // 从ThunderBirdModel获取当前表情和状态文本 std::string currentStatusText = "发呆中... "; Isband(true); diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp index 97987491b..e3b44899c 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp @@ -444,9 +444,11 @@ namespace OHOS ThunderBirdModel::GetInstance()->ClearAudioTextQueue(); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING); } else if(currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING) { - AI_ForceInterrupt(); - ln_ws_end_audio_chat(); - ln_ws_send_voice_chat_interrupt("新对话开始"); + GraphicService::GetInstance()->PostGraphicEvent([]() { + AI_ForceInterrupt(); + ln_ws_end_audio_chat(); + ln_ws_send_voice_chat_interrupt("新对话开始"); + }); ThunderBirdDialogueView::GetInstance()->IsReconnect = true; WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始录音,跳转到聆听状态"); // 开始录音 -- 2.17.1