#include "traing/training_card/include/TrainingDetailView.h"\r
\r
#ifdef SUPPORT_BLE_SERVICE\r
-#include <bleEvent.h>\r
-#include "bleService.h"\r
#include "bleInstruct.h"\r
+#include "bleService.h"\r
+#include <bleEvent.h>\r
+\r
#endif\r
\r
#include "components/root_view.h"\r
class TrainingDetailView;\r
class TraingModel;\r
class TraingCardPresenter : public Presenter<TraingCardView>,\r
+ public ModelListenerSample,\r
public UIView::OnClickListener,\r
public UIView::OnDragListener,\r
- public UISwipeView::OnSwipeListener,\r
- public RootView::OnKeyActListener,\r
- public ModelListenerSample {\r
+ public ListScrollListener,\r
+ public RootView::OnKeyActListener {\r
public:\r
TraingCardPresenter();\r
virtual ~TraingCardPresenter() override;\r
void OnPause() override;\r
void OnResume() override;\r
void OnStop() override;\r
- // void OnTickEvent() override;\r
- void Notify() override;\r
+ void OnTickEvent() override;\r
+ void Notify() override {}\r
\r
bool OpenSensor(ExerciseClass type);\r
bool ControlSensor(ExerciseState state);\r
void UpdateTimeOfData();\r
void UpdateDataView();\r
\r
- /*蓝牙开启运动*/\r
- #ifdef BLE_SERVER_ENABLE\r
+/*蓝牙开启运动*/\r
+#ifdef BLE_SERVER_ENABLE\r
bool send_sport_cmd(training_ble *cmd);\r
- #endif\r
-\r
+#endif\r
\r
/*控制*/\r
void handleStartState();\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
- void OnSwipe(UISwipeView &view) override;\r
bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
\r
int tag_ = 0;\r
bool opensensorstuats{false};\r
// bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
+ // void OnSwipe(UISwipeView &view) override;\r
};\r
} // namespace OHOS\r
\r
* @Date: 2024-04-15 11:46:23\r
* @LastEditors: Caisking 3449750381@qq.com\r
* @LastEditTime: 2024-04-29 11:13:01\r
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardView.h\r
+ * @FilePath:\r
+ * /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardView.h\r
*/\r
#ifndef _TraingCard_VIEW_H\r
#define _TraingCard_VIEW_H\r
\r
-\r
#include "View.h"\r
-#include <ui_scroll_view.h>\r
-#include "components/ui_view_group.h"\r
-#include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_image_view.h"\r
+#include "components/icon_adapter.h"\r
#include "components/ui_button.h"\r
+#include "components/ui_card_page.h"\r
+#include "components/ui_chart.h"\r
+#include "components/ui_cross_view.h"\r
#include "components/ui_image_animator.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
#include "components/ui_label_button_ext.h"\r
-#include "components/ui_chart.h"\r
+#include "components/ui_label_ext.h"\r
#include "components/ui_list.h"\r
-#include "components/icon_adapter.h"\r
-#include "wearable_log.h"\r
+#include "components/ui_swipe_view.h"\r
+#include "components/ui_view_group.h"\r
#include "ohos_types.h"\r
-#include "components/ui_card_page.h"\r
-#include "traing/include/TraingModel.h"\r
-#include "uicomponents/UIComponents.h"\r
#include "traing/Training_UiConfig.h"\r
-#include "components/ui_swipe_view.h"\r
-#include "components/ui_cross_view.h"\r
-\r
#include "traing/include/TraingModel.h"\r
#include "uicomponents/UIComponents.h"\r
+#include "wearable_log.h"\r
+#include <ui_scroll_view.h>\r
+\r
+\r
#include "traing/Training_UiConfig.h"\r
+#include "traing/include/TraingModel.h"\r
#include "traing/training_card/include/TraingCardPresenter.h"\r
+#include "uicomponents/UIComponents.h"\r
+\r
\r
#include "PlayersView.h"\r
#include "traing/training_card/include/TraingDataAllView.h"\r
#include "traing/training_card/include/TrainingDetailView.h"\r
\r
#include "alipay/include/AlipayModel.h"\r
-namespace OHOS\r
-{\r
+namespace OHOS {\r
#define BUTTONEXIT "button_exit"\r
#define BUTTONBACK "button_back"\r
#define BUTTONWINOK "buttom_win"\r
#define BUTTONNOTE "button_heart"\r
\r
- enum Control_Card\r
- {\r
- CONTROL = 0,\r
- DATA,\r
- MUSIC\r
- };\r
- enum PopupType\r
- {\r
- EndPopup, // 结束训练弹窗\r
- GetTagPopup, // 达到训练目标弹窗\r
- HeartPopup, // 达到最高心率弹窗\r
- };\r
- class TraingCardPresenter;\r
- class TrainingControlView;\r
- class TrainingDataView;\r
- class TrainingDetailView;\r
- class PlayersView;\r
- class TraingCardView : public View<TraingCardPresenter>\r
- {\r
-\r
- public:\r
- TraingCardView();\r
- virtual ~TraingCardView();\r
- static TraingCardView *GetInstance(void);\r
-\r
- void OnStart() override;\r
- \r
-\r
- UICardPage *InitControlPage(void);\r
- UICardPage *InitDataPage(void);\r
- UICardPage *InitMusicPage(void);\r
-\r
- UICardPage *InitDetailPage(void);\r
-\r
- void InitView();\r
- void DeInit();\r
- void InitList();\r
- void PreLoad(void);\r
-\r
- void InitImageAnimator();\r
- void ShowGetTagView();\r
- void ShowEndView();\r
- void ShowHeartView();\r
- bool RefreshEndView();\r
- UICrossView *GetTraingCrad();\r
- int GetCurrentPage();\r
- void SetPopupViewStatus(PopupType type, bool status);\r
- UIImageAnimatorView *GetAnimator();\r
- UILabelExt *GetHeartMaxLabel();\r
- void SetHeartMaxLabel(int maxheart);\r
-\r
- private:\r
- UIView::OnDragListener *draglistener{nullptr};\r
- TraingCardView(TraingCardView &&) = delete;\r
- TraingCardView &operator=(TraingCardView &&) = delete;\r
-\r
- UICrossView *swipe_ = nullptr;\r
- UIScrollView *endView{nullptr};\r
- UIScrollView *getView{nullptr};\r
- UIScrollView *heartView{nullptr};\r
- TrainingControlView *controlview_{nullptr}; // 控制卡片\r
- TraingDataAllView *dataallview_{nullptr}; // 数据卡片\r
- TrainingDetailView *DetailView{nullptr}; // 详细数据卡片\r
- PlayersView *musicview_{nullptr}; // 音乐卡片\r
-\r
- /*结束弹窗*/\r
- UILabelExt *endtitle{nullptr}; // 结束弹窗title\r
- UILabelExt *notelabel{nullptr}; // 提醒label\r
- UILabelExt *endnote{nullptr}; // 是否结束\r
- UILabelExt *endnotelabel{nullptr};\r
- UIButton *exit{nullptr}; // 退出按键\r
- UIButton *back{nullptr}; // 返回按键\r
-\r
- /*达成训练目标弹窗*/\r
- UILabelExt *labeltitle = nullptr;\r
- UILabelExt *labeltag = nullptr;\r
- UILabelExt *labelgettag = nullptr;\r
- UILabelExt *labelpre = nullptr;\r
- UILabelButtonExt *buttonok_ = nullptr;\r
- UIImageAnimatorView *imageAnimator{nullptr};\r
-\r
- /*最高心率提醒弹窗*/\r
- UILabelExt *hearttitle = nullptr;\r
- UILabelExt *labelnote = nullptr;\r
- UIImageView *heartiamge = nullptr;\r
- UILabelButtonExt *buttonnote_ = nullptr;\r
-\r
- bool viewiInitStatus{false};\r
- bool momentumFlag{false};\r
-\r
- std::string winbasePath = "/user/res/Training/training_GIF/win/";\r
- const ImageInfo **winimageInfos;\r
- ImageAnimatorInfo *winimageAnimatorInfo{nullptr};\r
- };\r
+enum Control_Card { CONTROL = 0, DATA, MUSIC };\r
+enum PopupType {\r
+ EndPopup, // 结束训练弹窗\r
+ GetTagPopup, // 达到训练目标弹窗\r
+ HeartPopup, // 达到最高心率弹窗\r
+};\r
+class TraingCardPresenter;\r
+class TrainingControlView;\r
+class TrainingDataView;\r
+class TrainingDetailView;\r
+class PlayersView;\r
+class TraingCardView : public View<TraingCardPresenter> {\r
+\r
+public:\r
+ TraingCardView();\r
+ virtual ~TraingCardView();\r
+ static TraingCardView *GetInstance(void);\r
+\r
+ void OnStart() override;\r
+\r
+ UICardPage *InitControlPage(void);\r
+ UICardPage *InitDataPage(void);\r
+ UICardPage *InitMusicPage(void);\r
+\r
+ UICardPage *InitDetailPage(void);\r
+\r
+ void InitView();\r
+ void DeInit();\r
+ void InitList();\r
+ void PreLoad(void);\r
+\r
+ void InitImageAnimator();\r
+ void ShowGetTagView();\r
+ void ShowEndView();\r
+ void ShowHeartView();\r
+ bool RefreshEndView();\r
+ UICrossView *GetTraingCrad();\r
+ int GetCurrentPage();\r
+ void SetPopupViewStatus(PopupType type, bool status);\r
+ UIImageAnimatorView *GetAnimator();\r
+ UILabelExt *GetHeartMaxLabel();\r
+ void SetHeartMaxLabel(int maxheart);\r
+\r
+private:\r
+ UIView::OnDragListener *draglistener{nullptr};\r
+ TraingCardView(TraingCardView &&) = delete;\r
+ TraingCardView &operator=(TraingCardView &&) = delete;\r
+\r
+ UICrossView *swipe_ = nullptr;\r
+ UIScrollView *endView{nullptr};\r
+ UIScrollView *getView{nullptr};\r
+ UIScrollView *heartView{nullptr};\r
+ TrainingControlView *controlview_{nullptr}; // 控制卡片\r
+ TraingDataAllView *dataallview_{nullptr}; // 数据卡片\r
+ UICardPage *DetailView{nullptr}; // 详细数据卡片\r
+ PlayersView *musicview_{nullptr}; // 音乐卡片\r
+\r
+ /*结束弹窗*/\r
+ UILabelExt *endtitle{nullptr}; // 结束弹窗title\r
+ UILabelExt *notelabel{nullptr}; // 提醒label\r
+ UILabelExt *endnote{nullptr}; // 是否结束\r
+ UILabelExt *endnotelabel{nullptr};\r
+ UIButton *exit{nullptr}; // 退出按键\r
+ UIButton *back{nullptr}; // 返回按键\r
+\r
+ /*达成训练目标弹窗*/\r
+ UILabelExt *labeltitle = nullptr;\r
+ UILabelExt *labeltag = nullptr;\r
+ UILabelExt *labelgettag = nullptr;\r
+ UILabelExt *labelpre = nullptr;\r
+ UILabelButtonExt *buttonok_ = nullptr;\r
+ UIImageAnimatorView *imageAnimator{nullptr};\r
+\r
+ /*最高心率提醒弹窗*/\r
+ UILabelExt *hearttitle = nullptr;\r
+ UILabelExt *labelnote = nullptr;\r
+ UIImageView *heartiamge = nullptr;\r
+ UILabelButtonExt *buttonnote_ = nullptr;\r
+\r
+ bool viewiInitStatus{false};\r
+ bool momentumFlag{false};\r
+\r
+ std::string winbasePath = "/user/res/Training/training_GIF/win/";\r
+ const ImageInfo **winimageInfos;\r
+ ImageAnimatorInfo *winimageAnimatorInfo{nullptr};\r
+};\r
} // namespace OHOS\r
#endif // TraingCard_PRESENTER_H\r
}\r
\r
void TraingCardPresenter::OnPause(void) {\r
-\r
Presenter<TraingCardView>::OnPause();\r
}\r
\r
intensityid);\r
// 释放sportdata内存\r
}\r
-#if 0\r
- /*刷新 time 和 data */\r
- void TraingCardPresenter::OnTickEvent()\r
- {\r
- // 未开启训练 直接退出\r
- if (TraingModel::GetInstance()->GetSportState() == ExerciseState::General)\r
- return;\r
- // 刷新训练数据界面 现实时间\r
- TrainingDataView::GetInstance()->UpdataTime();\r
- // 刷新训练数据界面 心率 卡路里 距离 步数 训练强度 目标完成度\r
- RefreshData();\r
- }\r
-#endif\r
#if 1\r
-void TraingCardPresenter::Notify(void) {\r
+/*刷新 time 和 data */\r
+void TraingCardPresenter::OnTickEvent(void) {\r
// 如果未开启训练,直接退出\r
if (TraingModel::GetInstance()->GetSportState() == ExerciseState::General ||\r
view_ == nullptr) {\r
break; // 其他情况不处理\r
}\r
}\r
+#else\r
+void TraingCardPresenter::Notify(void) {\r
+ // 如果未开启训练,直接退出\r
+ if (TraingModel::GetInstance()->GetSportState() == ExerciseState::General ||\r
+ view_ == nullptr) {\r
+ return;\r
+ }\r
+\r
+ Control_Card cardId = static_cast<Control_Card>(view_->GetCurrentPage());\r
\r
+ switch (cardId) {\r
+ case Control_Card::CONTROL: {\r
+ UpdateTimeOfControl(); // 更新控制界面的时间\r
+ break;\r
+ }\r
+ case Control_Card::DATA: {\r
+ UpdateDataView(); // 更新训练数据视图\r
+ break;\r
+ }\r
+ default:\r
+ break; // 其他情况不处理\r
+ }\r
+}\r
+#endif\r
void TraingCardPresenter::UpdateDataView() {\r
// 刷新计时\r
UpdateTimeOfData();\r
SportData *sportdata = TraingModel::GetInstance()->GetSportdata();\r
RefreshData(sportdata);\r
}\r
-#endif\r
/* --------------------------------- 点击事件处理\r
* --------------------------------- */\r
bool TraingCardPresenter::OnClick(UIView &view, const ClickEvent &event) {\r
\r
return false; // 没有匹配的操作\r
}\r
-void TraingCardPresenter::OnSwipe(UISwipeView &view) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TempPresenter::OnSwipe ");\r
- UNUSED(view);\r
- return;\r
-}\r
+// void TraingCardPresenter::OnSwipe(UISwipeView &view) {\r
+// WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TempPresenter::OnSwipe ");\r
+// UNUSED(view);\r
+// return;\r
+// }\r
bool TraingCardPresenter::OnKeyAct(UIView &view, const KeyEvent &event) {\r
/*消耗按键事件*/\r
return true;\r
}\r
-/* -------------------------------- 协议发起运动处理\r
- * -------------------------------- */\r
\r
#ifdef BLE_SERVER_ENABLE\r
bool TraingCardPresenter::send_sport_cmd(training_ble *cmd) {\r