优化哄睡与蓝牙逻辑
authorxue <2144439972@qq.com>
Sat, 20 Dec 2025 07:47:11 +0000 (15:47 +0800)
committerxue <2144439972@qq.com>
Sat, 20 Dec 2025 07:47:11 +0000 (15:47 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdMainView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp

index 7514a15..c61961a 100644 (file)
@@ -897,10 +897,20 @@ namespace OHOS
             }
             InvalidateGroup1(false);
         }
-        if(showView == THUNDERBIRD_BLUEVIEW && hideView == THUNDERBIRD_LULLABYVIEW)
+        if(showView == THUNDERBIRD_BLUEVIEW )
         {
-            do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_FINISH, NULL, 0);//确认结束哄睡
-            ThunderBirdModel::GetInstance()->OnExitLullabyMode();
+            if(hideView == THUNDERBIRD_LULLABYVIEW)
+            {
+                ThunderBirdModel::GetInstance()->HandleSleepModeEnd();
+            }
+            else if(hideView == THUNDERBIRD_DIALOGUEVIEW && (currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING))
+            {
+                ln_ws_end_audio_chat();//结束对话
+                AI_ForceInterrupt();
+                ln_ws_send_voice_chat_interrupt("退出对话");
+                ThunderBirdModel::GetInstance()->OnExitDialogueMode();
+                do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
+            }
         }
         if (hideView != MAXVIEW)
         {
index a583be8..f1dfd44 100644 (file)
@@ -2815,8 +2815,9 @@ extern "C" {
             //亮屏
             uapi_set_screen_on_api();
             int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); //获取当前视图
+            int currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
             //如果在对话界面,则停止对话
-            if(currentView == THUNDERBIRD_DIALOGUEVIEW)
+            if(currentView == THUNDERBIRD_DIALOGUEVIEW && (currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING))
             {
                 ln_ws_end_audio_chat();//结束对话
                 AI_ForceInterrupt();
@@ -2826,9 +2827,8 @@ extern "C" {
             //如果在哄睡界面,则停止哄睡
             if(currentView == THUNDERBIRD_LULLABYVIEW)
             {
-                do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_STORY_FINISH, NULL, 0);//确认结束哄睡
-                // 退出哄睡模式时恢复时间线表情
-                ThunderBirdModel::GetInstance()->OnExitLullabyMode();
+           // 退出哄睡模式时恢复时间线表情
+                ThunderBirdModel::GetInstance()->HandleSleepModeEnd();
             }
             // 检查是否有已绑定的设备
             BluetoothModel* btModel = BluetoothModel::GetInstance();