优化小程序下发的哄睡逻辑
authorxue <2144439972@qq.com>
Wed, 26 Nov 2025 14:17:45 +0000 (22:17 +0800)
committerxue <2144439972@qq.com>
Wed, 26 Nov 2025 14:17:45 +0000 (22:17 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index df1c284..8a2140b 100644 (file)
@@ -294,6 +294,9 @@ namespace OHOS
         void RegisterAllKeyEvents(void);
 
         bool init_falg = false;
+        
+        // 睡眠模式激活标志位
+        bool g_sleep_mode_active = false;
 
     private:
         ThunderBirdModel();
index ad8dca3..cbdcd67 100644 (file)
@@ -2495,6 +2495,8 @@ extern "C" {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 意图识别结果,跳转到2");
                 //看后续是否需要
                 ln_ws_end_audio_chat();//结束对话
+                g_sleep_mode_active = true;
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 睡眠模式已开始");
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2);
            }
         } else {
@@ -2698,6 +2700,7 @@ extern "C" {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: 故事模式finished且音频播放结束,结束故事模式");
             // 重置标志
             m_storyModeFinished = false;
+            g_sleep_mode_active = false;
             // 结束故事模式
             HandleSleepModeEnd();
             return;
index c5df130..529b633 100644 (file)
@@ -684,6 +684,7 @@ namespace OHOS
                 do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
                 ThunderBirdModel::GetInstance()->HighFrequence();//恢复视频帧率
                 ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); // 关闭屏幕常亮
+                ThunderBirdModel::GetInstance()->g_sleep_mode_active = false;//睡眠模式激活标志位
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
                 break;
         }