增加二次确认哄睡协议
authorxue <2144439972@qq.com>
Thu, 6 Nov 2025 06:55:54 +0000 (14:55 +0800)
committerxue <2144439972@qq.com>
Thu, 6 Nov 2025 06:55:54 +0000 (14:55 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index 773bf27..9864d53 100644 (file)
        expressionPath += "/";
        expressionPath += eyeColor;
        expressionPath += ".mp4";
+        // 检查文件是否存在(宽松检查)
+        if (access(expressionPath.c_str(), F_OK) != 0) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::SwitchExpressionVideo: file does not exist: %s", expressionPath.c_str());
+        return false;
+        }
+    
+    // 尝试检查文件大小(非强制)
+        struct stat fileStat;
+        if (stat(expressionPath.c_str(), &fileStat) == 0) {
+            if (fileStat.st_size == 0) {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::SwitchExpressionVideo: file is empty: %s", expressionPath.c_str());
+                return false;
+            }
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::SwitchExpressionVideo: file size: %ld bytes", fileStat.st_size);
+        } else {
+            WEARABLE_LOGW(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::SwitchExpressionVideo: cannot get file stat for %s, proceeding anyway", expressionPath.c_str());
+        }
        
        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::SwitchExpression: switching to %s", expressionPath.c_str());
        // 通过图形服务调用 ThunderBirdMainView 的 SwitchVideo 函数
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleSleepModeStart: 意图识别结果,跳转到2");
                 //看后续是否需要
                 ln_ws_end_audio_chat();//结束对话
-                ln_ws_send_sleep_mode_inquire("哄我睡觉");
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2);
            }
         } else {
index 224b4e3..0796dea 100644 (file)
@@ -172,7 +172,7 @@ namespace OHOS
             int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
             
             //如果在二维码界面 要一直判断绑定状态 绑定成功就返回主界面
-            if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3)
+            if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_5)
             {
                 //更新二维码
                 UpdateQrcodeIfValid();
@@ -455,6 +455,7 @@ namespace OHOS
     void ThunderBirdPresenter::ShowVolumeAdjustment(int volumeDelta)
     {
         ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "音量调节");
         if (ThunderBirdReminderView::GetInstance()) {
             ThunderBirdModel::GetInstance()->StartReminderHideTimer(1000);
             ThunderBirdReminderView::GetInstance()->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME);
@@ -580,10 +581,11 @@ namespace OHOS
             case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_2:
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_LULLABYVIEW, ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3);
                 //清空文本队列
-                ln_ws_end_audio_chat();//结束对话
-                AI_ForceInterrupt();
-                ln_ws_send_voice_chat_interrupt("进入哄睡");
+                // ln_ws_end_audio_chat();//结束对话
+                // AI_ForceInterrupt();
+                // ln_ws_send_voice_chat_interrupt("进入哄睡");
                 ThunderBirdModel::GetInstance()->ClearAudioTextQueue();
+                ln_ws_send_sleep_mode_inquire("StartSleepMode");//二次确认后询问
                 // ln_ws_start_audio_chat(LN_AUDIO_CHAT_CHOOSE_STORY_REQUEST);
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleLullabyViewNavigation: 选择故事");
                 //ln_ws_send_random_story_request("随机故事");