优化绑定流程;获取之后不更新 2337/1 2337/head 2338/target/1 2339/target/1
authorCaisking <Casiking@zhihuishixun.com>
Sat, 20 Sep 2025 11:21:56 +0000 (19:21 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Sat, 20 Sep 2025 11:21:56 +0000 (19:21 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdModel.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index c6253c3..dbf78d5 100644 (file)
@@ -131,6 +131,11 @@ namespace OHOS
         std::string GetDeviceId();
         bool IsDeviceIdValid();
         bool ValidateIMEIChecksum(const std::string& imei);
+        
+        // IMEI状态管理函数
+        bool IsIMEIValid() const;
+        void CheckIMEIStatus();
+        void SetIMEIValid(bool valid);
 
         // 对话状态相关函数
         int GetConversationStatus();
@@ -165,6 +170,10 @@ namespace OHOS
         bool m_countUpActive;          // 计数定时器是否激活
         int m_countUpValue;            // 当前计数值
         int m_countUpTarget;           // 计数目标值
+        
+        // IMEI状态管理
+        bool m_imeiValid;              // IMEI是否有效标志位
+        bool m_imeiChecked;            // IMEI是否已检查过
     };
 }
 
index 37074c1..b4d5acd 100644 (file)
@@ -55,6 +55,9 @@ namespace OHOS
         void ShowVolumeAdjustment(int volumeDelta);
         bool HandleViewNavigation(int16_t currentView, int16_t currentSubView, bool isUpKey, KeyType keyType);
         
+        // 二维码相关函数
+        void UpdateQrcodeIfValid();
+        
         // 界面导航处理函数
         bool HandleGuideViewNavigation(int16_t currentSubView, KeyType keyType);
         bool HandleDialogueViewNavigation(int16_t currentSubView, KeyType keyType);
index f84196a..45b0375 100644 (file)
@@ -56,7 +56,8 @@
                                            m_statusChangeTime(0), m_lastStatusCheckTime(0),
                                            m_reminderHideActive(false), m_reminderHideTime(0),
                                            m_otaCountdownActive(false), m_otaCountdownValue(0),
-                                           m_countUpActive(false), m_countUpValue(0), m_countUpTarget(0)
+                                           m_countUpActive(false), m_countUpValue(0), m_countUpTarget(0),
+                                           m_imeiValid(false), m_imeiChecked(false)
      {
          // 初始化时加载提醒数据
          // LoadRemindersFromFile();
         }
     }
 
+    // IMEI状态管理函数实现
+    bool ThunderBirdModel::IsIMEIValid() const
+    {
+        return m_imeiValid;
+    }
+
+    void ThunderBirdModel::CheckIMEIStatus()
+    {
+        // 如果已经检查过,直接返回
+        if (m_imeiChecked) {
+            return;
+        }
+        
+        // 检查IMEI有效性
+        m_imeiValid = IsDeviceIdValid();
+        m_imeiChecked = true;
+        
+        WEARABLE_LOGD("IMEI status checked: valid=%d", m_imeiValid);
+    }
+
+    void ThunderBirdModel::SetIMEIValid(bool valid)
+    {
+        m_imeiValid = valid;
+        m_imeiChecked = true;
+        WEARABLE_LOGD("IMEI status set: valid=%d", m_imeiValid);
+    }
+
  }
  
\ No newline at end of file
index bca98d4..c3c4130 100644 (file)
@@ -155,12 +155,8 @@ namespace OHOS
                 }
                 else 
                 {
-                    //判断二维码的有效性
-                    if(ThunderBirdModel::GetInstance()->IsDeviceIdValid())
-                    {
-                        //更新二维码
-                        ThunderBirdGuideView::GetInstance()->UpdateQrcode();
-                    }
+                    //更新二维码
+                    UpdateQrcodeIfValid();
                 }
             }
             //如果是在对话界面 需要根据对话状态去拿对话数据进行更新
@@ -601,5 +597,20 @@ namespace OHOS
         return true;
     }
 
+    // 更新二维码(如果设备ID有效)
+    void ThunderBirdPresenter::UpdateQrcodeIfValid()
+    {
+        // 确保IMEI状态已检查
+        ThunderBirdModel::GetInstance()->CheckIMEIStatus();
+        
+        // 检查IMEI是否有效
+        if (!ThunderBirdModel::GetInstance()->IsIMEIValid()) {
+            return;
+        }
+        
+        // 更新二维码 更新一次二维码 不能一直获取
+        ThunderBirdGuideView::GetInstance()->UpdateQrcode();
+    }
+
 }