From: Caisking <3449750381@qq.com> Date: Fri, 29 Mar 2024 10:13:30 +0000 (+0800) Subject: 增加水上运动并且适配多国语言 X-Git-Tag: release_V1.2.70_20241020_135402~1241^2~14 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=a4ad810ba6ca042291d7a5cd43acbe56b1871648;p=mirrors%2FFD230.git 增加水上运动并且适配多国语言 --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 4ee9f4acf..fb590c274 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -497,6 +497,13 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_ball/src/TraingBallModel.cpp + #水上训练 + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMoreView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index 5ddae06ce..49fd0459d 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@ -93,6 +93,8 @@ typedef enum : uint16_t VIEW_TRAININGDANCE, // 舞蹈运动列表 VIEW_TRAININGREST, // 休闲运动列表 VIEW_TRAININGBALL, // 球类运动列表 + VIEW_TRAININGAQUATIC, // 水上运动列表 + /* ---------------------------------- GPS训练 --------------------------------- */ VIEW_TRAININGGPS, // GPS训练 VIEW_TRAININGGPSSET, // GPS训练目标(时长,距离,卡路里,步数) diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index 73020a5d7..834460e0d 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@ -86,6 +86,7 @@ namespace OHOS void InitTraingDanceSlice(void); // 舞蹈训练 void InitTraingRestSlice(void); // 休闲训练 void InitTraingBallSlice(void); // 球类训练 + void InitTraingAquaticSlice(void); // 水上训练 void InitTraingRecordSlice(void); // 训练记录 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index bbbcc3a56..a11d19074 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -205,6 +205,8 @@ #include "traing/training_list_rest/include/TraingRestView.h" #include "traing/training_list_ball/include/TraingBallPresenter.h" #include "traing/training_list_ball/include/TraingBallView.h" +#include "traing/training_list_aquatic/include/TraingAquaticPresenter.h" +#include "traing/training_list_aquatic/include/TraingAquaticView.h" /* ---------------------------------- 主界面卡片 --------------------------------- */ #include "traing/training_card/include/TraingCardPresenter.h" #include "traing/training_card/include/TraingCardView.h" @@ -307,6 +309,7 @@ namespace OHOS {VIEW_TRAININGDANCE, &NativeLauncher::InitTraingDanceSlice}, // 舞蹈训练 {VIEW_TRAININGREST, &NativeLauncher::InitTraingRestSlice}, // 休闲训练 {VIEW_TRAININGBALL, &NativeLauncher::InitTraingBallSlice}, // 球类训练 + {VIEW_TRAININGAQUATIC, &NativeLauncher::InitTraingAquaticSlice}, // 水上训练 /* -------------------------------------------------------------------------- */ #ifdef SUPPORT_ALIPAY_SEC @@ -1029,6 +1032,11 @@ namespace OHOS SliceProxy *TraingBallview = new AbilitySliceProxy; NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGBALL, TraingBallview); } + void NativeLauncher::InitTraingAquaticSlice(void) + { + SliceProxy *TraingAquaticview = new AbilitySliceProxy; + NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGAQUATIC, TraingAquaticview); + } /* -------------------------------------------------------------------------- */ // 省电模式 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp index bfcf6bf37..a4bdc234b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp @@ -1,4 +1,5 @@ + #include "AppViewIDs.h" #include "components/ui_label_ext.h" #include"language/font/ui_resource_string.h" @@ -75,7 +76,7 @@ namespace OHOS } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT); + NativeAbility::GetInstance().ChangeSlice(preSlice); } } UNUSED(view); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAdapter.h new file mode 100644 index 000000000..2d88cbc31 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAdapter.h @@ -0,0 +1,59 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-29 17:36:30 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 17:47:13 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticAapter.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#ifndef TraingAquatic_ADAPTER_H +#define TraingAquatic_ADAPTER_H +#include +#include +#include "components/ui_list.h" +#include "components/abstract_adapter.h" +#include "components/ui_label.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "components/ui_checkbox.h" +#include "AppViewIDs.h" +#include "components/ui_label_ext.h" + + +// 列表的适配器 +namespace OHOS +{ + + typedef struct + { + AppViewId id; + UIResourceTextId labelid; // 标签 + } TraingAquaticItem; + + class TraingAquaticAdapter : public AbstractAdapter + { + public: + explicit TraingAquaticAdapter(); + virtual ~TraingAquaticAdapter(); + + void SetData(std::list &data); + + virtual uint16_t GetCount(void) override; + + virtual UIView *GetView(UIView *inView, int16_t index) override; + + virtual void AddItem(const TraingAquaticItem &item); + + void SetItemClickListener(UIView::OnClickListener *itemclicklistener) + { + itemClickListener = itemclicklistener; + } + + private: + std::list listData; + UIView::OnClickListener *itemClickListener{nullptr}; + }; +} + +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticItemView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticItemView.h new file mode 100644 index 000000000..3305f7fa3 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticItemView.h @@ -0,0 +1,39 @@ + +#ifndef TraingAquatic_ITEM_VIEW_H +#define TraingAquatic_ITEM_VIEW_H + +#include "components/ui_label.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "components/ui_view_group.h" +#include "components/ui_checkbox.h" +#include "components/ui_image_view.h" +#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h" +#include "components/ui_label_button.h" +#include "AppViewIDs.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "ohos_types.h" + +namespace OHOS +{ + class TraingAquaticItemView : public UIViewGroup + { + public: + explicit TraingAquaticItemView(); + virtual ~TraingAquaticItemView(); + virtual void SetItemInfo(const TraingAquaticItem itemInfo); + virtual void SetUpChild(); + AppViewId GetTraingAquaticIndex(); + UIResourceTextId GetTraingAquaticId(); + + private: + TraingAquaticItemView(const TraingAquaticItemView &); + UIImageView sbackground; // 背景 + UIImageView sicon; // 箭头 + UILabelExt sLabel; // 标签 + TraingAquaticItem sItemInfo = {VIEW_INVALID, STR_EXERCISE_GENERAL}; + }; + +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h new file mode 100644 index 000000000..168e3cfa9 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h @@ -0,0 +1,47 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-29 15:18:34 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 18:03:00 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticModel.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#ifndef TraingAquatic_MODEL_H +#define TraingAquatic_MODEL_H + +#include +#include +#include "AppViewIDs.h" +#include "components/ui_label_ext.h" +#include"language/font/ui_resource_string.h" +#include "components/ui_label_ext.h" +#include"language/font/ui_resource_string.h" +#include "UiConfig.h" +#include "TraingAquaticPresenter.h" +#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h" + +namespace OHOS +{ + class TraingAquaticModel + { + public: + static TraingAquaticModel &GetInstance(void); + void InitTraingAquaticListItem(); + const TraingAquaticItem *GetTraingAquaticlistItems() const; + uint8_t GetTraingAquaticListNum() const; + // const std::map &GetTraingAquaticIdToViewId() const; + + private: + TraingAquaticModel(); + TraingAquaticModel(const TraingAquaticModel &); + TraingAquaticModel &operator=(const TraingAquaticModel &); + virtual ~TraingAquaticModel(); + static const uint16_t TraingAquaticListMaxNum = 15; + TraingAquaticItem TraingAquatics[TraingAquaticListMaxNum] = {VIEW_INVALID, STR_EXERCISE_GENERAL}; + // std::map TraingAquaticIdToViewId; + bool btConnectStatus{false}; + }; +} + +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h new file mode 100644 index 000000000..94927066e --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticPresenter.h @@ -0,0 +1,45 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-19 17:37:18 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 15:55:10 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingAquaticPresenter.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#ifndef _TraingAquatic_PRESENTER_H +#define _TraingAquatic_PRESENTER_H + +#include "Presenter.h" +#include "TraingAquaticView.h" + +namespace OHOS +{ + class TraingAquaticView; + class TraingAquaticModel; + class TraingAquaticPresenter : public Presenter, + public UIView::OnClickListener, + public UIView::OnDragListener + { + public: + TraingAquaticPresenter(); + virtual ~TraingAquaticPresenter(); + + void OnStart() override; + void OnPause() override; + void OnResume() override; + void OnStop() override; + + static TraingAquaticPresenter *GetInstance(); + + private: + // 因为继承了OnClickener,所以有OnClick属性,至于参数,原函数也这样直接继承; + bool OnClick(UIView &view, const ClickEvent &event) override; + bool OnDrag(UIView &view, const DragEvent &event) override; + bool OnDragEnd(UIView &view, const DragEvent &event) override; + + TraingAquaticModel *p_TraingAquaticModel{nullptr}; + }; +} // namespace OHOS + +#endif // SLEEPDETAIL_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h new file mode 100644 index 000000000..91e46c067 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h @@ -0,0 +1,61 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-19 17:37:18 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-27 11:15:59 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingAquaticView.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#ifndef TraingAquatic_VIEW_H +#define TraingAquatic_VIEW_H + +#include "BaseView.h" +#include "View.h" +#include "components/ui_view_group.h" +#include "components/ui_scroll_view.h" +#include "components/ui_list.h" +#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h" +#include "traing/training_list_aquatic/include/TraingAquaticModel.h" +#include "components/ui_label_button_ext.h" +#include "components/ui_label_ext.h" +#include"language/font/ui_resource_string.h" + +namespace OHOS +{ + class TraingAquaticPresenter; + class TraingAquaticModel; + class TraingAquaticView : public View, public UIViewGroup + { + + public: + TraingAquaticView(); + virtual ~TraingAquaticView(); + static TraingAquaticView *GetInstance(void); + + void OnStart() override; + void OnSetUpView() override; + void OnTearDownView() override; + void OnStop() override; + + UIList *GetList(); + void AddToTraingAquaticList(const TraingAquaticItem &item); + + private: + void InitView(void); + void DeInitView(void); + void PreLoad(void); + + private: + UIScrollView *scrollView = nullptr; + UILabelExt *title{nullptr}; + TraingAquaticAdapter *p_TraingAquaticListAdapter{nullptr}; + UIList *TraingAquaticList = nullptr; + UIView::OnDragListener *draglistener{nullptr}; + + TraingAquaticPresenter *g_TraingAquaticPresenter{nullptr}; + TraingAquaticModel *g_TraingAquaticModel{nullptr}; + bool viewInitStatus{false}; + }; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticPresenter.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/include/TraingListAquaticView.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp new file mode 100644 index 000000000..2970c180b --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticAdapter.cpp @@ -0,0 +1,87 @@ +#include "traing/training_list_aquatic/include/TraingAquaticAdapter.h" +#include "traing/training_list_aquatic/include/TraingAquaticModel.h" +#include "traing/training_list_aquatic/include/TraingAquaticItemView.h" + +#include "wearable_log.h" + +namespace OHOS +{ + TraingAquaticAdapter::TraingAquaticAdapter() {} + + TraingAquaticAdapter::~TraingAquaticAdapter() + { + listData.clear(); + } + + uint16_t TraingAquaticAdapter::GetCount(void) + { + return listData.size(); + } + + void TraingAquaticAdapter::SetData(std::list &data) + { + if (!listData.empty()) + { + listData.clear(); + } + std::list::iterator it; + for (it = data.begin(); it != data.end(); it++) + { + listData.push_back(*it); + } + } + + /// @brief 为列表的每一项创建一个视图 + /// @param inView 一个指向已存在的视图对象的指 + /// @param index 要创建的视图在列表中的索引l。 + /// @return 返回该视图对象 + UIView *TraingAquaticAdapter::GetView(UIView *inView, int16_t index) + { + + // 1.先检查列表数据是否为空,若为空则返回空指针 + if (listData.empty()) + { + return nullptr; + } + // 2.接着检查索引是否小于0,若小于0则返回空指针 + if (index < 0) + { + return nullptr; + } + // 3.检查是否超出列表数据大小,若超出则返回空指针 + size_t uindex = index; + if (uindex >= listData.size()) + { + return nullptr; + } + // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量 + std::list::iterator it = listData.begin(); + for (int i = 0; i < index; i++) + { + it++; + } + TraingAquaticItem itemData = *it; + TraingAquaticItemView *item = nullptr; + /* + 5.根据传入的inView参数是否已经存在一个视图对象, + 若为空则创建一个新的MessageItemView对象, + 否则将inView转换成MessageItemView类型的指针 + */ + if (inView == nullptr) + { + item = new TraingAquaticItemView(); + } + else + { + item = static_cast(inView); + } + item->SetItemInfo(itemData); + item->SetOnClickListener(itemClickListener); + return item; + } + + void TraingAquaticAdapter::AddItem(const TraingAquaticItem &item) + { + listData.push_back(item); + } +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp new file mode 100644 index 000000000..ec09622c8 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItemView.cpp @@ -0,0 +1,73 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-29 17:42:13 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 17:52:02 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticItem.cpp + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + + +#include "traing/training_list_aquatic/include/TraingAquaticItemView.h" +#include "traing/include/TraingModel.h" +#include "traing/Training_UiConfig.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "UiConfig.h" +namespace OHOS +{ + + TraingAquaticItemView::TraingAquaticItemView() + { + SetPosition(0, 0, 380, 120); // 每一个itemview宽高要配置好,因为加到list都是以这个视图为基准 + SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); + SetStyle(STYLE_BACKGROUND_OPA, 255); + SetTouchable(true); + SetUpChild(); + Add(&sbackground); + Add(&sicon); + Add(&sLabel); + } + + TraingAquaticItemView::~TraingAquaticItemView() + { + Remove(&sbackground); + Remove(&sicon); + Remove(&sLabel); + } + + /// @brief 设置item的信息 + /// @param itemInfo + void TraingAquaticItemView::SetItemInfo(const TraingAquaticItem itemInfo) + { + sItemInfo = itemInfo; + sLabel.SetTextId(itemInfo.labelid); + } + + /// @brief 设置每一个itemview上的组件 + void TraingAquaticItemView::SetUpChild() + { + sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE); + + sicon.SetPosition(330, 40); + sicon.SetSrc(ICON_IMAGE); + sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE); + + sLabel.SetPosition(50, 10, 300, 80); + sLabel.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); + sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + sLabel.SetRollSpeed(0); + sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + } + + /// @brief 获取list的中每个组件的在list的下标 + /// @return 返回下标 + AppViewId TraingAquaticItemView::GetTraingAquaticIndex() + { + return sItemInfo.id; + } + UIResourceTextId TraingAquaticItemView::GetTraingAquaticId() + { + return sItemInfo.labelid; + } +} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp new file mode 100644 index 000000000..d47b9e9a1 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp @@ -0,0 +1,70 @@ + +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-29 15:51:45 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 17:56:44 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticModel.cpp + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#include "traing/training_list_aquatic/include/TraingAquaticModel.h" +#include "common/image_cache_manager.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "UiConfig.h" +#include "ui_resource_image.h" +#include "AppViewIDs.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +namespace OHOS +{ + + TraingAquaticModel::TraingAquaticModel() {} + + TraingAquaticModel::~TraingAquaticModel() {} + + TraingAquaticModel &TraingAquaticModel::GetInstance() + { + static TraingAquaticModel instance; + return instance; + } + + void TraingAquaticModel::InitTraingAquaticListItem() + { + TraingAquaticItem defaultItems[] = { + {VIEW_TRAININGNOMAL, STR_WATER_ACTIVITIES}, + {VIEW_TRAININGNOMAL, STR_WATER_SAILING}, + {VIEW_TRAININGNOMAL, STR_WATER_SURFING}, + {VIEW_TRAININGNOMAL, STR_WATER_WHITEWATERRAFTING}, + {VIEW_TRAININGNOMAL, STR_WATER_CANOEING}, + {VIEW_TRAININGNOMAL, STR_WATER_KAYAKING}, + {VIEW_TRAININGNOMAL, STR_WATER_ROWING}, + {VIEW_TRAININGNOMAL, STR_WATER_MOTORBOAT}, + {VIEW_TRAININGNOMAL, STR_WATER_SUP}, + {VIEW_TRAININGNOMAL, STR_WATER_SCUBADIVING}, + {VIEW_TRAININGNOMAL, STR_WATER_DIVING}, + {VIEW_TRAININGNOMAL, STR_WATER_KITESURFING}, + {VIEW_TRAININGNOMAL, STR_WATER_WAKEBOARDING}, + {VIEW_TRAININGNOMAL, STR_WATER_POLO}, + {VIEW_TRAININGNOMAL, STR_WATER_WINDSURFING}, + {VIEW_TRAININGNOMAL, STR_WATER_DRIFTING}, + {VIEW_TRAININGNOMAL, STR_WATER_FITNESS}, + {VIEW_TRAININGNOMAL, STR_WATER_SPORTS}}; + + for (int i = 0; i < TraingAquaticListMaxNum; i++) + { + TraingAquatics[i] = defaultItems[i]; + } + } + + const TraingAquaticItem *TraingAquaticModel::GetTraingAquaticlistItems() const + { + return TraingAquatics; + } + uint8_t TraingAquaticModel::GetTraingAquaticListNum() const + { + return TraingAquaticListMaxNum; + } + +} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp new file mode 100644 index 000000000..a92487ad6 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp @@ -0,0 +1,118 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-19 17:37:19 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-26 19:51:06 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticPresenter.cpp + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-19 17:37:19 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-26 14:23:32 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingAquaticPresenter.cpp + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ + +#include "AppViewIDs.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "NativeAbility.h" + +#include +#include +#include +#include "traing/training_list_aquatic/include/TraingAquaticItemView.h" +#include "traing/training_list_aquatic/include/TraingAquaticPresenter.h" +#include "traing/training_list_aquatic/include/TraingAquaticView.h" +#include "traing/include/TraingModel.h" +// #include "TraingAquaticView.h" + +namespace OHOS +{ + extern const char *Aquatic_buttons[]; + extern char *Aquatic_text[]; + + // 当前Presenter属性实例化的内存指针 + static TraingAquaticPresenter *g_pTraingAquaticPresenter = nullptr; + + TraingAquaticPresenter::TraingAquaticPresenter() + { + p_TraingAquaticModel = &TraingAquaticModel::GetInstance(); + g_pTraingAquaticPresenter = this; + } + + TraingAquaticPresenter::~TraingAquaticPresenter() + { + + g_pTraingAquaticPresenter = nullptr; + } + + TraingAquaticPresenter *TraingAquaticPresenter::GetInstance() + { + + return g_pTraingAquaticPresenter; + } + + void TraingAquaticPresenter::OnStart() + { + p_TraingAquaticModel->InitTraingAquaticListItem(); + Presenter::OnStart(); + } + + void TraingAquaticPresenter::OnPause(void) + { + Presenter::OnPause(); + } + + void TraingAquaticPresenter::OnResume(void) + { + if (view_ == nullptr) + { + return; + } + const TraingAquaticItem *itemInfo = p_TraingAquaticModel->GetTraingAquaticlistItems(); + for (int i = 0; i < p_TraingAquaticModel->GetTraingAquaticListNum(); i++) + { + view_->AddToTraingAquaticList(itemInfo[i]); + } + Presenter::OnResume(); + } + + void TraingAquaticPresenter::OnStop(void) + { + + Presenter::OnStop(); + } + bool TraingAquaticPresenter::OnDrag(UIView &view, const DragEvent &event) + { + return true; + } + bool TraingAquaticPresenter::OnDragEnd(UIView &view, const DragEvent &event) + { + if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) + { + NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE); + } + UNUSED(view); + return true; + } + + bool TraingAquaticPresenter::OnClick(UIView &view, const ClickEvent &event) + { + UNUSED(event); + TraingAquaticItemView *itemView = static_cast(&view); + AppViewId viewId = itemView->GetTraingAquaticIndex(); + UIResourceTextId sportid = itemView->GetTraingAquaticId(); + TraingModel::GetInstance()->SetSportEvent(sportid); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnClick viewid = %d\n", viewId); + if (viewId < VIEW_MAX_INTER_APP) + { + NativeAbility::GetInstance().ChangeSlice(viewId); + return true; + } + return false; + } + +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp new file mode 100644 index 000000000..8d2470969 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp @@ -0,0 +1,154 @@ +#include "traing/training_list_aquatic/include/TraingAquaticView.h" +#include "traing/training_list_aquatic/include/TraingAquaticPresenter.h" +#include "traing/include/TraingModel.h" +#include "traing/Training_UiConfig.h" + +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "UiConfig.h" +#include "wearable_log.h" + +namespace OHOS +{ + static constexpr uint8_t NUM_2 = 2; + static TraingAquaticView *g_pTraingAquaticView{nullptr}; + /* --------------------------------- List --------------------------------- */ + static constexpr int16_t Aquatic_LIST_POSITION_X = 43; + static constexpr int16_t Aquatic_LIST_POSITION_Y = 120; + static constexpr int16_t Aquatic_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。 + static constexpr int16 MAX_SCR_DIS = 1000; + static constexpr int16 LIST_POS = 20; + static constexpr int16 SNUM_2 = 2; + + TraingAquaticView::TraingAquaticView() + { + g_pTraingAquaticView = this; + } + + TraingAquaticView::~TraingAquaticView() + { + if (viewInitStatus == true) + { + DeInitView(); + } + g_pTraingAquaticView = nullptr; + } + + TraingAquaticView *TraingAquaticView::GetInstance() + { + return g_pTraingAquaticView; + } + /// @param item + void TraingAquaticView::AddToTraingAquaticList(const TraingAquaticItem &item) + { + p_TraingAquaticListAdapter->AddItem(item); + } + void TraingAquaticView::InitView() + { + if (scrollView == nullptr) + { + scrollView = new UIScrollView(); + } + scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + scrollView->SetScrollBlankSize(20); + // scrollView->SetReboundSize(100); + scrollView->SetTouchable(true); + scrollView->SetDraggable(true); + scrollView->SetDirection(1); + draglistener = static_cast(TraingAquaticPresenter::GetInstance()); + scrollView->SetOnDragListener(draglistener); + + /* -------------------------------------------------------------------------- */ + // 初始化Lable + TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30); + scrollView->Add(title); + // UIList 的适配器 + p_TraingAquaticListAdapter = new TraingAquaticAdapter(); + p_TraingAquaticListAdapter->SetItemClickListener(presenter_); + if (TraingAquaticList == nullptr) + { + TraingAquaticList = new UIList(); + } + TraingAquaticList->SetPosition(Aquatic_LIST_POSITION_X, Aquatic_LIST_POSITION_Y); + TraingAquaticList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + // TraingAquaticList->SetScrollBlankSize(Aquatic_SCROLLBLANKSIZE); + TraingAquaticList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position + TraingAquaticList->SetDraggable(true); + TraingAquaticList->SetThrowDrag(false); + TraingAquaticList->EnableAutoAlign(true); + TraingAquaticList->SetElastic(true); // 设置回弹效果 + TraingAquaticList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingAquaticList->SetYScrollBarVisible(true); // 设置滑动滚动条 + + // 增加表冠控制 + TraingAquaticList->SetRotateFactor(2); + TraingAquaticList->RequestFocus(); + } + UIList *TraingAquaticView::GetList() + { + return TraingAquaticList; + } + void TraingAquaticView::DeInitView() + { + // scrollView-> RemoveAll(); + RemoveAll(); + delete title; + title = nullptr; + + delete TraingAquaticList; + TraingAquaticList = nullptr; + + delete scrollView; + scrollView = nullptr; + + delete draglistener; + draglistener = nullptr; + } + + void TraingAquaticView::PreLoad(void) + { + if (!viewInitStatus) + { + InitView(); + viewInitStatus = true; + } + } + + /// @brief 页面启动时需要执行的代码逻辑 + void TraingAquaticView::OnStart() + { + View::OnStart(); + BaseView::RootView(Color::Black().full); + PreLoad(); + } + + /// @brief 创建页面的视图。 + void TraingAquaticView::OnSetUpView() + { + View::OnSetUpView(); + scrollView->Add(title); + scrollView->Add(TraingAquaticList); + scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); + RootView::GetInstance()->Add(scrollView); + TraingAquaticList->SetAdapter(p_TraingAquaticListAdapter); + // TraingAquaticList->RefreshList(); // 刷新列表 + Draw(); + } + + /// @brief 销毁页面的视图。 + void TraingAquaticView::OnTearDownView() + { + View::OnTearDownView(); + return; + } + + /// @brief 页面结束时需要执行的销毁逻辑。 + void TraingAquaticView::OnStop() + { + View::OnStop(); + RootView::GetInstance()->RemoveAll(); + RootView::GetInstance()->ClearFocus(); + return; + } +} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticPresenter.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingListAquaticView.cpp deleted file mode 100644 index e69de29bb..000000000 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallAdapter.h index ed7cbacd4..ab23cff3c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallAdapter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallAdapter.h @@ -1,11 +1,3 @@ -/*** - * @Author: Caisking 3449750381@qq.com - * @Date: 2024-03-26 17:04:41 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-03-29 11:16:42 - * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_Ball/include/TraingBallAdapter.h - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - */ #ifndef TraingBall_ADAPTER_H #define TraingBall_ADAPTER_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallItemView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallItemView.h index 629049296..28ca204c7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallItemView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallItemView.h @@ -1,19 +1,3 @@ -/*** - * @Author: Caisking 3449750381@qq.com - * @Date: 2024-03-26 17:05:18 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-03-29 14:30:24 - * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_Ball/include/TraingBallItemView.h - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - */ -/*** - * @Author: Caisking 3449750381@qq.com - * @Date: 2024-03-26 17:05:18 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-03-26 18:24:58 - * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_Ball/include/TraingBallItemView.h - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - */ #ifndef TraingBall_ITEM_VIEW_H #define TraingBall_ITEM_VIEW_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallPresenter.h index 417e7b4f5..c9716be45 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/include/TraingBallPresenter.h @@ -2,7 +2,7 @@ * @Author: Caisking 3449750381@qq.com * @Date: 2024-03-19 17:37:18 * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-03-29 15:55:10 + * @LastEditTime: 2024-03-29 17:49:35 * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/include/TraingBallPresenter.h * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp index 2d765cf07..5c64a9a04 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp @@ -1,19 +1,4 @@ -/*** - * @Author: Caisking 3449750381@qq.com - * @Date: 2024-03-29 15:19:06 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-03-29 15:55:49 - * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - */ -/*** - * @Author: Caisking 3449750381@qq.com - * @Date: 2024-03-26 17:05:30 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-03-29 11:18:05 - * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallItemView.cpp - * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A - */ + #include "traing/training_list_ball/include/TraingBallItemView.h" #include "traing/include/TraingModel.h" diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp index 43a8f333b..7b651bf38 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp @@ -1,3 +1,11 @@ +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-29 15:51:45 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 17:56:44 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallModel.cpp + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ #include "traing/training_list_ball/include/TraingBallModel.h" diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp index 67053bd1b..0fc5b3b65 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp @@ -51,14 +51,14 @@ namespace OHOS } scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - // scrollView->SetScrollBlankSize(20); + scrollView->SetScrollBlankSize(20); // scrollView->SetReboundSize(100); scrollView->SetTouchable(true); scrollView->SetDraggable(true); scrollView->SetDirection(1); draglistener = static_cast(TraingBallPresenter::GetInstance()); scrollView->SetOnDragListener(draglistener); - scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条 + /* -------------------------------------------------------------------------- */ // 初始化Lable TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -72,13 +72,14 @@ namespace OHOS } TraingBallList->SetPosition(Ball_LIST_POSITION_X, Ball_LIST_POSITION_Y); TraingBallList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); - TraingBallList->SetScrollBlankSize(Ball_SCROLLBLANKSIZE); + // TraingBallList->SetScrollBlankSize(Ball_SCROLLBLANKSIZE); TraingBallList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position TraingBallList->SetDraggable(true); TraingBallList->SetThrowDrag(false); TraingBallList->EnableAutoAlign(true); TraingBallList->SetElastic(true); // 设置回弹效果 TraingBallList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingBallList->SetYScrollBarVisible(true); // 设置滑动滚动条 // 增加表冠控制 TraingBallList->SetRotateFactor(2); @@ -126,7 +127,7 @@ namespace OHOS void TraingBallView::OnSetUpView() { View::OnSetUpView(); - // scrollView->Add(title); + scrollView->Add(title); scrollView->Add(TraingBallList); scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); RootView::GetInstance()->Add(scrollView); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp index 65e551349..1acc2b95f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp @@ -51,14 +51,14 @@ namespace OHOS } scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - // scrollView->SetScrollBlankSize(52); + scrollView->SetScrollBlankSize(52); // scrollView->SetReboundSize(100); scrollView->SetTouchable(true); scrollView->SetDraggable(true); scrollView->SetDirection(1); draglistener = static_cast(TraingDancePresenter::GetInstance()); scrollView->SetOnDragListener(draglistener); - scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条 + /* -------------------------------------------------------------------------- */ // 初始化Lable TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "舞蹈运动", DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -79,6 +79,7 @@ namespace OHOS TraingDanceList->EnableAutoAlign(true); TraingDanceList->SetElastic(true); // 设置回弹效果 TraingDanceList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingDanceList->SetYScrollBarVisible(true); // 设置滑动滚动条 // 增加表冠控制 scrollView->SetRotateFactor(2); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h index 2d4f902b9..63bed0129 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h @@ -1,4 +1,12 @@ -/*** +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2024-03-26 09:40:03 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-03-29 17:02:30 + * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessPresenter.h + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +/*** * @Author: Caisking 3449750381@qq.com * @Date: 2024-03-26 09:44:11 * @LastEditors: Caisking 3449750381@qq.com @@ -7,7 +15,6 @@ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ - #ifndef _TraingFitness_PRESENTER_H #define _TraingFitness_PRESENTER_H @@ -19,8 +26,9 @@ namespace OHOS class TraingFitnessView; class TraingFitnessModel; class TraingFitnessPresenter : public Presenter, - public UIView::OnClickListener, - public UIView::OnDragListener + public UIView::OnClickListener, + public UIView::OnDragListener, + public UIView::OnTouchListener { public: TraingFitnessPresenter(); @@ -38,6 +46,7 @@ namespace OHOS bool OnClick(UIView &view, const ClickEvent &event) override; bool OnDrag(UIView &view, const DragEvent &event) override; bool OnDragEnd(UIView &view, const DragEvent &event) override; + bool OnPress(UIView &view, const PressEvent &event) override; TraingFitnessModel *p_TraingFitnessModel{nullptr}; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h index 3c54bdaef..8231bd228 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/include/TraingFitnessView.h @@ -1,3 +1,11 @@ +/*** + * @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 @@ -31,6 +39,8 @@ namespace OHOS void OnStop() override; UIList *GetList(); + UIScrollView *GetScrollView(); + void AddToTraingFitnessList(const TraingFitnessItem &item); private: diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp index 3cf31fe1e..70ecae192 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessPresenter.cpp @@ -110,4 +110,18 @@ namespace OHOS return false; } + bool TraingFitnessPresenter::OnPress(UIView &view, const PressEvent &event) + { + if (&view == TraingFitnessView::GetInstance()->GetScrollView()) + { + TraingFitnessView::GetInstance()->GetScrollView()->RequestFocus(); + return true; + } + else if (&view == TraingFitnessView::GetInstance()->GetList()) + { + TraingFitnessView::GetInstance()->GetList()->RequestFocus(); + return true; + } + return false; + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp index 6301df823..87a363984 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp @@ -49,14 +49,14 @@ namespace OHOS } scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - // scrollView->SetScrollBlankSize(52); + scrollView->SetScrollBlankSize(52); // scrollView->SetReboundSize(100); scrollView->SetTouchable(true); scrollView->SetDraggable(true); scrollView->SetDirection(1); draglistener = static_cast(TraingFitnessPresenter::GetInstance()); scrollView->SetOnDragListener(draglistener); - scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条 + /* -------------------------------------------------------------------------- */ // 初始化Lable TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "健身运动", DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -71,13 +71,14 @@ namespace OHOS TraingFitnessList->SetPosition(Fitness_LIST_POSITION_X, Fitness_LIST_POSITION_Y); TraingFitnessList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); TraingFitnessList->SetScrollBlankSize(Fitness_SCROLLBLANKSIZE); - // TraingFitnessList->SetReboundSize(100); + TraingFitnessList->SetReboundSize(50); TraingFitnessList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position TraingFitnessList->SetDraggable(true); TraingFitnessList->SetThrowDrag(false); TraingFitnessList->EnableAutoAlign(true); TraingFitnessList->SetElastic(true); // 设置回弹效果 TraingFitnessList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingFitnessList->SetYScrollBarVisible(true); // 设置滑动滚动条 // 增加表冠控制 TraingFitnessList->SetRotateFactor(2); @@ -87,6 +88,10 @@ namespace OHOS { return TraingFitnessList; } + UIScrollView *TraingFitnessView::GetScrollView() + { + return scrollView; + } void TraingFitnessView::DeInitView() { // scrollView-> RemoveAll(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIceView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIceView.cpp index b7fded66b..53a815a0d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIceView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIceView.cpp @@ -59,14 +59,14 @@ namespace OHOS } scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - // scrollView->SetScrollBlankSize(52); + scrollView->SetScrollBlankSize(52); // scrollView->SetReboundSize(100); scrollView->SetTouchable(true); scrollView->SetDraggable(true); scrollView->SetDirection(1); draglistener = static_cast(TraingIcePresenter::GetInstance()); scrollView->SetOnDragListener(draglistener); - scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条 + /* -------------------------------------------------------------------------- */ // 初始化Lable TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "冰上运动", DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -87,6 +87,7 @@ namespace OHOS TraingIceList->EnableAutoAlign(true); TraingIceList->SetElastic(true); // 设置回弹效果 TraingIceList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingIceList->SetYScrollBarVisible(true); // 设置滑动滚动条 // 增加表冠控制 scrollView->SetRotateFactor(2); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitView.cpp index d21441d47..e76e13f85 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitView.cpp @@ -51,14 +51,14 @@ namespace OHOS } scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - // scrollView->SetScrollBlankSize(52); + scrollView->SetScrollBlankSize(52); // scrollView->SetReboundSize(100); scrollView->SetTouchable(true); scrollView->SetDraggable(true); scrollView->SetDirection(1); draglistener = static_cast(TraingLimitPresenter::GetInstance()); scrollView->SetOnDragListener(draglistener); - scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条 + /* -------------------------------------------------------------------------- */ // 初始化Lable TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -79,6 +79,7 @@ namespace OHOS TraingLimitList->EnableAutoAlign(true); TraingLimitList->SetElastic(true); // 设置回弹效果 TraingLimitList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingLimitList->SetYScrollBarVisible(true); // 设置滑动滚动条 // 增加表冠控制 TraingLimitList->SetRotateFactor(2); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp index 54d329485..c12be8fa8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp @@ -117,7 +117,7 @@ namespace OHOS } if (strcmp(view.GetViewId(), BUTTON_SWIMMING) == 0) { - NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT); + NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGAQUATIC); } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp index 5e9a62648..78c646fe3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp @@ -4,7 +4,7 @@ #include "traing/Training_UiConfig.h" #include "components/ui_label_ext.h" -#include"language/font/ui_resource_string.h" +#include "language/font/ui_resource_string.h" #include "UiConfig.h" #include "wearable_log.h" @@ -51,14 +51,14 @@ namespace OHOS } scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - //scrollView->SetScrollBlankSize(52); + // scrollView->SetScrollBlankSize(52); // scrollView->SetReboundSize(100); scrollView->SetTouchable(true); scrollView->SetDraggable(true); scrollView->SetDirection(1); draglistener = static_cast(TraingRestPresenter::GetInstance()); scrollView->SetOnDragListener(draglistener); - scrollView->SetYScrollBarVisible(true); // 设置滑动滚动条 + /* -------------------------------------------------------------------------- */ // 初始化Lable TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -79,6 +79,7 @@ namespace OHOS TraingRestList->EnableAutoAlign(true); TraingRestList->SetElastic(true); // 设置回弹效果 TraingRestList->SetMaxScrollDistance(MAX_SCR_DIS); + TraingRestList->SetYScrollBarVisible(true); // 设置滑动滚动条 // 增加表冠控制 TraingRestList->SetRotateFactor(2);