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
#include "key/KeyInputListener.h"
#include "Presenter.h"
#include "View.h"
+#include "main/ModelListenerSample.h"
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;
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};
};
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)
{
// 初始化时加载提醒数据
std::strftime(buffer, sizeof(buffer), "%H:%M", timeinfo);
return std::string(buffer);
}
+{
void ThunderBirdModel::timer_callback_proc()
{
ThunderBirdMainView *view = ThunderBirdMainView::GetInstance();
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()
{
ThunderBirdPresenter::ThunderBirdPresenter()
{
- NativeAbility::GetInstance().SetDefaultSliceId(VIEW_THUNDER_BIRD);
g_pThunderBirdPresenter = this;
}
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)
{
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键*************************/
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);
+ }
+ }
+ }
+ }
+
}