//如果在二维码界面 判断是否绑定
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;
+ }
+ }
+ }
+
}