// 对话模式相关标志
bool m_dialogueModeFinished = false; // 对话模式是否已finished(收到finished=true)
+
+ // 表情切换标志位
+ bool m_needGetTimelineExpression = false; // 是否需要获取时间线表情(从对话/哄睡退出到发呆中界面时使用)
};
}
// 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);
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, "开始录音,跳转到聆听状态");
// 开始录音