From: xue <2144439972@qq.com> Date: Tue, 28 Oct 2025 10:15:22 +0000 (+0800) Subject: 增加未绑定的对话处理 X-Git-Tag: V1.0.9_20251128_194606_LN~159 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=c52f27538c53ed4fcc196df2f3f5e43b2bff429b;p=mirrors%2FFD230.git 增加未绑定的对话处理 --- diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdAdjustView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdAdjustView.cpp index 0e64ad40a..41df350fc 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdAdjustView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdAdjustView.cpp @@ -251,16 +251,16 @@ namespace OHOS void ThunderBirdAdjustView::ShowUnbindWarning() { if (TextLabel) - { - TextLabel->SetPosition(0, 148, 360, 42); + { + TextLabel->SetPosition(0, 120, 360, 42); TextLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - TextLabel->SetText("设备已解绑"); + TextLabel->SetText("解绑成功!"); TextLabel->SetVisible(true); } if (RemindLabel) { - RemindLabel->SetPosition(0, 230, 360, 28); - RemindLabel->SetText("等待设备重启"); + RemindLabel->SetPosition(0, 190, 360, 28); + RemindLabel->SetText("待重启..."); RemindLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); RemindLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 25); RemindLabel->SetVisible(true); @@ -268,7 +268,6 @@ namespace OHOS if (RemindIcon) { RemindIcon->SetVisible(false);} if (RemindIcon2) { RemindIcon2->SetVisible(false);} if (RemindIcon3) { RemindIcon3->SetVisible(false);} - } } diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdLullabyView.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdLullabyView.cpp index 3031a7152..530630515 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdLullabyView.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdLullabyView.cpp @@ -5,6 +5,9 @@ #include #include "UiConfig.h" #include "custom_utils.h" +#include "ln_api.h" +#include "thunderbird/include/ThunderBirdPresenter.h" +#include "ai_media.h" namespace OHOS { @@ -357,18 +360,50 @@ namespace OHOS { ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdLullabyView::Show: THUNDERBIRD_LULLABYVIEW_4"); + + // 检查是否在对话模式 + ThunderBirdPresenter *presenter = ThunderBirdPresenter::GetInstance(); + if(presenter && presenter->isDialogueing) + { + // 进入故事模式时退出对话模式 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入故事模式,退出对话模式"); + + // 停止定时器 + ThunderBirdModel::GetInstance()->StopCountUpTimer(); + + // 停止AI语音播放 + ai_media_play_stop(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdLullabyView::Show: Stopped AI audio playback"); + + // 结束音频聊天 + ln_ws_end_audio_chat(); + + // 强制中断AI + AI_ForceInterrupt(); + ln_ws_send_voice_chat_interrupt("进入故事模式"); + + // 反初始化音频 + // do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0); + + // 设置对话状态为false + presenter->isDialogueing = false; + + // 调用退出对话模式 + ThunderBirdModel::GetInstance()->OnExitDialogueMode(); + } //长亮屏 ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); if (TextLabel) { - TextLabel->SetPosition(35, 64, 325, 42); + TextLabel->SetPosition(35, 64, 300, 42); + TextLabel->SetText("");//设置为空 TextLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE); TextLabel->SetRollSpeed(55); TextLabel->SetVisible(true); } if (TextLabel_Y) { - TextLabel_Y->SetPosition(37, 66, 325, 42); + TextLabel_Y->SetPosition(37, 66, 300, 42); TextLabel_Y->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE); TextLabel_Y->SetStyle(STYLE_TEXT_COLOR, 0xff000000); TextLabel_Y->SetRollSpeed(55); 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 11990e901..61d8955e8 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 @@ -738,7 +738,7 @@ namespace OHOS GRAPHIC_LOGE("surfaceView is nullptr\n"); return; } - colorKey_.full = 0xffecdbd4; + colorKey_.full = 0x00ecdbd4; surfaceView_->SetViewId("sur"); surfaceView_->SetPosition(0, 0, VIDEO_WIDTH, VIDEO_HEIGHT); surfaceView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); 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 407378021..7d90c1830 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 @@ -2188,11 +2188,22 @@ { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart"); if (ThunderBirdMainView::GetInstance()) { - int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); //获取当前视图 - ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4); - //清空文本队列 - ClearAudioTextQueue(); - ln_ws_audio_init();//功耗优化 + int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); + //若为意图识别结果,则跳转到4,否则跳转到2 + if(is_intention_result == 0) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 意图识别结果,跳转到4"); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4); + //清空文本队列 + ClearAudioTextQueue(); + ln_ws_audio_init();//功耗优化 + ln_ws_send_random_story_request("随机故事"); + } + else//意图识别结果 + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 非意图识别结果,跳转到2"); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2); + } } else { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView instance is null, cannot start sleep mode"); } 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 89c9a44ec..0045ae7fb 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 @@ -501,6 +501,12 @@ namespace OHOS ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_GUIDEVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3); break; case ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3: + ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_GUIDEVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_4); + break; + case ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_4: + ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_GUIDEVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_5); + break; + case ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_5: ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_GUIDEVIEW, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_1); break; } @@ -554,7 +560,11 @@ namespace OHOS { switch (currentSubView) { case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2: - ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3); + ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4); + //清空文本队列 + ThunderBirdModel::GetInstance()->ClearAudioTextQueue(); + ln_ws_audio_init();//功耗优化 + ln_ws_send_random_story_request("随机故事"); break; case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3: ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4); @@ -691,7 +701,8 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyLongPress: currentView=%d, currentSubView=%d, isDialogueing=%d", currentView, currentSubView, isDialogueing); - if(currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW) + if((currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW) + || (currentView == THUNDERBIRD_GUIDEVIEW)) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入对话模式"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING); @@ -716,9 +727,8 @@ namespace OHOS } // 停止实际的音频播放 - // ai_media_play_stop(); - // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdDialogueView::AudioPlaybackEnd: Stopped audio playback"); - // + ai_media_play_stop(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress: Stopped AI audio playback"); ln_ws_end_audio_chat();//结束对话 // 退出对话模式时恢复表情 @@ -740,11 +750,6 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress"); ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_5); } - else if(currentView == THUNDERBIRD_GUIDEVIEW) - { - ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3); - ThunderBirdGuideView::GetInstance()->UpdateTextLabel("先小程序扫码绑定\n才能开始对话哦~"); - } } }