-/***
+/***
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-09-06 18:47:14
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessModel.h
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessModel.h
*/
#ifndef TraingFitness_MODEL_H
#define TraingFitness_MODEL_H
-#include <cstdint>
-#include <map>
#include "AppViewIDs.h"
-#include "UiConfig.h"
#include "TraingFitnessPresenter.h"
+#include "UiConfig.h"
#include "traing/training_list_fitness/include/TraingFitnessAdapter.h"
+#include <cstdint>
+#include <map>
+
+namespace OHOS {
+class TraingFitnessModel {
+public:
+ static TraingFitnessModel &GetInstance(void);
+ void InitTraingFitnessListItem();
+ const TraingFitnessItem *GetTraingFitnesslistItems() const;
+ uint8_t GetTraingFitnessListNum() const;
+ // const std::map<TraingFitnessIndex, AppViewId> &GetTraingFitnessIdToViewId()
+ // const;
-namespace OHOS
-{
- class TraingFitnessModel
- {
- public:
- static TraingFitnessModel &GetInstance(void);
- void InitTraingFitnessListItem();
- const TraingFitnessItem *GetTraingFitnesslistItems() const;
- uint8_t GetTraingFitnessListNum() const;
- // const std::map<TraingFitnessIndex, AppViewId> &GetTraingFitnessIdToViewId() const;
+private:
+ TraingFitnessModel();
+ TraingFitnessModel(const TraingFitnessModel &);
+ TraingFitnessModel &operator=(const TraingFitnessModel &);
+ virtual ~TraingFitnessModel();
+ static const uint16_t TraingFitnessListMaxNum = 60;
- private:
- TraingFitnessModel();
- TraingFitnessModel(const TraingFitnessModel &);
- TraingFitnessModel &operator=(const TraingFitnessModel &);
- virtual ~TraingFitnessModel();
- static const uint16_t TraingFitnessListMaxNum = 59;
-
- TraingFitnessItem TraingFitnesss[TraingFitnessListMaxNum] = {VIEW_INVALID, STR_EXERCISE_GENERAL};
- // std::map<int, AppViewId> TraingFitnessIdToViewId;
- bool btConnectStatus{false};
- };
-}
+ TraingFitnessItem TraingFitnesss[TraingFitnessListMaxNum] = {
+ VIEW_INVALID, STR_EXERCISE_GENERAL};
+ bool btConnectStatus{false};
+};
+} // namespace OHOS
#endif
\ No newline at end of file
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-26 09:39:13
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-29 17:07:10
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
+
#ifndef TraingFitness_VIEW_H
#define TraingFitness_VIEW_H
#include "BaseView.h"
#include "View.h"
-#include "components/ui_view_group.h"
-#include "components/ui_scroll_view.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_label_ext.h"
#include "components/ui_list.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_view_group.h"
#include "traing/training_list_fitness/include/TraingFitnessAdapter.h"
#include "traing/training_list_fitness/include/TraingFitnessModel.h"
-#include "components/ui_label_button_ext.h"
-#include "components/ui_label_ext.h"
-#include"ui_resource_string.h"
-
-namespace OHOS
-{
- class TraingFitnessPresenter;
- class TraingFitnessModel;
- class TraingFitnessView : public View<TraingFitnessPresenter>, public UIViewGroup
- {
-
- public:
- TraingFitnessView();
- virtual ~TraingFitnessView();
- static TraingFitnessView *GetInstance(void);
-
- void OnStart() override;
- void OnSetUpView() override;
- void OnTearDownView() override;
- void OnStop() override;
-
- UIList *GetList();
- UIScrollView *GetScrollView();
-
- void AddToTraingFitnessList(const TraingFitnessItem &item);
-
- private:
- void InitView(void);
- void DeInitView(void);
- void PreLoad(void);
-
- private:
- UIScrollView *scrollView = nullptr;
- // UILabelExt *title{nullptr};
- TraingFitnessAdapter *p_TraingFitnessListAdapter{nullptr};
- UIList *TraingFitnessList = nullptr;
- UIView::OnDragListener *draglistener{nullptr};
-
- TraingFitnessPresenter *g_TraingFitnessPresenter{nullptr};
- TraingFitnessModel *g_TraingFitnessModel{nullptr};
- bool viewInitStatus{false};
- };
+#include "ui_resource_string.h"
+
+namespace OHOS {
+class TraingFitnessPresenter;
+class TraingFitnessModel;
+class TraingFitnessView : public View<TraingFitnessPresenter>,
+ public UIViewGroup {
+
+public:
+ TraingFitnessView();
+ virtual ~TraingFitnessView();
+ static TraingFitnessView *GetInstance(void);
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStop() override;
+
+ UIList *GetList();
+ UIScrollView *GetScrollView();
+
+ void AddToTraingFitnessList(const TraingFitnessItem &item);
+
+private:
+ void InitView(void);
+ void DeInitView(void);
+ void InitList();
+ void InitScrollView();
+ void SetKeyActListener(void);
+ void PreLoad(void);
+
+private:
+ UIScrollView *scrollView = nullptr;
+ TraingFitnessAdapter *p_TraingFitnessListAdapter{nullptr};
+ UIList *TraingFitnessList = nullptr;
+ bool viewInitStatus{false};
+};
} // namespace OHOS
#endif
\ No newline at end of file
#include "traing/training_list_fitness/include/TraingFitnessView.h"
-#include "traing/training_list_fitness/include/TraingFitnessPresenter.h"
+#include "UiConfig.h"
+#include "components/ui_label_ext.h"
+#include "traing/Training_UiConfig.h"
#include "traing/include/TraingModel.h"
+#include "traing/training_list_fitness/include/TraingFitnessPresenter.h"
+#include "ui_resource_string.h"
#include "uicomponents/UIComponents.h"
-#include "traing/Training_UiConfig.h"
-
-#include "UiConfig.h"
#include "wearable_log.h"
-
-namespace OHOS
-{
- static constexpr uint8_t NUM_2 = 2;
- static TraingFitnessView *g_pTraingFitnessView{nullptr};
-
- static constexpr int16_t Fitness_LIST_POSITION_X = 43;
- static constexpr int16_t Fitness_LIST_POSITION_Y = 120;
- static constexpr int16_t Fitness_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。
- static constexpr int16 MAX_SCR_DIS = 1000;
- static constexpr int16 LIST_POS = 20;
- static constexpr int16 SNUM_2 = 2;
-
- TraingFitnessView::TraingFitnessView()
- {
- g_pTraingFitnessView = this;
- }
-
- TraingFitnessView::~TraingFitnessView()
- {
- if (viewInitStatus == true)
- {
- DeInitView();
- }
- g_pTraingFitnessView = nullptr;
- }
-
- TraingFitnessView *TraingFitnessView::GetInstance()
- {
- return g_pTraingFitnessView;
- }
- /// @param item
- void TraingFitnessView::AddToTraingFitnessList(const TraingFitnessItem &item)
- {
- p_TraingFitnessListAdapter->AddItem(item);
- }
-
- static void SetKeyActListener()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");
- // 增加按键监听
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingFitnessPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
- }
- void TraingFitnessView::InitView()
- {
- if (scrollView == nullptr)
- {
- scrollView = new UIScrollView();
- if (scrollView == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView new fail!");
- return;
- }
- scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- // scrollView->SetScrollBlankSize(50);
- // // scrollView->SetReboundSize(35);
- scrollView->SetHorizontalScrollState(false);
- // scrollView->RequestFocus();
- // scrollView->SetRotateFactor(1.0);
- scrollView->SetMaxScrollDistance(1000);
- scrollView->SetDragACCLevel(5);
- scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
- scrollView->SetTouchable(true);
- scrollView->SetDraggable(true);
- container_->Add(scrollView);
- }
- /* -------------------------------------------------------------------------- */
- // // 初始化Lable 暂时不添加
- // if (title == nullptr)
- // {
- // InitLabelExt(title, 135, 52, 200, 60, "label1", STR_EXERCISE_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
- // title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
- // scrollView->Add(title);
- // }
- // UIList 的适配器
- if (p_TraingFitnessListAdapter == nullptr)
- {
- p_TraingFitnessListAdapter = new TraingFitnessAdapter();
- p_TraingFitnessListAdapter->SetItemClickListener(presenter_);
+#include <memory>
+
+namespace OHOS {
+static TraingFitnessView *g_pTraingFitnessView{nullptr};
+
+TraingFitnessView::TraingFitnessView() { g_pTraingFitnessView = this; }
+
+TraingFitnessView::~TraingFitnessView() { g_pTraingFitnessView = nullptr; }
+
+TraingFitnessView *TraingFitnessView::GetInstance() {
+ return g_pTraingFitnessView;
+}
+
+void TraingFitnessView::AddToTraingFitnessList(const TraingFitnessItem &item) {
+ if (p_TraingFitnessListAdapter) {
+ p_TraingFitnessListAdapter->AddItem(item);
+ }
+}
+
+void TraingFitnessView::SetKeyActListener() {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");
+ auto keyActListener = static_cast<RootView::OnKeyActListener *>(
+ TraingFitnessPresenter::GetInstance());
+ RootView::GetInstance()->SetOnKeyActListener(keyActListener);
+}
+
+void TraingFitnessView::InitScrollView() {
+ if (scrollView == nullptr) {
+ scrollView = new UIScrollView();
+ }
+ scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
+ Screen::GetInstance().GetHeight());
+ scrollView->SetTouchable(true);
+ scrollView->SetDraggable(true);
+ scrollView->SetDirection(1);
+ scrollView->SetHorizontalScrollState(false);
+ scrollView->SetOnDragListener(presenter_);
+ scrollView->SetYScrollBarVisible(true);
+}
+
+void TraingFitnessView::InitList() {
+ if (p_TraingFitnessListAdapter == nullptr) {
+ p_TraingFitnessListAdapter = new TraingFitnessAdapter();
+ }
+ p_TraingFitnessListAdapter->SetItemClickListener(presenter_);
+
+ if (TraingFitnessList == nullptr) {
+ TraingFitnessList = new UIList();
+ }
+ TraingFitnessList->SetPosition(43, 0, HORIZONTAL_RESOLUTION,
+ VERTICAL_RESOLUTION);
+ TraingFitnessList->SetThrowDrag(true);
+ TraingFitnessList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+ TraingFitnessList->SetMaxScrollDistance(1000);
+ TraingFitnessList->SetSwipeACCLevel(800);
+ TraingFitnessList->SetDragACCLevel(5);
+ TraingFitnessList->SetRotateFactor(1);
+ TraingFitnessList->RequestFocus();
+}
+
+void TraingFitnessView::InitView() {
+ InitScrollView();
+ InitList();
+ SetKeyActListener();
+}
+
+void TraingFitnessView::DeInitView() {
+ if (viewInitStatus) {
+ if (container_) {
+ container_->RemoveAll();
+ if (scrollView) {
+ scrollView->RemoveAll();
+ if (p_TraingFitnessListAdapter) {
+ delete p_TraingFitnessListAdapter;
+ p_TraingFitnessListAdapter = nullptr;
}
- // 初始化列表
- if (TraingFitnessList == nullptr)
- {
- TraingFitnessList = new UIList();
- TraingFitnessList->SetPosition(43, 0, 466, 466);
- TraingFitnessList->SetThrowDrag(true);
- TraingFitnessList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- TraingFitnessList->SetMaxScrollDistance(1000);
- TraingFitnessList->SetSwipeACCLevel(800);
- TraingFitnessList->SetDragACCLevel(5);
- // 增加表冠控制
- TraingFitnessList->SetRotateFactor(1.0);
- TraingFitnessList->RequestFocus();
+ if (TraingFitnessList) {
+ delete TraingFitnessList;
+ TraingFitnessList = nullptr;
}
- }
- UIList *TraingFitnessView::GetList()
- {
- return TraingFitnessList;
- }
- UIScrollView *TraingFitnessView::GetScrollView()
- {
- return scrollView;
- }
- void TraingFitnessView::DeInitView()
- {
- // scrollView-> RemoveAll();
- scrollView->RemoveAll();
-
- // delete title;
- // title = nullptr;
-
- delete TraingFitnessList;
- TraingFitnessList = nullptr;
-
delete scrollView;
scrollView = nullptr;
-
- delete draglistener;
- draglistener = nullptr;
- }
-
- void TraingFitnessView::PreLoad(void)
- {
- if (!viewInitStatus)
- {
- InitView();
- viewInitStatus = true;
- }
+ }
}
-
- /// @brief 页面启动时需要执行的代码逻辑
- void TraingFitnessView::OnStart()
- {
- View<TraingFitnessPresenter>::OnStart();
- BaseView::RootView(Color::Black().full);
- SetContainerView(new UIViewGroup());
- container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- container_->SetOnDragListener(presenter_);
- container_->SetTouchable(true);
- container_->SetDraggable(true);
- PreLoad();
- RootView::GetInstance()->SetOnKeyActListener(presenter_);
- }
-
- /// @brief 创建页面的视图。
- void TraingFitnessView::OnSetUpView()
- {
- View<TraingFitnessPresenter>::OnSetUpView();
- if (TraingFitnessList != nullptr && p_TraingFitnessListAdapter != nullptr)
- {
- scrollView->Add(TraingFitnessList);
- scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- RootView::GetInstance()->Add(scrollView);
- TraingFitnessList->SetAdapter(p_TraingFitnessListAdapter);
- }
- Draw();
- }
-
- /// @brief 销毁页面的视图。
- void TraingFitnessView::OnTearDownView()
- {
- View<TraingFitnessPresenter>::OnTearDownView();
- return;
- }
-
- /// @brief 页面结束时需要执行的销毁逻辑。
- void TraingFitnessView::OnStop()
- {
- View<TraingFitnessPresenter>::OnStop();
- if (container_ != nullptr)
- {
- container_->RemoveAll();
- delete container_;
- container_ = nullptr;
- }
- RootView::GetInstance()->ClearOnKeyActListener();
- RootView::GetInstance()->RemoveAll();
- return;
+ delete container_;
+ container_ = nullptr;
+ }
+}
+
+void TraingFitnessView::PreLoad() {
+ if (!viewInitStatus) {
+ InitView();
+ viewInitStatus = true;
+ }
+}
+
+void TraingFitnessView::OnStart() {
+ View<TraingFitnessPresenter>::OnStart();
+ SetContainerView(new UIViewGroup());
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
+ Screen::GetInstance().GetHeight());
+ BaseView::RootView(Color::Black().full);
+ PreLoad();
+ SetContainerView(container_);
+}
+
+void TraingFitnessView::OnSetUpView() {
+ View<TraingFitnessPresenter>::OnSetUpView();
+ if (scrollView && TraingFitnessList) {
+ scrollView->Add(TraingFitnessList);
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+ container_->Add(scrollView);
+ if (p_TraingFitnessListAdapter) {
+ TraingFitnessList->SetAdapter(p_TraingFitnessListAdapter);
}
-}
\ No newline at end of file
+ Draw();
+ }
+}
+
+void TraingFitnessView::OnTearDownView() {
+ View<TraingFitnessPresenter>::OnTearDownView();
+}
+
+void TraingFitnessView::OnStop() {
+ View<TraingFitnessPresenter>::OnStop();
+ RootView::GetInstance()->ClearOnKeyActListener();
+ DeInitView();
+ RootView::GetInstance()->RemoveAll();
+}
+} // namespace OHOS
\ No newline at end of file