From 5f9277cf4ffa72166f9851547ad1e44aef183802 Mon Sep 17 00:00:00 2001 From: Caisking Date: Wed, 17 Sep 2025 21:25:25 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E7=BB=91=E5=AE=9A=E5=88=A4?= =?utf8?q?=E6=96=AD=E7=9A=84UI=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../src/AlarmClockTimerConfig.cpp | 1 + .../include/ThunderBirdPresenter.h | 8 ++- .../thunderbird/src/ThunderBirdModel.cpp | 61 ++++++++++++------- .../thunderbird/src/ThunderBirdPresenter.cpp | 57 +++++++---------- 4 files changed, 67 insertions(+), 60 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp index c5c02282e..0820f247c 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp @@ -80,6 +80,7 @@ static void AlarmCallBackProcA(void) WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA"); AlarmClockEventData unuse; AlarmTimerEventPublish(TOPIC_EVENT_ALARM_RING, unuse); + //做事件提醒 } static void AlarmCallBackProcB(void) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h index 0845de704..ea224f050 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdPresenter.h @@ -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, 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}; }; diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index 5a491a9cd..9a03c358f 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -36,7 +36,18 @@ 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; /*定时器到期时的处理*/ @@ -174,8 +183,9 @@ g_timer = nullptr; } } - - /*----------------------提醒界面定时器----------------------------------*/ +} +{ + /*----------------------提醒界面定时器----------------------------------*/ static osTimerId_t g_reminderHideTimer = nullptr; static void ReminderHideTimerCallbackProc(uint8_t data) { @@ -227,7 +237,10 @@ reminder->HideAll(); } } - + } + + + { // ---------------------- OTA 倒计时定时器(5 -> 1,每步1秒) ---------------------- static osTimerId_t g_otaCountdownTimer = nullptr; static int g_otaCountdownValue = 0; @@ -306,8 +319,11 @@ } g_otaCountdownValue = 0; } - + } + +{ + // ---------------------- 通用计时加一定时器(0 -> targetSeconds,每步1秒) ---------------------- static osTimerId_t g_countUpTimer = nullptr; static int g_countUpTargetSeconds = 0; @@ -380,6 +396,8 @@ { return g_countUpValue; } +} + // ==================== 开机操作函数 ==================== int ThunderBirdModel::StartBootOperation() { @@ -424,23 +442,22 @@ 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() { diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp index 7940f742f..2c128a7f2 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp @@ -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); + } + } + } + } + } -- 2.17.1