优化对话
authorxue <2144439972@qq.com>
Sun, 28 Sep 2025 11:59:16 +0000 (19:59 +0800)
committerxue <2144439972@qq.com>
Sun, 28 Sep 2025 11:59:16 +0000 (19:59 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdGuideView.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index a1844de..aa5d4f0 100644 (file)
@@ -35,7 +35,7 @@ namespace OHOS
         void PublishEvent(uint16_t topic, uint8_t *data = nullptr, uint32_t size = 0);
 
         void timer_callback_toui_proc();
-        bool isDialogueing{true};//是否进入对话模式
+        bool isDialogueing{false};//是否进入对话模式
 
          // FUNC键长按功能
          void RegisterFuncKeyLongPressEvent(void);
index 1283954..c7b9e61 100644 (file)
@@ -156,12 +156,14 @@ namespace OHOS
             {
                 TextLabel->SetPosition(0, 64, 360, 42);
                 TextLabel->SetText("Hey, 我是Amby~");
+                TextLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
                 TextLabel->SetVisible(true);
             }
             if (TextLabel_Y)
             {
                 TextLabel_Y->SetPosition(2, 66, 360, 42);
                 TextLabel_Y->SetText("Hey, 我是Amby~");
+                TextLabel_Y->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
                 TextLabel_Y->SetVisible(true);
             }
             if (RemindButton)
@@ -255,9 +257,9 @@ namespace OHOS
     {
         if (qrcode_)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "start qrcode path:%s", ThunderBirdModel::GetInstance()->GetQrcodeContent().c_str());
             qrcode_->SetQrcodeInfo(ThunderBirdModel::GetInstance()->GetQrcodeContent().c_str());
             //打印
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "qrcode path:%s", ThunderBirdModel::GetInstance()->GetQrcodePath().c_str());
             qrcode_->Invalidate();//刷新
         }
     }
index 3dfed98..b670ad2 100644 (file)
              WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "设置对话文本: textId is null");
              return;
          }
-
+         ThunderBirdDialogueView::GetInstance()->UpdateDialogueText(m_currentTimeStr.c_str());
          //清除录音内容
          ClearTextStr();
          
          // 添加文本内容
          m_currentTimeStr = textId;
-         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "设置对话文本: %s", m_currentTimeStr.c_str());
+         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "设置对话文本: %s", m_currentTimeStr.c_str());
      }
      
      void ThunderBirdModel::ClearTextStr()
                 //绑定成功
                 int currentView = ThunderBirdMainView::GetInstance()->GetCurrentView(); //获取当前视图
                 if(ThunderBirdMainView::GetInstance()){
-                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
                 }
             }
         }
index 969e550..966ace2 100644 (file)
@@ -166,16 +166,18 @@ namespace OHOS
         //如果在二维码界面 判断是否绑定
         if(ThunderBirdMainView::GetInstance() != nullptr)
        { 
+              
             int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
             int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
+            
             //如果在二维码界面 要一直判断绑定状态 绑定成功就返回主界面
-            if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3)
+            if(currentView == THUNDERBIRD_GUIDEVIEW && currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3)
             {
                 //更新二维码
                 UpdateQrcodeIfValid();
             }
             //如果是在对话界面 需要根据对话状态去拿对话数据进行更新
-            if(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)
+            if(currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)
             {
                 //每一个界面都需要判断是否存在
                 if(ThunderBirdDialogueView::GetInstance() != nullptr)
@@ -188,17 +190,6 @@ namespace OHOS
                         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateDialogueText:%s\n",dialogueText.c_str());
                         ThunderBirdDialogueView::GetInstance()->UpdateDialogueText(dialogueText.c_str());
                     }
-                    else{
-                        //如果不是对话 需要判断 是否服务准备好
-                        if(ThunderBirdModel::GetInstance()->Get_is_all_services_ready() == false)
-                        { 
-                            ThunderBirdDialogueView::GetInstance()->UpdateDialogueText( "等待网络连接" );
-                        }
-                        else
-                        {
-                            ThunderBirdDialogueView::GetInstance()->UpdateDialogueText( "网络连接成功" );
-                        }
-                    }
                 }
             }
         }
@@ -593,14 +584,30 @@ namespace OHOS
     // 更新二维码(如果设备ID有效)
     void ThunderBirdPresenter::UpdateQrcodeIfValid()
     {
+        if (!ThunderBirdModel::GetInstance()) {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateQrcodeIfValid: ThunderBirdModel instance is null");
+            return;
+        }
+
+        // 添加初始化检查,避免开机时立即更新
+        static bool isInitialized = false;
+        if (!isInitialized) {
+            isInitialized = true;
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateQrcodeIfValid: Skipping first call to avoid startup update");
+            return; // 第一次调用时不更新
+        }
 
         // 检查IMEI是否有效 并且 二维码是否有效更新过
         if (ThunderBirdModel::GetInstance()->IsIMEIValid() && ThunderBirdModel::GetInstance()->GetQrcodeChecked() == true) {
             return;
         }
         
-        // 更新二维码 更新一次二维码 不能一直获取
-        ThunderBirdGuideView::GetInstance()->UpdateQrcode();
+        if (ThunderBirdGuideView::GetInstance()) {
+            // 更新二维码 更新一次二维码 不能一直获取
+            ThunderBirdGuideView::GetInstance()->UpdateQrcode();
+        } else {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateQrcodeIfValid: ThunderBirdGuideView instance is null");
+        }
 
         //设置更新
         ThunderBirdModel::GetInstance()->SetQrcodeChecked(true);