mcu_hi3321_watch/tjd/ui/app/hr/TjdUiAppHrPresenter.h
2025-05-26 20:15:20 +08:00

77 lines
2.2 KiB
C++

#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<TjdUiAppHrView>,
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