From ade342eb7938c61de2dfa30b0572a67ff363c81e Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Tue, 13 Jan 2026 21:27:19 +0800 Subject: [PATCH] =?utf8?q?=E5=93=84=E7=9D=A1=E7=BC=A9=E7=9F=AD=E5=BF=83?= =?utf8?q?=E8=B7=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/thunderbird/include/ThunderBirdModel.h | 3 ++- .../nativeui/thunderbird/src/ThunderBirdModel.cpp | 9 +++++++-- 2 files changed, 9 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 afbc62a31..06a923360 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 @@ -349,6 +349,7 @@ namespace OHOS std::string cat1_pyver; bool m_savedBluetoothIconVisible = false; // 进入下载前保存的蓝牙图标显示状态(用于恢复) + bool m_wasInDownloadView = false; // 是否进入过下载界面(OTA视图),用于从下载界面返回时上报 private: ThunderBirdModel(); @@ -435,7 +436,7 @@ namespace OHOS bool close_battery_flag = false; // 电量过低即将关机标志位 int downloadFileType = -1; - bool m_wasInDownloadView = false; // 是否进入过下载界面(OTA视图),用于从下载界面返回时上报 + // 故事模式相关标志 bool m_storyModeFinished = false; // 故事模式是否已finished(收到finished=true) 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 1655ce3da..bd6ba0dee 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 @@ -2889,9 +2889,10 @@ extern "C" { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "关闭VAD失败: %d", vad_ret); } //进入哄睡黑脸保护机制 - if (videoPlay_ == nullptr || videoPlay_->isExited_) + ThunderBirdMainView* mainView = ThunderBirdMainView::GetInstance(); + if (mainView != nullptr && (mainView->videoPlay_ == nullptr || mainView->videoPlay_->isExited_)) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdMainView::SwitchVideo: Video thread exited, switching to winking"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: Video thread exited, switching to winking"); ThunderBirdModel::GetInstance()->SwitchToWinkingExpression(); } // 故事请求已在协议解析阶段处理(ln_parse_sleep_mode_start),此处不再发送 @@ -3732,6 +3733,8 @@ extern "C" { // 进入哄睡模式时记录当前表情(进入THUNDERBIRD_LULLABYVIEW_4时调用) void ThunderBirdModel::OnEnterLullabyMode() { + //进入哄睡模式时,心跳间隔设置为30秒 + ln_ws_set_heartbeat_interval_sec(30); // 记录进入哄睡模式前的时间线表情(用于退出时恢复) m_lullabyExpression = "winking"; WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::OnEnterLullabyMode: 记录时间线表情: %s", m_currentExpression.c_str()); @@ -3783,6 +3786,8 @@ extern "C" { // 退出哄睡模式时恢复表情(退出THUNDERBIRD_LULLABYVIEW_4时调用) void ThunderBirdModel::OnExitLullabyMode() { + //退出哄睡模式时,心跳间隔设置为5分钟 + ln_ws_set_heartbeat_interval_sec(300); // 隐藏小绿点 ThunderBirdMainView* mainView = ThunderBirdMainView::GetInstance(); if (mainView != nullptr && mainView->listenIcon) { -- 2.17.1