增加绑定判断的UI逻辑 2283/target/2 2285/1 2285/head 2286/target/1 2287/target/1
authorCaisking <Casiking@zhihuishixun.com>
Wed, 17 Sep 2025 13:25:25 +0000 (21:25 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Wed, 17 Sep 2025 13:25:25 +0000 (21:25 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
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 c5c0228..0820f24 100644 (file)
@@ -80,6 +80,7 @@ static void AlarmCallBackProcA(void)
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA");\r
     AlarmClockEventData unuse;\r
     AlarmTimerEventPublish(TOPIC_EVENT_ALARM_RING, unuse);\r
+    //做事件提醒\r
 }\r
 \r
 static void AlarmCallBackProcB(void)\r
index 0845de7..ea224f0 100644 (file)
@@ -6,6 +6,7 @@
 #include "key/KeyInputListener.h"
 #include "Presenter.h"
 #include "View.h"
+#include "main/ModelListenerSample.h"
 
 namespace OHOS
 {
@@ -13,12 +14,16 @@ namespace OHOS
     class ThunderBirdPresenter : public Presenter<ThunderBirdMainView>,
                                      public UIView::OnClickListener,
                                      public RootView::OnKeyActListener,
+                                     public ModelListenerSample,
                                      public UIView::OnDragListener
     {
     public:
         ThunderBirdPresenter();
         virtual ~ThunderBirdPresenter();
 
+        void OnTickEvent() override;
+        void Notify() override {}
+
         void OnStart() override;
         void OnResume() override;
 
@@ -28,9 +33,6 @@ namespace OHOS
         void PublishEvent(uint16_t topic, uint8_t *data = nullptr, uint32_t size = 0);
 
     private:
-        bool OnClick(UIView &view, const ClickEvent &event) override;
-        bool OnDrag(UIView &view, const DragEvent &event) override;
-        bool OnDragEnd(UIView &view, const DragEvent &event) override;
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
         bool X_DRAG_FLAG{false};
     };
index 5a491a9..9a03c35 100644 (file)
          OTA_STATUS_UPDATING,
          OTA_STATUS_SUCCESS,
      };
+#ifdef __cplusplus
+     extern "C"
+     {
+ #endif
+         int32_t AudioCaptureSample(int32_t argc, const char *argv[]);
+ 
+ #ifdef __cplusplus
+     };
+ #endif
+
      static bool g_isRecording = false;//是否正在录音
+
      ThunderBirdModel::ThunderBirdModel() : m_nextReminderId(1) 
      {
          // 初始化时加载提醒数据
@@ -78,6 +89,7 @@
          std::strftime(buffer, sizeof(buffer), "%H:%M", timeinfo);
          return std::string(buffer);
      }
+{
      void ThunderBirdModel::timer_callback_proc()
      {
          ThunderBirdMainView *view = ThunderBirdMainView::GetInstance();
@@ -86,9 +98,6 @@
              view->UpdateTimeText(GetCurrentTimeStr().c_str());
          }
      }
- 
- 
- 
      /* ---------------------- 状态栏时间刷新定时器 ---------------------- */
      static osTimerId_t g_timer = nullptr;
      /*定时器到期时的处理*/
              g_timer = nullptr;
          }
      }
- 
-     /*----------------------提醒界面定时器----------------------------------*/
+}
+{
+    /*----------------------提醒界面定时器----------------------------------*/
      static osTimerId_t g_reminderHideTimer = nullptr;
      static void ReminderHideTimerCallbackProc(uint8_t data)
      {
              reminder->HideAll();
          }
      }
- 
+ }
+
+
+ {
      // ---------------------- OTA 倒计时定时器(5 -> 1,每步1秒) ----------------------
      static osTimerId_t g_otaCountdownTimer = nullptr;
      static int g_otaCountdownValue = 0;
      }
          g_otaCountdownValue = 0;
      }
-  
+ }
+
  
+{
+
      // ---------------------- 通用计时加一定时器(0 -> targetSeconds,每步1秒) ----------------------
      static osTimerId_t g_countUpTimer = nullptr;
      static int g_countUpTargetSeconds = 0;
      {
          return g_countUpValue;
      }
+}
+
      // ==================== 开机操作函数 ====================
      int ThunderBirdModel::StartBootOperation()
      {
      ThunderBirdModel::BindingStatus ThunderBirdModel::CheckBindingStatus()
      {
          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::CheckBindingStatus");
-         
          // TODO: 实现实际的绑定状态检查逻辑
-         // 这里需要根据实际的网络状态和设备绑定状态来判断
-         //if(uapi_dev_runtime_get_cat1_signal() == 99)
-         // 模拟实现 - 实际应该检查网络连接和绑定状态
-         // 返回未绑定状态作为默认值
-         return BindingStatus::NOT_BOUND;
+         if(uapi_ln_is_device_bound() == 0)//未绑定
+         {
+             return BindingStatus::NOT_BOUND;
+         }
+         else if(uapi_ln_is_device_bound() == 1)//已绑定
+         {
+             return BindingStatus::BOUND;
+         }
+         else if(uapi_ln_is_device_bound() == 2)//认证失败
+         {
+             return BindingStatus::AUTH_FAILURE;
+         }
+         return BindingStatus::ERROR;
      }
- #ifdef __cplusplus
-     extern "C"
-     {
- #endif
-         int32_t AudioCaptureSample(int32_t argc, const char *argv[]);
- 
- #ifdef __cplusplus
-     };
- #endif
+
      // ==================== 对话相关函数 ====================
      bool ThunderBirdModel::StartRecording()
      {
index 7940f74..2c128a7 100644 (file)
@@ -35,7 +35,6 @@ namespace OHOS
 
     ThunderBirdPresenter::ThunderBirdPresenter()
     {
-        NativeAbility::GetInstance().SetDefaultSliceId(VIEW_THUNDER_BIRD);
         g_pThunderBirdPresenter = this;
     }
 
@@ -65,39 +64,6 @@ namespace OHOS
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnResume reset key listener");
     }
 
-
-     bool ThunderBirdPresenter::OnDrag(UIView &view, const DragEvent &event)
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnDrag");
-        UNUSED(view);
-        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动
-        {
-            ThunderBirdPresenter::X_DRAG_FLAG = true;
-        }
-        return true;
-    }
-
-    bool ThunderBirdPresenter::OnDragEnd(UIView &view, const DragEvent &event)
-    {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnDragEnd");
-        UNUSED(event);
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && ThunderBirdPresenter::X_DRAG_FLAG)
-        {
-            //NativeAbility::GetInstance().Back();
-            ThunderBirdPresenter::X_DRAG_FLAG = false;
-        }
-        return true;
-    }
-
-    bool ThunderBirdPresenter::OnClick(UIView &view, const ClickEvent &event)
-    {
-        UNUSED(event);
-
-
-        //NativeAbility::GetInstance().Back();
-        return true;
-    }
-
     // 增加按键事件
     bool ThunderBirdPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     {
@@ -160,16 +126,18 @@ namespace OHOS
             
             if(currentView == THUNDERBIRD_DIALOGUEVIEW && currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING)
             {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnKeyAct: 停止录音");
                 ThunderBirdModel::GetInstance()->StopRecording();
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
                 ThunderBirdModel::GetInstance()->SendRecording();
             } 
             else
             {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::OnKeyAct: 开始录音");
                 ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
                 ThunderBirdModel::GetInstance()->StartRecording();
             }
-           
+            return true;
         }
         
         /*************************VENDOR_UP键*************************/
@@ -443,5 +411,24 @@ namespace OHOS
     
         return true;
     }
+
+    void ThunderBirdPresenter::Notify()
+    {
+        //如果在二维码界面 判断是否绑定
+        if(ThunderBirdMainView::GetInstance()!=  nullptr)
+       { 
+            //如果在二维码界面 要一直判断绑定状态 绑定成功就返回主界面
+            if(ThunderBirdMainView::GetInstance()->GetCurrentView() == THUNDERBIRD_QRCODEVIEW)
+            {
+                ThunderBirdModel::BindingStatus bindingStatus = ThunderBirdModel::GetInstance()->CheckBindingStatus();
+                if(bindingStatus == ThunderBirdModel::BindingStatus::BOUND)
+                {
+                    //绑定成功
+                    ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_QRCODEVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING);
+                }
+            }
+        }
+    }
+
 }