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

49 lines
1.5 KiB
C++

#ifndef TJDUI_APP_SLEEP_PRESENTER_H
#define TJDUI_APP_SLEEP_PRESENTER_H
#include "Presenter.h"
#include "TjdUiAppSleepModel.h"
#include "TjdUiScreenDrag.h"
#include "components/root_view.h"
#include "components/ui_view.h"
namespace TJD {
class TjdUiAppSleepView;
class TjdUiAppSleepPresenter : public OHOS::Presenter<TjdUiAppSleepView>,
public TjdUiScreenDragListener,
public OHOS::RootView::OnKeyActListener
{
public:
TjdUiAppSleepPresenter();
~TjdUiAppSleepPresenter();
static TjdUiAppSleepPresenter *GetInstance(void);
void OnStart() override;
void OnResume() override;
void OnPause() override;
void OnStop() override;
bool OnKeyAct(OHOS::UIView &view, const OHOS::KeyEvent &event) override;
void ScreenDragEventCallback(OHOS::UIView &view, const OHOS::DragEvent &event) override { ExitSleepView(); }
TjdUiAppSleepModel *GetSleepModel(void) { return model; }
uint16_t *GetTotalSleepTimeArray(void) { return totalSleepTimeArray; }
void ExitSleepView(void);
private:
void UpdateView(void);
TjdUiAppSleepModel *model{nullptr};
bool isExit_{false};
int16_t dragStartX_{0};
int16_t dragCurrentX_{0};
int32_t dragDistance_{0};
uint32_t totalSleepTime{0};
uint32_t maxWeekSleepTime{0};
uint32_t averageWeekSleepTime{0};
uint16_t totalSleepTimeArray[7]{0};
};
} // namespace TJD
#endif