优化关闭流程 3002/1 3002/head 3003/target/1
author孙春阳 <snickersun@163.com>
Tue, 30 Dec 2025 09:07:02 +0000 (17:07 +0800)
committer孙春阳 <snickersun@163.com>
Tue, 30 Dec 2025 09:07:02 +0000 (17:07 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index f52bc32..7a7f675 100644 (file)
@@ -451,14 +451,14 @@ namespace OHOS
             ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
         } else if(currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING) {
             // 检查 WebSocket 连接状态,如果正在重连,等待重连完成
-            int wsState = ln_ws_get_connection_state();
-            bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2
+            // int wsState = ln_ws_get_connection_state();
+            // bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2
             
-            if (!wsConnected) {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleDialogueFunction: WebSocket未连接(状态=%d),等待连接完成", wsState);
-                // WebSocket 未连接,不执行操作,避免状态混乱
-                return;
-            }
+            // if (!wsConnected) {
+            //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleDialogueFunction: WebSocket未连接(状态=%d),等待连接完成", wsState);
+            //     // WebSocket 未连接,不执行操作,避免状态混乱
+            //     return;
+            // }
             // 通过异步线程执行复杂操作,避免阻塞UI线程和栈溢出
             #if 0
             // ThunderBirdMainView::ComplexOperationThread(true);
@@ -1255,11 +1255,6 @@ namespace OHOS
             }
             else if(currentView == THUNDERBIRD_DIALOGUEVIEW)
             {
-                if(isDialogueExitFinished == false)
-                {
-                    return;
-                }
-                isDialogueExitFinished = false;
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "退出对话模式,当前子状态: %d", currentSubView);
 
                 ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
@@ -1276,14 +1271,8 @@ namespace OHOS
                 // 停止实际的音频播放
                 // ai_media_play_stop();
                 // 退出对话模式时恢复表情
-                //如果ws未连接,则不发送打断请求
-                int wsState = ln_ws_get_connection_state();
-                bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2
-                if(wsConnected)
-                {
                 AI_ForceInterrupt();
                 ln_ws_send_voice_chat_interrupt("退出对话");
-                }
                 do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
                 
                 // 退出对话模式,执行清理
@@ -1292,10 +1281,10 @@ namespace OHOS
                 // 先设置退出标志,防止录音结束回调误判为正常录音结束
                 isDialogueing = false;
                 // 等待视频切换完成,避免在视频切换过程中退出导致资源冲突
-                // if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::IsSwitchingVideo()) {
-                //     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress: 等待视频切换完成");
-                //     ThunderBirdMainView::WaitForVideoSwitchComplete(2000);
-                // }
+                if (ThunderBirdMainView::GetInstance() && ThunderBirdMainView::IsSwitchingVideo()) {
+                    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress: 等待视频切换完成");
+                    ThunderBirdMainView::WaitForVideoSwitchComplete(2000);
+                }
             
                 // 检查绑定状态,如果未绑定则跳转到 THUNDERBIRD_GUIDEVIEW_5
                 if (!ThunderBirdModel::GetInstance()->getbind_status()) {
@@ -1313,7 +1302,7 @@ namespace OHOS
                 {
                     ThunderBirdReminderView::GetInstance()->HideAll();
                 }
-                isDialogueExitFinished = true;
+                
             }
             //当为故事模式
             else if(currentView == THUNDERBIRD_LULLABYVIEW && currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_4)