优化弹窗打断对话的逻辑
authorxue <2144439972@qq.com>
Sat, 13 Dec 2025 02:30:42 +0000 (10:30 +0800)
committerxue <2144439972@qq.com>
Sat, 13 Dec 2025 02:30:42 +0000 (10:30 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdGuideView.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdGuideView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdLullabyView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index 17ddd2e..d6bc830 100644 (file)
@@ -105,6 +105,7 @@ namespace OHOS
         ImageAnimatorInfo *bandImageInfo{nullptr};
         const char **bandPaths{nullptr};
         int16_t bandFrameCount{0};
+        bool FirstShow{true};
     };
 }
 
index d81b4df..e72de5f 100644 (file)
@@ -39,6 +39,7 @@ namespace OHOS
         if (TextLabel) {
             TextLabel->SetText("换角色,挑声音,哄睡...\nAmby小程序扫码尽享");
         }
+        FirstShow = false;
     }
 
     void ThunderBirdGuideView::ClearAll(void)
@@ -372,7 +373,7 @@ namespace OHOS
 
             bool wsConnected = (ln_ws_get_connection_state() == 2); // WS_STATE_CONNECTED = 2
 
-            if (!wsConnected)
+            if (!wsConnected && FirstShow)
             {
                 TextLabel->SetText("稍等片刻\n二维码正在刷新");
                 // 未连接WS:显示band序列帧,隐藏二维码
@@ -399,7 +400,7 @@ namespace OHOS
         
             if(RemindIcon)
             {
-                RemindIcon->SetPosition(159, 296, 24, 24);
+                RemindIcon->SetPosition(161, 297, 24, 24);
                 RemindIcon->SetSrc("/user/res/volume_up.bin");
                 RemindIcon->SetVisible(true);
             }   
index 8acec2e..b781836 100644 (file)
@@ -381,7 +381,7 @@ namespace OHOS
                 // do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
                 
                 // 设置对话状态为false
-                presenter->isDialogueing = false;
+                presenter->SetDialogueing(false);
                 
                 // 调用退出对话模式
                 //ThunderBirdModel::GetInstance()->OnExitDialogueMode();
index 5d1b896..b43e9b9 100644 (file)
@@ -195,22 +195,22 @@ namespace OHOS
         return;
 #endif
         // 检查是否需要等待音频初始化完成后跳转界面
-        if (pendingDialogueJump && ln_ws_is_audio_initialized()) {
-            pendingDialogueJump = false;
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "音频初始化完成,执行延迟的界面跳转");
+        // if (pendingDialogueJump && ln_ws_is_audio_initialized()) {
+        //     pendingDialogueJump = false;
+        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "音频初始化完成,执行延迟的界面跳转");
             
-            int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
-            ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
-            
-            if(currentView == THUNDERBIRD_GUIDEVIEW)
-            {
-                ThunderBirdDialogueView::GetInstance()->Isband(false);
-            }
-            else
-            {
-                ThunderBirdDialogueView::GetInstance()->Isband(true);
-            }
-        }
+        //     int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
+        //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
+        //     isDialogueing = true; // 进入对话模式
+        //     if(currentView == THUNDERBIRD_GUIDEVIEW)
+        //     {
+        //         ThunderBirdDialogueView::GetInstance()->Isband(false);
+        //     }
+        //     else
+        //     {
+        //         ThunderBirdDialogueView::GetInstance()->Isband(true);
+        //     }
+        // }
        
         //如果在二维码界面 判断是否绑定
         if(ThunderBirdMainView::GetInstance() != nullptr)
@@ -838,6 +838,7 @@ namespace OHOS
                     ln_ws_send_voice_chat_interrupt("退出哄睡");
                     ln_ws_start_audio_chat(LN_AUDIO_CHAT_VOICE_CHAT_REQUEST);//开始对话
                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
+                    isDialogueing = true; // 进入对话模式
                  
                     break;
                 case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3:
@@ -854,6 +855,7 @@ namespace OHOS
                     ln_ws_send_voice_chat_interrupt("退出哄睡");
                     ln_ws_start_audio_chat(LN_AUDIO_CHAT_VOICE_CHAT_REQUEST);//开始对话
                     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
+                    isDialogueing = true; // 进入对话模式
                 }
                     break;
                 case ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_5:
@@ -893,15 +895,6 @@ namespace OHOS
                 do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
                 break;
-            // case ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_DIALOGUE_USE_UP://提醒界面-对话用尽
-            //     ThunderBirdMainView::GetInstance()->ChangeView(currentView,THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
-            //     break;
-            // case ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_FLOW_NOT_ENOUGH://提醒界面-流量不足
-            //     ThunderBirdMainView::GetInstance()->ChangeView(currentView,THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
-            //     break;
-            // case ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_FLOW_USE_UP://提醒界面-流量用尽
-            //     ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_FLOW_USE_UP);
-            //     break;
         }
         }
         return true;