#ifndef TJDUIAPP_HR_PRESENTER_H #define TJDUIAPP_HR_PRESENTER_H #include "Presenter.h" #include "ui_swipe_view.h" #include "TjdUiTaskListener.h" #include "TjdUiScreenDrag.h" namespace TJD { enum class HeartRateAction { Start, Stop, GetStatus, }; enum HrView { HR_SWIPE_VIEW = 0, HR_ABOUT_VIEW, HR_UNWEAR_VIEW, HRMAX_VIEW }; class TjdUiAppHrView; typedef bool (TjdUiAppHrView::*HrChangeView)(HrView hideView); class TjdUiAppHrPresenter : public OHOS::Presenter, public OHOS::UISwipeView::OnSwipeListener, public TjdUiScreenDragListener, public TjdUiTaskListener, public OHOS::UIView::OnClickListener, public OHOS::RootView::OnKeyActListener { public: TjdUiAppHrPresenter(); ~TjdUiAppHrPresenter(); static TjdUiAppHrPresenter *GetInstance(void); void OnStart() override; void OnPause() override; void OnResume() override; void OnStop() override; void Notify(void) override; void OnSwipe(OHOS::UISwipeView& view) override; void ViewExitEvent(OHOS::UIView &view, const OHOS::DragEvent &event); void ScreenDragEventCallback(OHOS::UIView &view, const OHOS::DragEvent &event) override { ViewExitEvent(view, event); } bool OnClick(OHOS::UIView& view, const OHOS::ClickEvent& event) override; bool OnKeyAct(OHOS::UIView& view, const OHOS::KeyEvent& event) override; void ExitHrView(void); void SetHrPointArray(OHOS::Point *array) { hrPointArray = array; } OHOS::Point *GetHrPointArray(void) { return hrPointArray; } uint8_t HeartRateGetWearStatus(void); void TimeTaskStart(void); void TimeTaskStop(void); bool isFirstSwipeView_{true}; uint8_t exitTimerCount_{0}; private: bool needsUpdate_{false}; void HrProcess(void); uint32_t GetCurTimeIndex(void); bool isExit_{false}; int16_t dragStartX_{0}; int16_t dragCurrentX_{0}; int32_t dragDistance_{0}; uint8_t refreshCount{0}; bool refreshStatus{true}; bool timerFlag{false}; OHOS::Point *hrPointArray{nullptr}; }; } // namespace TJD #endif