${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TrainingControlView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TrainingDataView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TrainingDetailView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TraingDataAllView.cpp
#训练记录
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordView.cpp
* @Date: 2024-03-01 15:10:34
* @LastEditors: luozheng 1732036298@qq.com
* @LastEditTime: 2024-09-03 17:53:43
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
*/
#ifndef MAIN_PRESENTER_SAMPLE_H
#define MAIN_PRESENTER_SAMPLE_H
-#include "Presenter.h"
-#include "ModelListenerSample.h"
-#include "components/root_view.h"
+#include "HeartRateView.h"
#include "KeyInputListener.h"
-#include "drag_event.h"
-#include "MainViewSample.h"
+#include "MainCompassPresenter.h"
+#include "MainCompassView.h"
#include "MainModel.h"
+#include "MainViewSample.h"
+#include "ModelListenerSample.h"
+#include "PlayersView.h"
+#include "Presenter.h"
+#include "components/root_view.h"
#include "components/ui_swipe_view.h"
#include "components/ui_view.h"
-#include "MainCompassView.h"
-#include "MainCompassPresenter.h"
-#include "PlayersView.h"
-#include "HeartRateView.h"
+#include "drag_event.h"
#include "swipe_effect/zoom_effect.h"
-namespace OHOS
-{
- static constexpr const char *MAIN_CLICK_WEATHER = "mainclickweather";
- static constexpr const char *MAIN_CLICK_ACTIVITY = "mainclickactivity";
- static constexpr const char *MAIN_CLICK_MESSAGE = "mainclickmessage";
- static constexpr const char *MAIN_CLICK_HEARTRATE = "mainclickheartrate";
- static constexpr const char *MAIN_CLICK_BLOOD = "mainclickblood"; // 血氧检测
- static constexpr const char *MAIN_CLICK_SETCARD = "mainclicksetcard"; // 设置卡片
+namespace OHOS {
+static constexpr const char *MAIN_CLICK_WEATHER = "mainclickweather";
+static constexpr const char *MAIN_CLICK_ACTIVITY = "mainclickactivity";
+static constexpr const char *MAIN_CLICK_MESSAGE = "mainclickmessage";
+static constexpr const char *MAIN_CLICK_HEARTRATE = "mainclickheartrate";
+static constexpr const char *MAIN_CLICK_BLOOD = "mainclickblood"; // 血氧检测
+static constexpr const char *MAIN_CLICK_SETCARD =
+ "mainclicksetcard"; // 设置卡片
- static constexpr const char *DROPDOWN_CLICK_DONOTDISTURB = "dropdownclickdonotdisturb";
- static constexpr const char *DROPDOWN_CLICK_BRIGHTENSCREEN = "dropdownclickbrightscreen";
+static constexpr const char *DROPDOWN_CLICK_DONOTDISTURB =
+ "dropdownclickdonotdisturb";
+static constexpr const char *DROPDOWN_CLICK_BRIGHTENSCREEN =
+ "dropdownclickbrightscreen";
- static constexpr const char *DROPDOWN_CLICK_SETTING = "dropdownclicksetting"; // 设置
- static constexpr const char *DROPDOWN_CLICK_BLUETOOTH = "dropdownclickbluetooth"; // 蓝牙
- static constexpr const char *DROPDOWN_CLICK_DNOTDISTURB = "dropdownclickdnotdisturb"; // 勿扰
- static constexpr const char *DROPDOWN_CLICK_SAVEELE = "dropdownclicksaveele"; // 省电
- static constexpr const char *DROPDOWN_CLICK_FINDMYPHONE = "dropdownclickfindmyphone"; // 找手机
+static constexpr const char *DROPDOWN_CLICK_SETTING =
+ "dropdownclicksetting"; // 设置
+static constexpr const char *DROPDOWN_CLICK_BLUETOOTH =
+ "dropdownclickbluetooth"; // 蓝牙
+static constexpr const char *DROPDOWN_CLICK_DNOTDISTURB =
+ "dropdownclickdnotdisturb"; // 勿扰
+static constexpr const char *DROPDOWN_CLICK_SAVEELE =
+ "dropdownclicksaveele"; // 省电
+static constexpr const char *DROPDOWN_CLICK_FINDMYPHONE =
+ "dropdownclickfindmyphone"; // 找手机
- static constexpr const char *CONNECTEDSTATUSBACKGROUNDBUTTON = "connectedstatusbackgroundbutton"; // 连接状态按钮
- static constexpr const char *CONNECTEDSTATUSVIEWCLOSEBUTTON = "connectedstatusviewclosebutton"; // 连接状态视图的关闭按钮
+static constexpr const char *CONNECTEDSTATUSBACKGROUNDBUTTON =
+ "connectedstatusbackgroundbutton"; // 连接状态按钮
+static constexpr const char *CONNECTEDSTATUSVIEWCLOSEBUTTON =
+ "connectedstatusviewclosebutton"; // 连接状态视图的关闭按钮
- constexpr uint16_t VERTICAL_STATUS = 1;
- constexpr uint16_t HORIZONTAL_STATUS = 0;
+constexpr uint16_t VERTICAL_STATUS = 1;
+constexpr uint16_t HORIZONTAL_STATUS = 0;
- class MainViewSample;
- class MainPresenterSample : public Presenter<MainViewSample>, public ModelListenerSample, public UIView::OnClickListener, public UIView::OnDragListener, public UISwipeView::OnSwipeListener, public UIView::OnLongPressListener, public UISwipeView, public CompassPresenter
- {
- public:
- MainPresenterSample();
- ~MainPresenterSample() override;
- static MainPresenterSample *GetInstance(void);
+class MainViewSample;
+class MainPresenterSample : public Presenter<MainViewSample>,
+ public ModelListenerSample,
+ public UIView::OnClickListener,
+ public UIView::OnDragListener,
+ public UISwipeView::OnSwipeListener,
+ public UIView::OnLongPressListener,
+ public UISwipeView,
+ public CompassPresenter {
+public:
+ MainPresenterSample();
+ ~MainPresenterSample() override;
+ static MainPresenterSample *GetInstance(void);
- void OnStart() override;
- void OnPause() override;
- void OnResume() override;
- void OnStop() override;
- void Notify() override;
- bool OnClick(UIView &view, const ClickEvent &event) override;
- bool OnDrag(UIView &view, const DragEvent &event) override;
- bool OnLongPress(UIView &view, const LongPressEvent &event) override;
- void OnSwipe(UISwipeView &view) override;
- void SetPage(int8_t id);
- void SetTaskPeroid(CardId cardId);
- void setCallback(ZoomEffect *callback)
- {
- callback_ = callback;
- }
+ void OnStart() override;
+ void OnPause() override;
+ void OnResume() override;
+ void OnStop() override;
+ void Notify() override;
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnLongPress(UIView &view, const LongPressEvent &event) override;
+ void OnSwipe(UISwipeView &view) override;
+ void SetPage(int8_t id);
+ void SetTaskPeroid(CardId cardId);
+ void setCallback(ZoomEffect *callback) { callback_ = callback; }
- void InitCardSettings(void);
- uint8_t GetCardSettingCount(void);
- CardId *GetCardSettings(void);
- void InitDialSettings(void);
- DialSetting &GetDialSetting();
- void UpdataTime();
- uint32_t GetWeekStr(char *p_week);
- void UpdataBaseData();
- void PullUpDown_StartTimer(uint32_t interval);
- void PullUpDown_StopTimer(void);
- static uint8_t g_PullUpDownTimes;
+ void InitCardSettings(void);
+ uint8_t GetCardSettingCount(void);
+ CardId *GetCardSettings(void);
+ void InitDialSettings(void);
+ DialSetting &GetDialSetting();
+ void UpdataTime();
+ uint32_t GetWeekStr(char *p_week);
+ void UpdataBaseData();
+ void PullUpDown_StartTimer(uint32_t interval);
+ void PullUpDown_StopTimer(void);
+ static uint8_t g_PullUpDownTimes;
- void get_memcheck();
+ void get_memcheck();
- bool IsFromSetCardView(void) const;
- void SetFromSetCardView(bool isFrom);
- uint8_t GetFromCardId(void);
+ bool IsFromSetCardView(void) const;
+ void SetFromSetCardView(bool isFrom);
+ uint8_t GetFromCardId(void);
- private:
- void LogCardTransition(CardId previous, CardId current);
- void ResetSleepCardView();
- void ResetWeatherCardView();
- void ResetgoalCardView();
- void StartHeartRateDetection();
- void UpdateWatchFace();
- void UpdateWeather();
- void Updategoal();
- void ProcessDataNotify(void);
- void SetCircleProgress(void);
- void SetCompassRotate(void);
- KeyInputListener *keyActListener_{nullptr};
- ZoomEffect *callback_{nullptr};
- uint8_t state_ = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;
- int64_t playerCurrentTime_{0};
- int64_t playerMusicDuration_{0};
- int64_t playerProgressValue_{0};
- bool isCompassSensorOpened_{false};
- CardId previousCardId{WATCH_FACE};
- };
+private:
+ void LogCardTransition(CardId previous, CardId current);
+ void ResetSleepCardView();
+ void ResetWeatherCardView();
+ void ResetgoalCardView();
+ void StartHeartRateDetection();
+ void UpdateWatchFace();
+ void UpdateWeather();
+ void Updategoal();
+ void ProcessDataNotify(void);
+ void SetCircleProgress(void);
+ void SetCompassRotate(void);
+ KeyInputListener *keyActListener_{nullptr};
+ ZoomEffect *callback_{nullptr};
+ uint8_t state_ = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;
+ int64_t playerCurrentTime_{0};
+ int64_t playerMusicDuration_{0};
+ int64_t playerProgressValue_{0};
+ bool isCompassSensorOpened_{false};
+ CardId previousCardId{WATCH_FACE};
+};
}
#endif // MAIN_PRESENTER_H
#include "traing/training_card/include/TraingCardPresenter.h"\r
\r
#include "PlayersView.h"\r
+#include "traing/training_card/include/TraingDataAllView.h"\r
#include "traing/training_card/include/TrainingControlView.h"\r
#include "traing/training_card/include/TrainingDataView.h"\r
#include "traing/training_card/include/TrainingDetailView.h"\r
UICardPage *InitControlPage(void);\r
UICardPage *InitDataPage(void);\r
UICardPage *InitMusicPage(void);\r
+\r
UICardPage *InitDetailPage(void);\r
\r
void InitView();\r
UIScrollView *endView{nullptr};\r
UIScrollView *getView{nullptr};\r
UIScrollView *heartView{nullptr};\r
- TrainingControlView *ControlView{nullptr}; // 控制卡片\r
- TrainingDataView *DataVIew{nullptr}; // 数据卡片\r
+ TrainingControlView *controlview_{nullptr}; // 控制卡片\r
+ TraingDataAllView *dataallview_{nullptr}; // 数据卡片\r
TrainingDetailView *DetailView{nullptr}; // 详细数据卡片\r
- PlayersView *MusicView{nullptr}; // 音乐卡片\r
+ PlayersView *musicview_{nullptr}; // 音乐卡片\r
\r
/*结束弹窗*/\r
UILabelExt *endtitle{nullptr}; // 结束弹窗title\r
--- /dev/null
+/***
+ * @Date: 2024-06-25 10:41:08
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-09-02 09:22:33
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/TraingDataAll/include/TraingDataAllView.h
+ */
+
+#ifndef TRAING_DATA_ALL__VIEW_H
+#define TRAING_DATA_ALL__VIEW_H
+
+#include "BaseView.h"
+#include "View.h"
+#include "components/ui_swipe_view.h"
+#include "traing/training_card/include/TraingCardPresenter.h"
+#include "traing/training_card/include/TrainingDataView.h"
+#include "traing/training_card/include/TrainingDetailView.h"
+
+#include "components/ui_card_page.h"
+namespace OHOS {
+
+typedef enum {
+ TRAING_DATA_ALL_MAIN_VIEW = 0, // Heart rate time data chart
+ TRAING_DATA_ALL_DETAIL_VIEW, // Detailed view
+ TRAING_DATA_ALL_MAX_VIEW,
+} TraingDataAllPageId;
+
+#define TRAING_DATA_ALL_VIEW "TraingDataAllView"
+
+class TraingCardPresenter;
+class TrainingDataView;
+class TrainingDetailView;
+
+class TraingDataAllView : public UICardPage {
+public:
+ TraingDataAllView();
+ virtual ~TraingDataAllView();
+
+ static TraingDataAllView *GetInstance(void);
+
+ UISwipeView *TraingDataAllViewInit(void);
+ void ClearAll(void);
+
+ AppGroupView *TraingDataPageInit(void);
+ AppGroupView *TraingDetailPageInit(void);
+
+ TrainingDataView *GetTrainingDataView(void);
+ TrainingDetailView *GetTrainingDetailView(void);
+
+ UISwipeView *GetTraingDataAllPageView(void);
+ void ChangeView(int16_t hideView, int16_t showView);
+
+ void InitPage(void);
+
+ void PreLoad(void) override;
+ void UnLoad(void) override;
+ bool InitView(void);
+
+private:
+ TrainingDataView *trainingDataView{nullptr};
+ TrainingDetailView *trainingDetailView{nullptr};
+ TraingDataAllView *trainingDataAllView{nullptr};
+ UISwipeView *traingDataAllPageView{nullptr};
+
+ int16_t maxPage = TRAING_DATA_ALL_MAX_VIEW;
+ UISwipeView *TraingDataAllSwipeViewList{nullptr};
+ AppGroupView *recordCard[TRAING_DATA_ALL_MAX_VIEW]{nullptr};
+
+ AppGroupView *CreatePage(uint8_t pageId);
+ bool viewiInitStatus{false};
+};
+
+} // namespace OHOS
+
+#endif // TRAING_DATA_ALL__VIEW_H
\ No newline at end of file
#include "components/icon_adapter.h"
#include "components/ui_circle_progress.h"
-#include "wearable_log.h"
-#include "ohos_types.h"
+#include "AppGroupView.h"
#include "components/ui_card_page.h"
+#include "ohos_types.h"
+#include "traing/Training_UiConfig.h"
#include "traing/include/TraingModel.h"
#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
+#include "wearable_log.h"
#include "traing/include/TraingModel.h"
#include "uicomponents/UIComponents.h"
{
#define BUTTONNOTE "button1"
- class TrainingDataView : public UICardPage
- {
- public:
- TrainingDataView();
- virtual ~TrainingDataView();
- static TrainingDataView *GetInstance(void);
-
- void InitView();
- void DeInit();
+class TrainingDataView : public AppGroupView {
+public:
+ TrainingDataView();
+ virtual ~TrainingDataView();
+ static TrainingDataView *GetInstance(void);
+ bool InitPage(void);
+ virtual bool InitView(void *caller) override;
+ void DeInit();
- void PreLoad(void) override;
- void UnLoad(void) override;
- UILabelExt *GetTimeLabel();
- UILabelExt *GetHeartLabel();
- UICircleProgress*GetProgress();
+ UILabelExt *GetTimeLabel();
+ UILabelExt *GetHeartLabel();
+ UICircleProgress *GetProgress();
- void UpdataTime();
+ void UpdataTime();
- private:
- UIView::OnDragListener *draglistener{nullptr};
- TrainingDataView(TrainingDataView &&) = delete;
- TrainingDataView &operator=(TrainingDataView &&) = delete;
+private:
+ UIView::OnDragListener *draglistener{nullptr};
+ TrainingDataView(TrainingDataView &&) = delete;
+ TrainingDataView &operator=(TrainingDataView &&) = delete;
- UIViewGroup *container_ = nullptr;
+ UIViewGroup *container_ = nullptr;
- UILabelExt *curtimelabel = nullptr; // 当前时间
- UILabelExt *sportlabel = nullptr; // 运动项目名称
- UILabelExt *timerlabel = nullptr; // 计时
- UILabelExt *heartlabel = nullptr; // 运动实时心率
- UILabelExt *ubpmlabel = nullptr; // 运动强度
+ UILabelExt *curtimelabel = nullptr; // 当前时间
+ UILabelExt *sportlabel = nullptr; // 运动项目名称
+ UILabelExt *timerlabel = nullptr; // 计时
+ UILabelExt *heartlabel = nullptr; // 运动实时心率
+ UILabelExt *ubpmlabel = nullptr; // 运动强度
- UIImageView *image_progress = nullptr;
- UIImageView *image_heart = nullptr;
- UIImageView *image_lowIntensity = nullptr; // 低等强度
- UIImageView *image_mediumIntensity = nullptr; // 中等强度
- UIImageView *image_highIntensity = nullptr; // 高等强度
- UIImageView *image_superHighIntensity = nullptr; // 超高等强度
+ UIImageView *image_progress = nullptr;
+ UIImageView *image_heart = nullptr;
+ UIImageView *image_lowIntensity = nullptr; // 低等强度
+ UIImageView *image_mediumIntensity = nullptr; // 中等强度
+ UIImageView *image_highIntensity = nullptr; // 高等强度
+ UIImageView *image_superHighIntensity = nullptr; // 超高等强度
- UICircleProgress *circleProgress = nullptr;
+ UICircleProgress *circleProgress = nullptr;
- UIImageView *image_iconup = nullptr;
- UIImageView *image_iconpoint = nullptr;
+ UIImageView *image_iconup = nullptr;
+ UIImageView *image_iconpoint = nullptr;
- UIButton *buttonNote = nullptr; // 注意事项按键
- bool viewiInitStatus{false};
- };
+ UIButton *buttonNote = nullptr; // 注意事项按键
+ bool viewiInitStatus{false};
+};
} // namespace OHOS
#endif // TraingData_PRESENTER_H
namespace OHOS
{
- class TrainingDetailView : public UICardPage
- {
- public:
- TrainingDetailView();
- virtual ~TrainingDetailView();
- static TrainingDetailView *GetInstance(void);
+class TrainingDetailView : public AppGroupView {
+public:
+ TrainingDetailView();
+ virtual ~TrainingDetailView();
+ static TrainingDetailView *GetInstance(void);
- void InitView();
- void DeInit();
+ void DeInit();
- void PreLoad(void) override;
- void UnLoad(void) override;
+ bool InitPage(void);
+ virtual bool InitView(void *caller) override;
- UILabelExt *GetMileLabel();
- UILabelExt *GetStepLabel();
- UILabelExt *GetCalorieLabel();
- UILabelButtonExt *Get_Intensity_Button();
+ UILabelExt *GetMileLabel();
+ UILabelExt *GetStepLabel();
+ UILabelExt *GetCalorieLabel();
+ UILabelButtonExt *Get_Intensity_Button();
- private:
- UIView::OnDragListener *draglistener{nullptr};
- TrainingDetailView(TrainingDetailView &&) = delete;
- TrainingDetailView &operator=(TrainingDetailView &&) = delete;
+private:
+ UIView::OnDragListener *draglistener{nullptr};
+ TrainingDetailView(TrainingDetailView &&) = delete;
+ TrainingDetailView &operator=(TrainingDetailView &&) = delete;
- UIViewGroup *container_ = nullptr;
+ UIViewGroup *container_ = nullptr;
- UILabelButtonExt *intensity_button{nullptr};
+ UILabelButtonExt *intensity_button{nullptr};
- UILabelExt *u_milelabel = nullptr;
- UILabelExt *u_stepslabel = nullptr;
- UILabelExt *u_calorielabel = nullptr;
- UILabelExt *milelabel = nullptr;
- UILabelExt *steplabel = nullptr;
- UILabelExt *calorielabel = nullptr;
+ UILabelExt *u_milelabel = nullptr;
+ UILabelExt *u_stepslabel = nullptr;
+ UILabelExt *u_calorielabel = nullptr;
+ UILabelExt *milelabel = nullptr;
+ UILabelExt *steplabel = nullptr;
+ UILabelExt *calorielabel = nullptr;
- UIImageView *progress_image = nullptr;
- UIImageView *lineimage2_ = nullptr;
+ UIImageView *progress_image = nullptr;
+ UIImageView *lineimage2_ = nullptr;
- bool viewiInitStatus{false};
- };
+ bool viewiInitStatus{false};
+};
} // namespace OHOS
#endif // TraingDetail_PRESENTER_H
\r
#include "traing/training_card/include/TraingCardView.h"\r
+#include "UiConfig.h"\r
#include "common/image_cache_manager.h"\r
+#include "components/ui_button.h"\r
#include "components/ui_label_ext.h"\r
-#include "ui_resource_string.h"\r
-#include "UiConfig.h"\r
#include "ui_resource_image.h"\r
+#include "ui_resource_string.h"\r
#include <ui_scroll_view.h>\r
-#include "components/ui_button.h"\r
\r
#include "common/screen.h"\r
#include "components/ui_digital_clock.h"\r
#include "components/ui_label_ext.h"\r
#include "font/ui_font.h"\r
\r
-#include "traing/include/TraingModel.h"\r
-#include "uicomponents/UIComponents.h"\r
#include "ConfigModel.h"\r
#include "custom_utils.h"\r
+#include "traing/include/TraingModel.h"\r
+#include "uicomponents/UIComponents.h"\r
\r
-extern "C"\r
-{\r
- void InitTimer();\r
- void DisableTimer();\r
+extern "C" {\r
+void InitTimer();\r
+void DisableTimer();\r
}\r
\r
-namespace OHOS\r
-{\r
+namespace OHOS {\r
\r
#ifdef __cplusplus\r
- extern "C"\r
- {\r
+extern "C" {\r
#endif\r
\r
-#include "pm_veto.h"\r
#include "pm.h"\r
- /*移除睡眠否决投票*/\r
- void uapi_remove_sport_vote(void)\r
- {\r
- uint8_t cnt = pm_veto_get_id_cnt(PM_ID_HEART);\r
- if (cnt == 1)\r
- {\r
- uapi_pm_remove_sleep_veto(PM_ID_HEART);\r
- }\r
- else\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU has delete pm_id_Sport vote");\r
- }\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU SLEEP SUCCESS");\r
- }\r
-\r
- /*添加睡眠否决投票*/\r
- void uapi_add_sport_vote(void)\r
- {\r
- uint8_t cnt = pm_veto_get_id_cnt(PM_ID_HEART);\r
- if (cnt == 0)\r
- {\r
- uapi_pm_add_sleep_veto(PM_ID_HEART);\r
- }\r
- else\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU has got pm_id_Sport vote");\r
- }\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU WAKEUP SUCCESS");\r
- }\r
+#include "pm_veto.h"\r
+/*移除睡眠否决投票*/\r
+void uapi_remove_sport_vote(void) {\r
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_HEART);\r
+ if (cnt == 1) {\r
+ uapi_pm_remove_sleep_veto(PM_ID_HEART);\r
+ } else {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,\r
+ "Sport SERVICE MCU has delete pm_id_Sport vote");\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE,\r
+ "Sport SERVICE MCU SLEEP SUCCESS");\r
+}\r
+\r
+/*添加睡眠否决投票*/\r
+void uapi_add_sport_vote(void) {\r
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_HEART);\r
+ if (cnt == 0) {\r
+ uapi_pm_add_sleep_veto(PM_ID_HEART);\r
+ } else {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE,\r
+ "Sport SERVICE MCU has got pm_id_Sport vote");\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE,\r
+ "Sport SERVICE MCU WAKEUP SUCCESS");\r
+}\r
\r
#ifdef __cplusplus\r
- }\r
+}\r
#endif\r
\r
- static const uint16_t LABEL_FONT_SIZE = 200;\r
- static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;\r
- static const uint32_t CARD_PAGE_COLOR = 0xffd0d0d0;\r
-\r
- static TraingCardView *g_pTraingCardView{nullptr};\r
-\r
- TraingCardView::TraingCardView()\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView::TraingCardView");\r
- InitTimer(); // 开启计时器\r
- TraingModel::GetInstance()->SetSportState(ExerciseState::Start); // 设置运动状态为开始\r
- TraingModel::GetInstance()->SetTimestamp();\r
- uapi_add_sport_vote(); // 保护进程\r
- g_pTraingCardView = this;\r
- }\r
-\r
- TraingCardView::~TraingCardView()\r
- {\r
- imageAnimator->Stop();\r
- FreeImageInfoArray(winimageInfos, winbasePath.c_str(), 94);\r
- ReleaseImageAnimatorSource(winimageAnimatorInfo, 94);\r
- DeInit();\r
-\r
- g_pTraingCardView = nullptr;\r
- DisableTimer(); // 关闭计时器\r
- TraingModel::GetInstance()->SetTimestamp();\r
- uapi_remove_sport_vote(); // 移除\r
- }\r
-\r
- TraingCardView *TraingCardView::GetInstance()\r
- {\r
- return g_pTraingCardView;\r
- }\r
-\r
- /* InitView:初始化界面*/\r
- void TraingCardView ::InitView()\r
- {\r
- UISwipeView::OnSwipeListener *listener = nullptr;\r
-\r
- if (swipe_ == nullptr)\r
- {\r
- swipe_ = new UICrossView();\r
- swipe_->SetPosition(0, 0, 466, 466);\r
- swipe_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
- }\r
-\r
- InitControlPage();\r
- InitDataPage();\r
- InitMusicPage();\r
- InitDetailPage();\r
-\r
- swipe_->HorAdd(ControlView);\r
- swipe_->HorAdd(DataVIew);\r
- swipe_->HorAdd(MusicView);\r
-\r
- ShowEndView();\r
- ShowGetTagView();\r
- ShowHeartView();\r
- // swipe_->HorAdd(DetailView);\r
-\r
- swipe_->VerAdd(DetailView, UICrossView::VPage::DOWN_PAGE);\r
- swipe_->SetHorCurrentPage(Control_Card::DATA); // 设置进入索引 [数据]\r
-\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView::InitPage over");\r
- }\r
-\r
- /* DeInit:删除组件 */\r
- void TraingCardView::DeInit()\r
- {\r
- swipe_->RemoveAll();\r
-\r
- /*界面*/\r
- ControlView->RemoveAll();\r
- DataVIew->RemoveAll();\r
- DetailView->RemoveAll();\r
- MusicView->RemoveAll();\r
- endView->RemoveAll();\r
- getView->RemoveAll();\r
- heartView->RemoveAll();\r
-\r
- /*标签*/\r
- delete endtitle;\r
- endtitle = nullptr;\r
- delete notelabel;\r
- notelabel = nullptr;\r
- delete endnotelabel;\r
- endnotelabel = nullptr;\r
- delete endnote;\r
- endnote = nullptr;\r
- delete labeltitle;\r
- labeltitle = nullptr;\r
- delete labeltag;\r
- labeltag = nullptr;\r
- delete labelgettag;\r
- labelgettag = nullptr;\r
- delete labelpre;\r
- labelpre = nullptr;\r
- delete hearttitle;\r
- hearttitle = nullptr;\r
- delete labelnote;\r
- labelnote = nullptr;\r
- /*图片*/\r
- delete heartiamge;\r
- heartiamge = nullptr;\r
-\r
- /*按键*/\r
- delete exit;\r
- exit = nullptr;\r
- delete back;\r
- back = nullptr;\r
- delete buttonok_;\r
- buttonok_ = nullptr;\r
- delete buttonnote_;\r
- buttonnote_ = nullptr;\r
-\r
- /*动画*/\r
- delete imageAnimator;\r
- imageAnimator = nullptr;\r
-\r
- /*卡片*/\r
- delete ControlView;\r
- ControlView = nullptr;\r
- delete DataVIew;\r
- DataVIew = nullptr;\r
- delete DetailView;\r
- DetailView = nullptr;\r
- delete swipe_;\r
- delete MusicView;\r
- MusicView = nullptr;\r
- /*弹窗*/\r
- delete endView;\r
- endView = nullptr;\r
- delete getView;\r
- getView = nullptr;\r
- delete heartView;\r
- heartView = nullptr;\r
-\r
- swipe_ = nullptr;\r
- }\r
- UICardPage *TraingCardView::InitControlPage(void)\r
- {\r
- ControlView = new TrainingControlView();\r
- ControlView->PreLoad();\r
- if (ControlView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ControlView new fail");\r
- return nullptr;\r
- }\r
- return ControlView;\r
- }\r
- UICardPage *TraingCardView::InitDataPage(void)\r
- {\r
- DataVIew = new TrainingDataView();\r
- DataVIew->PreLoad();\r
- if (DataVIew == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DataVIew new fail");\r
- return nullptr;\r
- }\r
- return DataVIew;\r
- }\r
- UICardPage *TraingCardView::InitMusicPage(void)\r
- {\r
- MusicView = new PlayersView();\r
- MusicView->PreLoad();\r
- if (MusicView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MusicView new fail");\r
- return nullptr;\r
- }\r
- return MusicView;\r
- }\r
- UICardPage *TraingCardView::InitDetailPage()\r
- {\r
- DetailView = new TrainingDetailView();\r
- DetailView->PreLoad();\r
- DetailView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- DetailView->SetStyle(STYLE_BORDER_RADIUS, 466); // 设置为圆形\r
- if (DetailView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DetailView new fail");\r
- return nullptr;\r
- }\r
- return DetailView;\r
- }\r
- void TraingCardView::PreLoad(void)\r
- {\r
- if (!viewiInitStatus)\r
- {\r
- InitView();\r
- viewiInitStatus = true;\r
- }\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView PreLoad");\r
- }\r
- void TraingCardView::OnStart()\r
- {\r
- swipe_ = new UICrossView();\r
- if (swipe_ == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "swipe_ new fail");\r
- return;\r
- }\r
- swipe_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- // 创建 draglistener 实例并设置为拖动监听器\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingCardPresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- return;\r
- }\r
- swipe_->SetOnDragListener(draglistener);\r
- swipe_->SetTouchable(true);\r
- swipe_->SetDraggable(true);\r
- swipe_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
- swipe_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- // swipe_->EnableScreenCap(true);\r
- PreLoad();\r
- SetContainerView(swipe_);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "swipe_ new ok");\r
- }\r
- /*设置弹窗状态*/\r
- void TraingCardView::SetPopupViewStatus(PopupType type, bool status)\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", type);\r
- UIView *popupView = nullptr;\r
- if (type == EndPopup)\r
- {\r
- popupView = endView;\r
- }\r
- else if (type == GetTagPopup)\r
- {\r
- popupView = getView;\r
- }\r
- else if (type == HeartPopup)\r
- {\r
- popupView = heartView;\r
- }\r
-\r
- if (popupView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");\r
- return;\r
- }\r
-\r
- UIView *cardview = TraingCardView::GetInstance()->GetTraingCrad();\r
- if (cardview != nullptr)\r
- {\r
- cardview->SetVisible(!status);\r
- }\r
-\r
- popupView->SetVisible(status);\r
- }\r
- /*结束弹窗界面*/\r
- void TraingCardView::ShowEndView()\r
- {\r
- // momentumFlag = false; // 标志位还原\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowEndView");\r
- endView = new UIScrollView();\r
- if (endView == nullptr)\r
- {\r
- return;\r
- }\r
- endView->SetPosition(0, 0);\r
- endView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);\r
- endView->SetScrollBlankSize(20);\r
- endView->SetReboundSize(50);\r
- endView->SetDirection(1);\r
-\r
- InitRollLabel(endtitle, 83, 50, 300, 35, "label1", STR_LOOK_OUT, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- InitRollLabel(notelabel, 56, 167, 360, 80, "label2", STR_INSUFFICIENT_EXERCISE_AMOUNT, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- /*隐藏是否结束运动title*/\r
- InitRollLabel(endnote, 56, 207, 360, 80, "label3", STR_END_THIS_MOVEMENT, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- endnote->SetVisible(false);\r
-\r
- endView->Add(endnote);\r
- endView->Add(endtitle);\r
- endView->Add(notelabel);\r
-\r
- InitButton(exit, 111, 299, 100, 100, BUTTONBACK);\r
- exit->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));\r
- exit->SetImageSrc(NO_IMAGE, NO_IMAGE);\r
- InitButton(back, 256, 299, 100, 100, BUTTONEXIT);\r
- back->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));\r
- back->SetImageSrc(YES_IMAGE, YES_IMAGE);\r
- endView->Add(exit);\r
- endView->Add(back);\r
- RootView::GetInstance()->Add(endView);\r
- endView->SetDraggable(false);\r
- endView->SetTouchable(true);\r
- endView->SetVisible(false); // 界面隐藏\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowEndView end");\r
- }\r
- /*目标达成界面*/\r
- void TraingCardView::ShowGetTagView()\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowGetTagView");\r
- getView = new UIScrollView();\r
- if (getView == nullptr)\r
- {\r
- return;\r
- }\r
- getView->SetPosition(0, 0);\r
- getView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);\r
- getView->SetScrollBlankSize(20);\r
- getView->SetReboundSize(50);\r
- getView->SetDirection(1);\r
-\r
- // 初始化Lable\r
- InitRollLabel(labeltitle, 83, 50, 300, 35, "label1", STR_GOAL_ACHIEVED, DEFAULT_VECTOR_FONT_FILENAME, 35);\r
- getView->Add(labeltitle);\r
- InitRollLabel(labelgettag, 103, 307, 200, 35, "label3", STR_ACCOMPLISH_GOAL, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- getView->Add(labelgettag);\r
- InitLabel(labelpre, 233, 307, 160, 35, "label3", "100%", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- getView->Add(labelpre);\r
-\r
- // 初始化按键\r
- InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONWINOK, STR_OK, 30);\r
- buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);\r
- buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));\r
- getView->Add(buttonok_);\r
-\r
- InitImageAnimator();\r
- RootView::GetInstance()->Add(getView);\r
- getView->SetDraggable(false);\r
- getView->SetTouchable(true);\r
- getView->SetVisible(false); // 界面隐藏\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowGetTagView end");\r
- }\r
- /*最高心率提醒弹窗*/\r
- void TraingCardView::ShowHeartView()\r
- {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowHeartView");\r
- heartView = new UIScrollView();\r
- if (heartView == nullptr)\r
- {\r
- return;\r
- }\r
- heartView->SetPosition(0, 0);\r
- heartView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);\r
- heartView->SetScrollBlankSize(20);\r
- heartView->SetReboundSize(50);\r
- heartView->SetDirection(1);\r
-\r
- // 初始化Lable\r
- InitRollLabel(hearttitle, 83, 50, 300, 35, "label1", STR_HEARTTITLE, DEFAULT_VECTOR_FONT_FILENAME, 35);\r
- heartView->Add(hearttitle);\r
-\r
- int maxheart = ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX);\r
- std::string heartStr = "当前心率高于" + std::to_string(maxheart) + "次/分钟";\r
- InitLabel(labelnote, 53, 269, 360, 35, "label3", heartStr.c_str(), DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- heartView->Add(labelnote);\r
-\r
- InitImageView(heartiamge, 193, 149, 80, 80, "note", WARNING_IMAGE);\r
- heartView->Add(heartiamge);\r
-\r
- // 初始化按键\r
- InitButtonExt(buttonnote_, 0, 366, 466, 100, BUTTONNOTE, STR_OK, 30);\r
- buttonnote_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);\r
- buttonnote_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));\r
- heartView->Add(buttonnote_);\r
-\r
- RootView::GetInstance()->Add(heartView);\r
- heartView->SetDraggable(false);\r
- heartView->SetTouchable(true);\r
- heartView->SetVisible(false); // 界面隐藏\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowHeartView end");\r
- }\r
- /*获取运动量结束弹窗界面刷新*/\r
- bool TraingCardView::RefreshEndView()\r
- {\r
- // 获取训练卡路里判断运动量\r
- momentumFlag = TraingModel::GetInstance()->GetMomentum();\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "momentumFlag %d", momentumFlag);\r
-\r
- if (momentumFlag)\r
- {\r
- // 正常结束\r
- endnote->SetVisible(false);\r
- endtitle->SetTextId(STR_END_MOVEMENT);\r
- notelabel->SetTextId(STR_END_THIS_MOVEMENT);\r
- }\r
- else\r
- {\r
- endtitle->SetTextId(STR_LOOK_OUT);\r
- notelabel->SetTextId(STR_INSUFFICIENT_EXERCISE_AMOUNT);\r
- endnote->SetVisible(true);\r
- }\r
- return momentumFlag;\r
- }\r
- /*初始化动画以及Taglabel*/\r
- void TraingCardView::InitImageAnimator()\r
- {\r
- int tag = TraingModel::GetInstance()->GetSportTag();\r
- ExerciseTag tagType = TraingModel::GetInstance()->GetSportTagtype();\r
- std::string tagString = std::to_string(tag);\r
- switch (tagType)\r
- {\r
- case ExerciseTag::Duration:\r
- {\r
- int hours = tag / 60;\r
- int minutes = tag % 60;\r
- int seconds = 0;\r
- // 将小时、分钟、秒转换为字符串,并在小于10时补零\r
- std::string hoursStr = (hours < 10) ? "0" + std::to_string(hours) : std::to_string(hours);\r
- std::string minutesStr = (minutes < 10) ? "0" + std::to_string(minutes) : std::to_string(minutes);\r
- std::string secondsStr = (seconds < 10) ? "0" + std::to_string(seconds) : std::to_string(seconds);\r
- tagString = hoursStr + ":" + minutesStr + ":" + secondsStr;\r
- break;\r
- }\r
- case ExerciseTag::Calories:\r
- {\r
- tagString = tagString + "kcal";\r
- break;\r
- }\r
- case ExerciseTag::Distance:\r
- {\r
- tagString = tagString + "km";\r
- break;\r
- }\r
- case ExerciseTag::Steps:\r
- break;\r
- default:\r
- break;\r
- }\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "tag[%d]-tagType[%d]-tagString[%s]\r\n", tag, tagType, tagString.c_str());\r
- InitLabel(labeltag, 70, 215, 326, 97, "label2", tagString.c_str(), DEFAULT_VECTOR_FONT_FILENAME, 80);\r
- labeltag->SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
- getView->Add(labeltag);\r
-\r
- // 初始化图片数组以及动画\r
- winimageInfos = CreateImageInfoArray(winbasePath.c_str(), 94);\r
- InitImageAnimatorSource(imageAnimator, winimageAnimatorInfo, winimageInfos, 94, 173, 100, 120, 120, "imageAnimator1", 10);\r
- getView->Add(imageAnimator);\r
- }\r
-\r
- /*获取卡片View单例*/\r
- UICrossView *TraingCardView::GetTraingCrad()\r
- {\r
- return swipe_;\r
- }\r
- void TraingCardView::OnSetUpView()\r
- {\r
- View<TraingCardPresenter>::OnSetUpView();\r
- Draw();\r
- }\r
-\r
- void TraingCardView::OnTearDownView()\r
- {\r
- View<TraingCardPresenter>::OnTearDownView();\r
- return;\r
- }\r
-\r
- void TraingCardView::OnStop()\r
- {\r
- View<TraingCardPresenter>::OnStop();\r
- RootView::GetInstance()->RemoveAll();\r
- return;\r
- }\r
-\r
- int TraingCardView::GetCurrentPage()\r
- {\r
- return swipe_->GetCurrentPageId(0); // 获取水平页面\r
- }\r
- UIImageAnimatorView *TraingCardView::GetAnimator()\r
- {\r
- return imageAnimator;\r
- }\r
+static const uint16_t LABEL_FONT_SIZE = 200;\r
+static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;\r
+static const uint32_t CARD_PAGE_COLOR = 0xffd0d0d0;\r
+\r
+static TraingCardView *g_pTraingCardView{nullptr};\r
+\r
+TraingCardView::TraingCardView() {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView::TraingCardView");\r
+ InitTimer(); // 开启计时器\r
+ TraingModel::GetInstance()->SetSportState(\r
+ ExerciseState::Start); // 设置运动状态为开始\r
+ TraingModel::GetInstance()->SetTimestamp();\r
+ uapi_add_sport_vote(); // 保护进程\r
+ g_pTraingCardView = this;\r
+}\r
+\r
+TraingCardView::~TraingCardView() {\r
+ imageAnimator->Stop();\r
+ FreeImageInfoArray(winimageInfos, winbasePath.c_str(), 94);\r
+ ReleaseImageAnimatorSource(winimageAnimatorInfo, 94);\r
+ DeInit();\r
+\r
+ g_pTraingCardView = nullptr;\r
+ DisableTimer(); // 关闭计时器\r
+ TraingModel::GetInstance()->SetTimestamp();\r
+ uapi_remove_sport_vote(); // 移除\r
+}\r
+\r
+TraingCardView *TraingCardView::GetInstance() { return g_pTraingCardView; }\r
+\r
+/* InitView:初始化界面*/\r
+void TraingCardView ::InitView() {\r
+\r
+ if (swipe_ == nullptr) {\r
+ swipe_ = new UICrossView();\r
+ swipe_->SetPosition(0, 0, 466, 466);\r
+ swipe_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ }\r
+\r
+ InitControlPage();\r
+ InitDataPage();\r
+ InitMusicPage();\r
+ InitDetailPage();\r
+\r
+ swipe_->HorAdd(controlview_);\r
+ swipe_->HorAdd(dataallview_);\r
+ swipe_->HorAdd(musicview_);\r
+\r
+ ShowEndView();\r
+ ShowGetTagView();\r
+ ShowHeartView();\r
+\r
+ // swipe_->HorAdd(DetailView);\r
+ swipe_->VerAdd(DetailView, UICrossView::VPage::DOWN_PAGE);\r
+\r
+ swipe_->SetHorCurrentPage(Control_Card::DATA); // 设置进入索引 [数据]\r
+\r
+ UISwipeView::OnSwipeListener *onSwipeListener =\r
+ static_cast<UISwipeView::OnSwipeListener *>(\r
+ OHOS::TraingCardPresenter::GetInstance());\r
+ if (onSwipeListener == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "onSwipeListener is null");\r
+ return;\r
+ }\r
+ swipe_->SetOnSwipeListener(onSwipeListener);\r
+\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView::InitPage over");\r
+}\r
+\r
+/* DeInit:删除组件 */\r
+void TraingCardView::DeInit() {\r
+ swipe_->RemoveAll();\r
+\r
+ /*界面*/\r
+ controlview_->RemoveAll();\r
+ dataallview_->RemoveAll();\r
+ // DetailView->RemoveAll();\r
+ musicview_->RemoveAll();\r
+ endView->RemoveAll();\r
+ getView->RemoveAll();\r
+ heartView->RemoveAll();\r
+\r
+ /*标签*/\r
+ delete endtitle;\r
+ endtitle = nullptr;\r
+ delete notelabel;\r
+ notelabel = nullptr;\r
+ delete endnotelabel;\r
+ endnotelabel = nullptr;\r
+ delete endnote;\r
+ endnote = nullptr;\r
+ delete labeltitle;\r
+ labeltitle = nullptr;\r
+ delete labeltag;\r
+ labeltag = nullptr;\r
+ delete labelgettag;\r
+ labelgettag = nullptr;\r
+ delete labelpre;\r
+ labelpre = nullptr;\r
+ delete hearttitle;\r
+ hearttitle = nullptr;\r
+ delete labelnote;\r
+ labelnote = nullptr;\r
+ /*图片*/\r
+ delete heartiamge;\r
+ heartiamge = nullptr;\r
+\r
+ /*按键*/\r
+ delete exit;\r
+ exit = nullptr;\r
+ delete back;\r
+ back = nullptr;\r
+ delete buttonok_;\r
+ buttonok_ = nullptr;\r
+ delete buttonnote_;\r
+ buttonnote_ = nullptr;\r
+\r
+ /*动画*/\r
+ delete imageAnimator;\r
+ imageAnimator = nullptr;\r
+\r
+ /*卡片*/\r
+ delete controlview_;\r
+ controlview_ = nullptr;\r
+ delete dataallview_;\r
+ dataallview_ = nullptr;\r
+ // delete DetailView;\r
+ // DetailView = nullptr;\r
+ delete swipe_;\r
+ delete musicview_;\r
+ musicview_ = nullptr;\r
+ /*弹窗*/\r
+ delete endView;\r
+ endView = nullptr;\r
+ delete getView;\r
+ getView = nullptr;\r
+ delete heartView;\r
+ heartView = nullptr;\r
+\r
+ swipe_ = nullptr;\r
+}\r
+UICardPage *TraingCardView::InitControlPage(void) {\r
+ controlview_ = new TrainingControlView();\r
+ // controlview_->PreLoad();\r
+ if (controlview_ == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "controlview_ new fail");\r
+ return nullptr;\r
+ }\r
+ return controlview_;\r
+}\r
+UICardPage *TraingCardView::InitDataPage(void) {\r
+ dataallview_ = new TraingDataAllView();\r
+ // dataallview_->PreLoad();\r
+ if (dataallview_ == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dataallview_ new fail");\r
+ return nullptr;\r
+ }\r
+ return dataallview_;\r
+}\r
+UICardPage *TraingCardView::InitMusicPage(void) {\r
+ musicview_ = new PlayersView();\r
+ // musicview_->PreLoad();\r
+ if (musicview_ == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "musicview_ new fail");\r
+ return nullptr;\r
+ }\r
+ return musicview_;\r
+}\r
+UICardPage *TraingCardView::InitDetailPage() {\r
+ DetailView = new TrainingDetailView();\r
+ // DetailView->PreLoad();\r
+ DetailView->SetPosition(0, 0, Screen::GetInstance().GetWidth(),\r
+ Screen::GetInstance().GetHeight());\r
+ DetailView->SetStyle(STYLE_BORDER_RADIUS, 466); // 设置为圆形\r
+ if (DetailView == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DetailView new fail");\r
+ return nullptr;\r
+ }\r
+ return DetailView;\r
+}\r
+void TraingCardView::PreLoad(void) {\r
+ if (!viewiInitStatus) {\r
+ InitView();\r
+ viewiInitStatus = true;\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView PreLoad");\r
+}\r
+void TraingCardView::OnStart() {\r
+ View<TraingCardPresenter>::OnStart();\r
+\r
+ swipe_ = new UICrossView();\r
+ if (swipe_ == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "swipe_ new fail");\r
+ return;\r
+ }\r
+ UIView::OnDragListener *listener =\r
+ static_cast<UIView::OnDragListener *>(TraingCardPresenter::GetInstance());\r
+ if (listener == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+ "AlarmSetWeekView:: new alarmDragListener fail");\r
+ return;\r
+ }\r
+ swipe_->SetOnDragListener(listener);\r
+\r
+ PreLoad();\r
+ swipe_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),\r
+ Screen::GetInstance().GetHeight());\r
+ swipe_->SetTouchable(true);\r
+ swipe_->SetDraggable(true);\r
+ swipe_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
+ swipe_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ swipe_->EnableScreenCap(true);\r
+ swipe_->SetAnimatorTime(50);\r
+\r
+ SetContainerView(swipe_);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "swipe_ new ok");\r
+}\r
+/*设置弹窗状态*/\r
+void TraingCardView::SetPopupViewStatus(PopupType type, bool status) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", type);\r
+ UIView *popupView = nullptr;\r
+ if (type == EndPopup) {\r
+ popupView = endView;\r
+ } else if (type == GetTagPopup) {\r
+ popupView = getView;\r
+ } else if (type == HeartPopup) {\r
+ popupView = heartView;\r
+ }\r
+\r
+ if (popupView == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");\r
+ return;\r
+ }\r
+\r
+ UIView *cardview = TraingCardView::GetInstance()->GetTraingCrad();\r
+ if (cardview != nullptr) {\r
+ cardview->SetVisible(!status);\r
+ }\r
+\r
+ popupView->SetVisible(status);\r
+}\r
+/*结束弹窗界面*/\r
+void TraingCardView::ShowEndView() {\r
+ // momentumFlag = false; // 标志位还原\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowEndView");\r
+ endView = new UIScrollView();\r
+ if (endView == nullptr) {\r
+ return;\r
+ }\r
+ endView->SetPosition(0, 0);\r
+ endView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);\r
+ endView->SetScrollBlankSize(20);\r
+ endView->SetReboundSize(50);\r
+ endView->SetDirection(1);\r
+\r
+ InitRollLabel(endtitle, 83, 50, 300, 35, "label1", STR_LOOK_OUT,\r
+ DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ InitRollLabel(notelabel, 56, 167, 360, 80, "label2",\r
+ STR_INSUFFICIENT_EXERCISE_AMOUNT, DEFAULT_VECTOR_FONT_FILENAME,\r
+ 30);\r
+ /*隐藏是否结束运动title*/\r
+ InitRollLabel(endnote, 56, 207, 360, 80, "label3", STR_END_THIS_MOVEMENT,\r
+ DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ endnote->SetVisible(false);\r
+\r
+ endView->Add(endnote);\r
+ endView->Add(endtitle);\r
+ endView->Add(notelabel);\r
+\r
+ InitButton(exit, 111, 299, 100, 100, BUTTONBACK);\r
+ exit->SetOnClickListener(static_cast<UIView::OnClickListener *>(\r
+ TraingCardPresenter::GetInstance()));\r
+ exit->SetImageSrc(NO_IMAGE, NO_IMAGE);\r
+ InitButton(back, 256, 299, 100, 100, BUTTONEXIT);\r
+ back->SetOnClickListener(static_cast<UIView::OnClickListener *>(\r
+ TraingCardPresenter::GetInstance()));\r
+ back->SetImageSrc(YES_IMAGE, YES_IMAGE);\r
+ endView->Add(exit);\r
+ endView->Add(back);\r
+ RootView::GetInstance()->Add(endView);\r
+ endView->SetDraggable(false);\r
+ endView->SetTouchable(true);\r
+ endView->SetVisible(false); // 界面隐藏\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowEndView end");\r
+}\r
+/*目标达成界面*/\r
+void TraingCardView::ShowGetTagView() {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowGetTagView");\r
+ getView = new UIScrollView();\r
+ if (getView == nullptr) {\r
+ return;\r
+ }\r
+ getView->SetPosition(0, 0);\r
+ getView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);\r
+ getView->SetScrollBlankSize(20);\r
+ getView->SetReboundSize(50);\r
+ getView->SetDirection(1);\r
+\r
+ // 初始化Lable\r
+ InitRollLabel(labeltitle, 83, 50, 300, 35, "label1", STR_GOAL_ACHIEVED,\r
+ DEFAULT_VECTOR_FONT_FILENAME, 35);\r
+ getView->Add(labeltitle);\r
+ InitRollLabel(labelgettag, 103, 307, 200, 35, "label3", STR_ACCOMPLISH_GOAL,\r
+ DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ getView->Add(labelgettag);\r
+ InitLabel(labelpre, 233, 307, 160, 35, "label3", "100%",\r
+ DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ getView->Add(labelpre);\r
+\r
+ // 初始化按键\r
+ InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONWINOK, STR_OK, 30);\r
+ buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);\r
+ buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(\r
+ TraingCardPresenter::GetInstance()));\r
+ getView->Add(buttonok_);\r
+\r
+ InitImageAnimator();\r
+ RootView::GetInstance()->Add(getView);\r
+ getView->SetDraggable(false);\r
+ getView->SetTouchable(true);\r
+ getView->SetVisible(false); // 界面隐藏\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowGetTagView end");\r
+}\r
+/*最高心率提醒弹窗*/\r
+void TraingCardView::ShowHeartView() {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowHeartView");\r
+ heartView = new UIScrollView();\r
+ if (heartView == nullptr) {\r
+ return;\r
+ }\r
+ heartView->SetPosition(0, 0);\r
+ heartView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);\r
+ heartView->SetScrollBlankSize(20);\r
+ heartView->SetReboundSize(50);\r
+ heartView->SetDirection(1);\r
+\r
+ // 初始化Lable\r
+ InitRollLabel(hearttitle, 83, 50, 300, 35, "label1", STR_HEARTTITLE,\r
+ DEFAULT_VECTOR_FONT_FILENAME, 35);\r
+ heartView->Add(hearttitle);\r
+\r
+ int maxheart = ConfigModel::GetInstance()->get_configData_int(\r
+ ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX);\r
+ std::string heartStr = "当前心率高于" + std::to_string(maxheart) + "次/分钟";\r
+ InitLabel(labelnote, 53, 269, 360, 35, "label3", heartStr.c_str(),\r
+ DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ heartView->Add(labelnote);\r
+\r
+ InitImageView(heartiamge, 193, 149, 80, 80, "note", WARNING_IMAGE);\r
+ heartView->Add(heartiamge);\r
+\r
+ // 初始化按键\r
+ InitButtonExt(buttonnote_, 0, 366, 466, 100, BUTTONNOTE, STR_OK, 30);\r
+ buttonnote_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);\r
+ buttonnote_->SetOnClickListener(static_cast<UIView::OnClickListener *>(\r
+ TraingCardPresenter::GetInstance()));\r
+ heartView->Add(buttonnote_);\r
+\r
+ RootView::GetInstance()->Add(heartView);\r
+ heartView->SetDraggable(false);\r
+ heartView->SetTouchable(true);\r
+ heartView->SetVisible(false); // 界面隐藏\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowHeartView end");\r
+}\r
+/*获取运动量结束弹窗界面刷新*/\r
+bool TraingCardView::RefreshEndView() {\r
+ // 获取训练卡路里判断运动量\r
+ momentumFlag = TraingModel::GetInstance()->GetMomentum();\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "momentumFlag %d", momentumFlag);\r
+\r
+ if (momentumFlag) {\r
+ // 正常结束\r
+ endnote->SetVisible(false);\r
+ endtitle->SetTextId(STR_END_MOVEMENT);\r
+ notelabel->SetTextId(STR_END_THIS_MOVEMENT);\r
+ } else {\r
+ endtitle->SetTextId(STR_LOOK_OUT);\r
+ notelabel->SetTextId(STR_INSUFFICIENT_EXERCISE_AMOUNT);\r
+ endnote->SetVisible(true);\r
+ }\r
+ return momentumFlag;\r
+}\r
+/*初始化动画以及Taglabel*/\r
+void TraingCardView::InitImageAnimator() {\r
+ int tag = TraingModel::GetInstance()->GetSportTag();\r
+ ExerciseTag tagType = TraingModel::GetInstance()->GetSportTagtype();\r
+ std::string tagString = std::to_string(tag);\r
+ switch (tagType) {\r
+ case ExerciseTag::Duration: {\r
+ int hours = tag / 60;\r
+ int minutes = tag % 60;\r
+ int seconds = 0;\r
+ // 将小时、分钟、秒转换为字符串,并在小于10时补零\r
+ std::string hoursStr =\r
+ (hours < 10) ? "0" + std::to_string(hours) : std::to_string(hours);\r
+ std::string minutesStr = (minutes < 10) ? "0" + std::to_string(minutes)\r
+ : std::to_string(minutes);\r
+ std::string secondsStr = (seconds < 10) ? "0" + std::to_string(seconds)\r
+ : std::to_string(seconds);\r
+ tagString = hoursStr + ":" + minutesStr + ":" + secondsStr;\r
+ break;\r
+ }\r
+ case ExerciseTag::Calories: {\r
+ tagString = tagString + "kcal";\r
+ break;\r
+ }\r
+ case ExerciseTag::Distance: {\r
+ tagString = tagString + "km";\r
+ break;\r
+ }\r
+ case ExerciseTag::Steps:\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
+ "tag[%d]-tagType[%d]-tagString[%s]\r\n", tag, tagType,\r
+ tagString.c_str());\r
+ InitLabel(labeltag, 70, 215, 326, 97, "label2", tagString.c_str(),\r
+ DEFAULT_VECTOR_FONT_FILENAME, 80);\r
+ labeltag->SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
+ getView->Add(labeltag);\r
+\r
+ // 初始化图片数组以及动画\r
+ winimageInfos = CreateImageInfoArray(winbasePath.c_str(), 94);\r
+ InitImageAnimatorSource(imageAnimator, winimageAnimatorInfo, winimageInfos,\r
+ 94, 173, 100, 120, 120, "imageAnimator1", 10);\r
+ getView->Add(imageAnimator);\r
+}\r
+\r
+/*获取卡片View单例*/\r
+UICrossView *TraingCardView::GetTraingCrad() { return swipe_; }\r
+void TraingCardView::OnSetUpView() {\r
+ View<TraingCardPresenter>::OnSetUpView();\r
+ Draw();\r
+}\r
+\r
+void TraingCardView::OnTearDownView() {\r
+ View<TraingCardPresenter>::OnTearDownView();\r
+ return;\r
+}\r
+\r
+void TraingCardView::OnStop() {\r
+ View<TraingCardPresenter>::OnStop();\r
+ RootView::GetInstance()->RemoveAll();\r
+ return;\r
+}\r
+\r
+int TraingCardView::GetCurrentPage() {\r
+ return swipe_->GetCurrentPageId(0); // 获取水平页面\r
}\r
+UIImageAnimatorView *TraingCardView::GetAnimator() { return imageAnimator; }\r
+} // namespace OHOS\r
--- /dev/null
+#include "traing/include/TraingModel.h"
+#include "traing/training_card/include/TrainingControlView.h"
+#include "traing/training_card/include/TrainingDataView.h"
+#include "traing/training_card/include/TrainingDetailView.h"
+#include "wearable_log.h"
+
+namespace OHOS {
+
+static TraingDataAllView *g_pTraingDataAllView{nullptr};
+
+TraingDataAllView::TraingDataAllView() {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+ "TraingDataAllView::TraingDataAllView");
+ SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ g_pTraingDataAllView = this;
+}
+
+TraingDataAllView::~TraingDataAllView() {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+ "TraingDataAllView::~TraingDataAllView");
+ ClearAll();
+ g_pTraingDataAllView = nullptr;
+}
+
+TraingDataAllView *TraingDataAllView::GetInstance(void) {
+ return g_pTraingDataAllView;
+}
+
+void TraingDataAllView::ClearAll(void) {
+ for (int32_t i = 0; i < maxPage; i++) {
+ recordCard[i] = nullptr;
+ }
+
+ if (TraingDataAllSwipeViewList) {
+ TraingDataAllSwipeViewList->RemoveAll();
+ delete TraingDataAllSwipeViewList;
+ TraingDataAllSwipeViewList = nullptr;
+ }
+
+ delete trainingDataView;
+ trainingDataView = nullptr;
+
+ delete trainingDetailView;
+ trainingDetailView = nullptr;
+}
+
+UISwipeView *TraingDataAllView::TraingDataAllViewInit(void) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "TraingDataAllView::TraingDataAllViewInit");
+
+ TraingDataAllSwipeViewList = new UISwipeView(UISwipeView::VERTICAL);
+ if (!TraingDataAllSwipeViewList) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "Failed to create TraingDataAllSwipeViewList");
+ return nullptr;
+ }
+
+ TraingDataAllSwipeViewList->SetStyle(STYLE_BACKGROUND_COLOR,
+ Color::Black().full);
+ TraingDataAllSwipeViewList->SetPosition(0, 0, HORIZONTAL_RESOLUTION,
+ VERTICAL_RESOLUTION);
+ TraingDataAllSwipeViewList->SetDraggable(true);
+ TraingDataAllSwipeViewList->SetTouchable(true);
+
+ for (uint16_t i = 0; i < maxPage; i++) {
+ recordCard[i] = CreatePage(i);
+ if (!recordCard[i]) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordCard[%d] is nullptr", i);
+ return nullptr;
+ }
+ recordCard[i]->InitView(this);
+ TraingDataAllSwipeViewList->Add(recordCard[i]);
+ }
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingDataAllView InitPage complete");
+ return TraingDataAllSwipeViewList;
+}
+
+UISwipeView *TraingDataAllView::GetTraingDataAllPageView() {
+ return TraingDataAllViewInit();
+}
+
+TrainingDataView *TraingDataAllView::GetTrainingDataView(void) {
+ return trainingDataView;
+}
+
+TrainingDetailView *TraingDataAllView::GetTrainingDetailView(void) {
+ return trainingDetailView;
+}
+
+AppGroupView *TraingDataAllView::TraingDataPageInit(void) {
+ trainingDataView = new TrainingDataView();
+ if (!trainingDataView) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create TrainingDataView");
+ return nullptr;
+ }
+ return trainingDataView;
+}
+
+AppGroupView *TraingDataAllView::TraingDetailPageInit(void) {
+ trainingDetailView = new TrainingDetailView();
+ if (!trainingDetailView) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "Failed to create TrainingDetailView");
+ return nullptr;
+ }
+ return trainingDetailView;
+}
+
+struct TraingDataAllViewMapper {
+ const int16_t viewId;
+ AppGroupView *(TraingDataAllView::*func)(void);
+};
+
+static const TraingDataAllViewMapper g_pageMapper[] = {
+ {TRAING_DATA_ALL_MAIN_VIEW, &TraingDataAllView::TraingDataPageInit},
+ {TRAING_DATA_ALL_DETAIL_VIEW, &TraingDataAllView::TraingDetailPageInit},
+};
+
+AppGroupView *TraingDataAllView::CreatePage(uint8_t TraingDataAllPageId) {
+ for (const auto &mapper : g_pageMapper) {
+ if (mapper.viewId == TraingDataAllPageId) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "Creating page for TraingDataAllPageId: %d",
+ TraingDataAllPageId);
+ return (this->*(mapper.func))();
+ }
+ }
+ return nullptr;
+}
+
+bool TraingDataAllView::InitView(void) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initializing TraingDataAllView");
+
+ if (!trainingDataAllView) {
+ trainingDataAllView = new TraingDataAllView();
+ if (!trainingDataAllView) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "Failed to create TraingDataAllView");
+ return false;
+ }
+ }
+
+ traingDataAllPageView = dynamic_cast<UISwipeView *>(
+ trainingDataAllView->GetTraingDataAllPageView());
+ if (!traingDataAllPageView) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "GetTraingDataAllPageView returned nullptr");
+ return false;
+ }
+ traingDataAllPageView->SetDraggable(true);
+ traingDataAllPageView->SetTouchable(true);
+ Add(traingDataAllPageView);
+
+ return true;
+}
+
+void TraingDataAllView::PreLoad(void) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Preloading TraingDataAllView");
+ if (!viewiInitStatus && InitView()) {
+ viewiInitStatus = true;
+ }
+}
+
+void TraingDataAllView::UnLoad(void) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unloading TraingDataAllView");
+}
+
+} // namespace OHOS
\ No newline at end of file
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-08-02 09:35:58
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp
*/
#include "traing/training_card/include/TrainingDataView.h"
#include "traing/training_card/include/TraingCardView.h"
-#include "common/image_cache_manager.h"
-#include "components/ui_label_ext.h"
-#include "ui_resource_string.h"
#include "UiConfig.h"
-#include "ui_resource_image.h"
-#include <ui_scroll_view.h>
+#include "common/image_cache_manager.h"
#include "components/ui_button.h"
+#include "components/ui_label_ext.h"
+#include "traing/Training_UiConfig.h"
#include "traing/include/TraingModel.h"
+#include "ui_resource_image.h"
+#include "ui_resource_string.h"
#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
+#include <ui_scroll_view.h>
+
+namespace OHOS {
-namespace OHOS
-{
-
- static TrainingDataView *g_pTrainingDataView{nullptr};
-
- TrainingDataView::TrainingDataView()
- {
- SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
- g_pTrainingDataView = this;
- }
-
- TrainingDataView::~TrainingDataView()
- {
- RemoveAll();
- DeInit();
- g_pTrainingDataView = nullptr;
- }
-
- TrainingDataView *TrainingDataView::GetInstance()
- {
- return g_pTrainingDataView;
- }
-
- /* InitView:初始化界面*/
- void TrainingDataView ::InitView()
- {
- // 初始化Image
- InitImageView(image_progress, 13, 13, 440, 386, "image1", PROGRESS_IMAGE);
- InitImageView(image_heart, 88, 295, 50, 50, "image2", SPORT_HEARTRATE_IMAGE);
- InitImageView(image_iconup, 225, 396, 16, 10, "image4", INCO_UP_IMAGE);
- InitImageView(image_iconpoint, 193, 421, 80, 20, "image5", DATA_POINT_IMAGE);
- Add(image_progress);
- Add(image_heart);
- Add(image_iconup);
- Add(image_iconpoint);
-
- // 初始化进度条
- circleProgress = new UICircleProgress();
- circleProgress->SetPosition(0, 0);
- circleProgress->Resize(466, 466);
- circleProgress->SetViewId("circleProgress");
- circleProgress->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
- circleProgress->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
- circleProgress->SetBackgroundStyle(STYLE_LINE_WIDTH, 12);
- circleProgress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);
- circleProgress->SetForegroundStyle(STYLE_BORDER_COLOR, 0xff000000);
- circleProgress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff4fC34C);
- circleProgress->SetForegroundStyle(STYLE_LINE_WIDTH, 10);
- circleProgress->SetCenterPosition(235, 235);
- circleProgress->SetRadius(215);
- circleProgress->SetStartAngle(215);
- circleProgress->SetEndAngle(505);
- circleProgress->SetCapType(CAP_ROUND);
- circleProgress->SetValue(0);
- Add(circleProgress);
-
- // 初始化Lable
- UIResourceTextId sport_id = TraingModel::GetInstance()->GetSportEvent();
- InitLabelExt(sportlabel, 83, 120, 300, 35, "label2", sport_id, DEFAULT_VECTOR_FONT_FILENAME, 30);
- sportlabel->SetTextColor(Color::Gray());
-
- InitLabel(curtimelabel, 155, 60, 150, 50, "label1", "23:54", DEFAULT_VECTOR_FONT_FILENAME, 40);
-
- InitLabel(timerlabel, 0, 163, 466, 150, "label3", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 80);
- InitLabel(heartlabel, 85, 284, 230, 80, "label4", "--", DEFAULT_VECTOR_FONT_FILENAME, 60);
- InitLabel(ubpmlabel, 218, 284, 230, 80, "label5", "bpm", DEFAULT_VECTOR_FONT_FILENAME, 60);
- ubpmlabel->SetTextColor(Color::Gray());
- Add(curtimelabel);
- Add(sportlabel);
- Add(timerlabel);
- Add(heartlabel);
- Add(ubpmlabel);
+static TrainingDataView *g_pTrainingDataView{nullptr};
+
+TrainingDataView::TrainingDataView() {
+ SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ g_pTrainingDataView = this;
+}
+
+TrainingDataView::~TrainingDataView() {
+ RemoveAll();
+ DeInit();
+ g_pTrainingDataView = nullptr;
+}
+
+TrainingDataView *TrainingDataView::GetInstance() {
+ return g_pTrainingDataView;
+}
+
+/* InitView:初始化界面*/
+bool TrainingDataView ::InitPage() {
+ // 初始化Image
+ InitImageView(image_progress, 13, 13, 440, 386, "image1", PROGRESS_IMAGE);
+ InitImageView(image_heart, 88, 295, 50, 50, "image2", SPORT_HEARTRATE_IMAGE);
+ InitImageView(image_iconup, 225, 396, 16, 10, "image4", INCO_UP_IMAGE);
+ InitImageView(image_iconpoint, 193, 421, 80, 20, "image5", DATA_POINT_IMAGE);
+ Add(image_progress);
+ Add(image_heart);
+ Add(image_iconup);
+ Add(image_iconpoint);
+
+ // 初始化进度条
+ circleProgress = new UICircleProgress();
+ circleProgress->SetPosition(0, 0);
+ circleProgress->Resize(466, 466);
+ circleProgress->SetViewId("circleProgress");
+ circleProgress->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ circleProgress->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+ circleProgress->SetBackgroundStyle(STYLE_LINE_WIDTH, 12);
+ circleProgress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);
+ circleProgress->SetForegroundStyle(STYLE_BORDER_COLOR, 0xff000000);
+ circleProgress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff4fC34C);
+ circleProgress->SetForegroundStyle(STYLE_LINE_WIDTH, 10);
+ circleProgress->SetCenterPosition(235, 235);
+ circleProgress->SetRadius(215);
+ circleProgress->SetStartAngle(215);
+ circleProgress->SetEndAngle(505);
+ circleProgress->SetCapType(CAP_ROUND);
+ circleProgress->SetValue(0);
+ Add(circleProgress);
+
+ // 初始化Lable
+ UIResourceTextId sport_id = TraingModel::GetInstance()->GetSportEvent();
+ InitLabelExt(sportlabel, 83, 120, 300, 35, "label2", sport_id,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ sportlabel->SetTextColor(Color::Gray());
+
+ InitLabel(curtimelabel, 155, 60, 150, 50, "label1", "23:54",
+ DEFAULT_VECTOR_FONT_FILENAME, 40);
+
+ InitLabel(timerlabel, 0, 163, 466, 150, "label3", "00:00:00",
+ DEFAULT_VECTOR_FONT_FILENAME, 80);
+ InitLabel(heartlabel, 85, 284, 230, 80, "label4", "--",
+ DEFAULT_VECTOR_FONT_FILENAME, 60);
+ InitLabel(ubpmlabel, 218, 284, 230, 80, "label5", "bpm",
+ DEFAULT_VECTOR_FONT_FILENAME, 60);
+ ubpmlabel->SetTextColor(Color::Gray());
+ Add(curtimelabel);
+ Add(sportlabel);
+ Add(timerlabel);
+ Add(heartlabel);
+ Add(ubpmlabel);
+
+ return true;
#if 0
// 初始化Button
buttonNote->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));
Add(buttonNote);
#endif
- // 增加上拉卡片
- SetCoverable(true);
- }
-
- /* DeInit:删除组件 */
- void TrainingDataView::DeInit()
- {
- RemoveAll();
- if (curtimelabel != nullptr)
- {
- curtimelabel = nullptr;
- }
- if (sportlabel != nullptr)
- {
- delete sportlabel;
- sportlabel = nullptr;
- }
- if (timerlabel != nullptr)
- {
- delete timerlabel;
- timerlabel = nullptr;
- }
- if (heartlabel != nullptr)
- {
- delete heartlabel;
- heartlabel = nullptr;
- }
- if (ubpmlabel != nullptr)
- {
- delete ubpmlabel;
- ubpmlabel = nullptr;
- }
- // 删除button
- if (buttonNote != nullptr)
- {
- delete buttonNote;
- buttonNote = nullptr;
- }
-
- // 删除Image
- if (image_lowIntensity != nullptr)
- {
- delete image_lowIntensity;
- image_lowIntensity = nullptr;
- }
- if (image_iconup != nullptr)
- {
- delete image_iconup;
- image_iconup = nullptr;
- }
- if (image_iconpoint != nullptr)
- {
- delete image_iconpoint;
- image_iconpoint = nullptr;
- }
- if (circleProgress != nullptr)
- {
- delete circleProgress;
- circleProgress = nullptr;
- }
- }
-
- void TrainingDataView::PreLoad(void)
- {
- if (!viewiInitStatus)
- {
- InitView();
- viewiInitStatus = true;
- }
- }
-
- void TrainingDataView::UnLoad(void) {}
- UILabelExt *TrainingDataView::GetTimeLabel()
- {
- return timerlabel;
- }
- UILabelExt *TrainingDataView::GetHeartLabel()
- {
- return heartlabel;
- }
- UICircleProgress *TrainingDataView::GetProgress()
- {
- return circleProgress;
- }
- /*更新当前时间*/
- void TrainingDataView::UpdataTime()
- {
- if (curtimelabel == nullptr) // 防止刷新空组件
- return;
-
- // 获取当前时间
- struct tm pTM;
- time_t seconds;
- time(&seconds);
- localtime_r(&seconds, &pTM);
-
- // 解析时间
- int hour = pTM.tm_hour;
- int minute = pTM.tm_min;
-
- // 将时间和日期转换为字符串
- std::string stringtime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" + (minute < 10 ? "0" : "") + std::to_string(minute);
- curtimelabel->SetText(stringtime.c_str());
- }
+ // 增加上拉卡片
+ // SetCoverable(true);
+}
+
+/* DeInit:删除组件 */
+void TrainingDataView::DeInit() {
+ RemoveAll();
+ if (curtimelabel != nullptr) {
+ curtimelabel = nullptr;
+ }
+ if (sportlabel != nullptr) {
+ delete sportlabel;
+ sportlabel = nullptr;
+ }
+ if (timerlabel != nullptr) {
+ delete timerlabel;
+ timerlabel = nullptr;
+ }
+ if (heartlabel != nullptr) {
+ delete heartlabel;
+ heartlabel = nullptr;
+ }
+ if (ubpmlabel != nullptr) {
+ delete ubpmlabel;
+ ubpmlabel = nullptr;
+ }
+ // 删除button
+ if (buttonNote != nullptr) {
+ delete buttonNote;
+ buttonNote = nullptr;
+ }
+
+ // 删除Image
+ if (image_lowIntensity != nullptr) {
+ delete image_lowIntensity;
+ image_lowIntensity = nullptr;
+ }
+ if (image_iconup != nullptr) {
+ delete image_iconup;
+ image_iconup = nullptr;
+ }
+ if (image_iconpoint != nullptr) {
+ delete image_iconpoint;
+ image_iconpoint = nullptr;
+ }
+ if (circleProgress != nullptr) {
+ delete circleProgress;
+ circleProgress = nullptr;
+ }
+}
+
+UILabelExt *TrainingDataView::GetTimeLabel() { return timerlabel; }
+UILabelExt *TrainingDataView::GetHeartLabel() { return heartlabel; }
+UICircleProgress *TrainingDataView::GetProgress() { return circleProgress; }
+/*更新当前时间*/
+void TrainingDataView::UpdataTime() {
+ if (curtimelabel == nullptr) // 防止刷新空组件
+ return;
+
+ // 获取当前时间
+ struct tm pTM;
+ time_t seconds;
+ time(&seconds);
+ localtime_r(&seconds, &pTM);
+
+ // 解析时间
+ int hour = pTM.tm_hour;
+ int minute = pTM.tm_min;
+
+ // 将时间和日期转换为字符串
+ std::string stringtime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" +
+ (minute < 10 ? "0" : "") + std::to_string(minute);
+ curtimelabel->SetText(stringtime.c_str());
+}
+
+bool TrainingDataView::InitView(void *caller) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingDataView InitView %p",
+ caller);
+ if (InitPage() == false) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingDataView::InitPage fail");
+ return false;
+ }
+ SetDraggable(true);
+ SetTouchable(true);
+ // SleepDataRefresh();
+ return true;
}
+} // namespace OHOS
#include "traing/training_card/include/TrainingDetailView.h"
#include "traing/training_card/include/TraingCardView.h"
-#include "common/image_cache_manager.h"
-#include "components/ui_label_ext.h"
-#include "ui_resource_string.h"
#include "UiConfig.h"
-#include "ui_resource_image.h"
-#include <ui_scroll_view.h>
+#include "common/image_cache_manager.h"
#include "components/ui_button.h"
+#include "components/ui_label_ext.h"
+#include "traing/Training_UiConfig.h"
#include "traing/include/TraingModel.h"
+#include "ui_resource_image.h"
+#include "ui_resource_string.h"
#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
-
-namespace OHOS
-{
-
- static TrainingDetailView *g_pTrainingDetailView{nullptr};
-
- TrainingDetailView::TrainingDetailView()
- {
- SetPosition(0, 0, 466, 466);
- // SetStyle(STYLE_BACKGROUND_OPA, 0);
- // SetStyle(STYLE_BORDER_RADIUS, 466);
- g_pTrainingDetailView = this;
- }
- TrainingDetailView::~TrainingDetailView()
- {
- RemoveAll();
- DeInit();
- g_pTrainingDetailView = nullptr;
- }
-
- TrainingDetailView *TrainingDetailView::GetInstance()
- {
- return g_pTrainingDetailView;
- }
-
- /* InitView:初始化界面*/
- void TrainingDetailView ::InitView()
- {
- // 初始化Image
-
- InitImageView(progress_image, 0, 0, 100, 100, "image5", COLOR_PROGRESS_IMAGE);
- // InitImageView(lineimage2_, 225, 190, 0, 0, "image", LINE_2_IMAGE);
- if (lineimage2_ == nullptr)
- {
- lineimage2_ = new UIImageView();
- }
- lineimage2_->SetPosition(232, 191);
- lineimage2_->Resize(2, 82);
- lineimage2_->SetViewId("image2");
- lineimage2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff333333);
- lineimage2_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- lineimage2_->SetVisible(true);
-
- Add(progress_image);
- Add(lineimage2_);
-
- // 初始化Lable
- InitLabelExt(u_milelabel, 16, 234, 220, 35, "label2", STR_RANGE_SETTING, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabelExt(u_stepslabel, 73, 362, 320, 35, "label3", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabelExt(u_calorielabel, 225, 235, 230, 35, "label4", STR_CALORIE_SETTING, DEFAULT_VECTOR_FONT_FILENAME, 30);
- u_milelabel->SetTextColor(Color::Gray());
- u_stepslabel->SetTextColor(Color::Gray());
- u_calorielabel->SetTextColor(Color::Gray());
-
- InitLabel(milelabel, 17, 160, 200, 80, "label6", "13.21", DEFAULT_VECTOR_FONT_FILENAME, 65);
- InitLabel(calorielabel, 230, 160, 200, 80, "label7", "28312", DEFAULT_VECTOR_FONT_FILENAME, 65);
- InitLabel(steplabel, 133, 285, 200, 80, "label8", "210.03", DEFAULT_VECTOR_FONT_FILENAME, 65);
- Add(u_milelabel);
- Add(u_stepslabel);
- Add(u_calorielabel);
- Add(milelabel);
- Add(steplabel);
- Add(calorielabel);
+#include <ui_scroll_view.h>
- InitButtonExt(intensity_button, 103, 70, 260, 80, "button", STR_LOWER_STRENGTH, 30);
- Add(intensity_button);
+namespace OHOS {
- SetTouchable(true);
- // SetIntercept(true);
- }
- /* DeInit:删除组件 */
- void TrainingDetailView::DeInit()
- {
- RemoveAll();
- if (u_milelabel != nullptr)
- {
- delete u_milelabel;
- u_milelabel = nullptr;
- }
- if (u_stepslabel != nullptr)
- {
- delete u_stepslabel;
- u_stepslabel = nullptr;
- }
- if (u_calorielabel != nullptr)
- {
- delete u_calorielabel;
- u_calorielabel = nullptr;
- }
- if (milelabel != nullptr)
- {
- delete milelabel;
- milelabel = nullptr;
- }
- if (steplabel != nullptr)
- {
- delete steplabel;
- steplabel = nullptr;
- }
- if (calorielabel != nullptr)
- {
- delete calorielabel;
- calorielabel = nullptr;
- }
+static TrainingDetailView *g_pTrainingDetailView{nullptr};
- if (progress_image != nullptr)
- {
- delete progress_image;
- progress_image = nullptr;
- }
- if (lineimage2_ != nullptr)
- {
- delete lineimage2_;
- lineimage2_ = nullptr;
- }
- if (intensity_button != nullptr)
- {
- delete intensity_button;
- intensity_button = nullptr;
- }
- }
+TrainingDetailView::TrainingDetailView() {
+ SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ // SetStyle(STYLE_BACKGROUND_OPA, 0);
+ // SetStyle(STYLE_BORDER_RADIUS, 466);
+ g_pTrainingDetailView = this;
+}
+TrainingDetailView::~TrainingDetailView() {
+ RemoveAll();
+ DeInit();
+ g_pTrainingDetailView = nullptr;
+}
- void TrainingDetailView::PreLoad(void)
- {
- if (!viewiInitStatus)
- {
- InitView();
- viewiInitStatus = true;
- }
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingDetailView");
- }
+TrainingDetailView *TrainingDetailView::GetInstance() {
+ return g_pTrainingDetailView;
+}
- void TrainingDetailView::UnLoad(void) {}
+/* InitView:初始化界面*/
+bool TrainingDetailView ::InitPage() {
+ // 初始化Image
+ InitImageView(progress_image, 0, 0, 100, 100, "image5", COLOR_PROGRESS_IMAGE);
+ // InitImageView(lineimage2_, 225, 190, 0, 0, "image", LINE_2_IMAGE);
+ if (lineimage2_ == nullptr) {
+ lineimage2_ = new UIImageView();
+ }
+ lineimage2_->SetPosition(232, 191);
+ lineimage2_->Resize(2, 82);
+ lineimage2_->SetViewId("image2");
+ lineimage2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff333333);
+ lineimage2_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ lineimage2_->SetVisible(true);
+
+ Add(progress_image);
+ Add(lineimage2_);
+
+ // 初始化Lable
+ InitLabelExt(u_milelabel, 16, 234, 220, 35, "label2", STR_RANGE_SETTING,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabelExt(u_stepslabel, 73, 362, 320, 35, "label3", STR_STEP_NUMBER,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabelExt(u_calorielabel, 225, 235, 230, 35, "label4", STR_CALORIE_SETTING,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ u_milelabel->SetTextColor(Color::Gray());
+ u_stepslabel->SetTextColor(Color::Gray());
+ u_calorielabel->SetTextColor(Color::Gray());
+
+ InitLabel(milelabel, 17, 160, 200, 80, "label6", "13.21",
+ DEFAULT_VECTOR_FONT_FILENAME, 65);
+ InitLabel(calorielabel, 230, 160, 200, 80, "label7", "28312",
+ DEFAULT_VECTOR_FONT_FILENAME, 65);
+ InitLabel(steplabel, 133, 285, 200, 80, "label8", "210.03",
+ DEFAULT_VECTOR_FONT_FILENAME, 65);
+ Add(u_milelabel);
+ Add(u_stepslabel);
+ Add(u_calorielabel);
+ Add(milelabel);
+ Add(steplabel);
+ Add(calorielabel);
+
+ InitButtonExt(intensity_button, 103, 70, 260, 80, "button",
+ STR_LOWER_STRENGTH, 30);
+ Add(intensity_button);
+
+ SetTouchable(true);
+
+ return true;
+}
+/* DeInit:删除组件 */
+void TrainingDetailView::DeInit() {
+ RemoveAll();
+ if (u_milelabel != nullptr) {
+ delete u_milelabel;
+ u_milelabel = nullptr;
+ }
+ if (u_stepslabel != nullptr) {
+ delete u_stepslabel;
+ u_stepslabel = nullptr;
+ }
+ if (u_calorielabel != nullptr) {
+ delete u_calorielabel;
+ u_calorielabel = nullptr;
+ }
+ if (milelabel != nullptr) {
+ delete milelabel;
+ milelabel = nullptr;
+ }
+ if (steplabel != nullptr) {
+ delete steplabel;
+ steplabel = nullptr;
+ }
+ if (calorielabel != nullptr) {
+ delete calorielabel;
+ calorielabel = nullptr;
+ }
+
+ if (progress_image != nullptr) {
+ delete progress_image;
+ progress_image = nullptr;
+ }
+ if (lineimage2_ != nullptr) {
+ delete lineimage2_;
+ lineimage2_ = nullptr;
+ }
+ if (intensity_button != nullptr) {
+ delete intensity_button;
+ intensity_button = nullptr;
+ }
+}
- UILabelExt *TrainingDetailView::GetMileLabel()
- {
- return milelabel;
- }
- UILabelExt *TrainingDetailView::GetStepLabel()
- {
- return steplabel;
- }
- UILabelExt *TrainingDetailView::GetCalorieLabel()
- {
- return calorielabel;
- }
- UILabelButtonExt *TrainingDetailView::Get_Intensity_Button()
- {
- return intensity_button;
- }
+bool TrainingDetailView::InitView(void *caller) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TrainingDetailView InitView %p",
+ caller);
+ if (InitPage() == false) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingDetailView::InitPage fail");
+ return false;
+ }
+ SetDraggable(true);
+ SetTouchable(true);
+ // SleepDataRefresh();
+ return true;
+}
+UILabelExt *TrainingDetailView::GetMileLabel() { return milelabel; }
+UILabelExt *TrainingDetailView::GetStepLabel() { return steplabel; }
+UILabelExt *TrainingDetailView::GetCalorieLabel() { return calorielabel; }
+UILabelButtonExt *TrainingDetailView::Get_Intensity_Button() {
+ return intensity_button;
}
+} // namespace OHOS