Merge branch 'sdk650pathc0423' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0...
authorxue <2144439972@qq.com>
Sun, 28 Sep 2025 12:25:58 +0000 (20:25 +0800)
committerxue <2144439972@qq.com>
Sun, 28 Sep 2025 12:25:58 +0000 (20:25 +0800)
1  2 
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

@@@ -166,12 -146,10 +166,12 @@@ namespace OHO
          //如果在二维码界面 判断是否绑定
          if(ThunderBirdMainView::GetInstance() != nullptr)
         { 
 +              
              int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
              int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
 +            
              //如果在二维码界面 要一直判断绑定状态 绑定成功就返回主界面
-             if(currentView == THUNDERBIRD_GUIDEVIEW && currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3)
+             if(currentSubView == ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_3)
              {
                  //更新二维码
                  UpdateQrcodeIfValid();
          return true;
      }
  
-     // 更新二维码(如果设备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) {
 -        if(ThunderBirdModel::GetInstance() == nullptr)
++        if(ThunderBirdGuideView::GetInstance() == nullptr)
+         {
              return;
          }
-         
-         if (ThunderBirdGuideView::GetInstance()) {
-             // 更新二维码 更新一次二维码 不能一直获取
+         // 检查IMEI有效 并且 二维码没有更新过
+         if (ThunderBirdModel::GetInstance()->IsIMEIValid() && ThunderBirdModel::GetInstance()->GetQrcodeChecked() == false) {
+             // 更新二维码 更新一次二维码 不能一直更新
++            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateQrcodeIfValid: 更新二维码");
              ThunderBirdGuideView::GetInstance()->UpdateQrcode();
-         } else {
-             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateQrcodeIfValid: ThunderBirdGuideView instance is null");
+     
+             //设置更新过
+             ThunderBirdModel::GetInstance()->SetQrcodeChecked(true);
          }
- 
-         //设置更新
-         ThunderBirdModel::GetInstance()->SetQrcodeChecked(true);
      }
  
 +    // ==================== FUNC键长按功能 ====================
 +
 +    static void HandleFuncKeyLongPressCallBack(void)
 +    {
 +        if (ThunderBirdPresenter::GetInstance()) {
 +            ThunderBirdPresenter::GetInstance()->HandleFuncKeyLongPress();
 +        }
 +    }
 +    /**
 +     * @brief 处理FUNC键长按事件
 +     */
 +    void ThunderBirdPresenter::HandleFuncKeyLongPress(void)
 +    {
 +        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress - FUNC key long press detected");
 +        // 长按FUNC键2秒的处理逻辑
 +        // 触发对话模式切换
 +        if (ThunderBirdMainView::GetInstance()) {
 +            int16_t currentView = ThunderBirdMainView::GetInstance()->GetCurrentView();
 +            int16_t currentSubView = ThunderBirdMainView::GetInstance()->GetCurrentSubView();
 +            
 +            if(currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW)
 +            {
 +                ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
 +                isDialogueing = true;
 +            }
 +            else
 +            {
 +                ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
 +                isDialogueing = false;
 +            }
 +        }
 +    }
 +
  }