From: Caisking <3449750381@qq.com> Date: Thu, 18 Apr 2024 07:30:11 +0000 (+0800) Subject: 增加距离设置SubView,删除原Slice X-Git-Tag: release_V1.2.70_20241020_135402~1171^2~9 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=7f1ded97e849e39d7c68a7b09ff7ede6c317debf;p=mirrors%2FFD230.git 增加距离设置SubView,删除原Slice --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 05d926fac..a199cd30f 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -474,8 +474,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingNomalPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetPresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetDistView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetDistPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetSeptView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetSeptPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingEnddataView.cpp @@ -484,6 +482,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingWinPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TrainingSetCaluliView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TrainingSetTimeView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TrainingSetMileView.cpp #主界面训练卡片 ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/Training_CardView.cpp diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index 3fd8dccbe..66737cfa6 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@ -74,7 +74,6 @@ typedef enum : uint16_t VIEW_TRAINING, // 训练 VIEW_TRAININGNOMAL, // 正常训练开始界面(除骑行,健走,跑步外) VIEW_TRAININGSET, // 训练目标(时长,卡路里) - VIEW_TRAININGSETDIST, // 设置训练路程 VIEW_TRAININGSETSTEP, // 设置训练步数 VIEW_TRAININGCRAD, // 训练控制卡片 VIEW_TRAININGENDDATA, // 训练结束详细数据 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index 348dc09d2..eff8e92f7 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@ -67,8 +67,7 @@ namespace OHOS void InitTraingSlice(void); void InitTraingNomalSlice(void); void InitTraingSetSlice(void); - void InitTraingSetDistSlice(void); - void InitTraingSetStepSlice(void); + void InitTraingSetStepSlice(void); void InitTraingCardSlice(void); void InitTraingEnddataSlice(void); void InitTraingWinSlice(void); diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index 6850a891c..a216d7ee9 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -163,8 +163,6 @@ #include "traing/include/TraingNomalView.h" #include "traing/include/TraingSetPresenter.h" #include "traing/include/TraingSetView.h" -#include "traing/include/TraingSetDistPresenter.h" -#include "traing/include/TraingSetDistView.h" #include "traing/include/TraingSetSeptPresenter.h" #include "traing/include/TraingSetSeptView.h" #include "traing/include/TraingEnddataPresenter.h" @@ -282,7 +280,6 @@ namespace OHOS {VIEW_TRAINING, &NativeLauncher::InitTraingSlice}, // 训练 {VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice}, // 正常训练初始界面 {VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice}, // 训练目标设置界面 - {VIEW_TRAININGSETDIST, &NativeLauncher::InitTraingSetDistSlice}, // 设置目标距离 {VIEW_TRAININGSETSTEP, &NativeLauncher::InitTraingSetStepSlice}, // 设置目标步数 {VIEW_TRAININGCRAD, &NativeLauncher::InitTraingCardSlice}, // 训练卡片 {VIEW_TRAININGENDDATA, &NativeLauncher::InitTraingEnddataSlice}, // 训练结束详细数据 @@ -863,11 +860,6 @@ namespace OHOS SliceProxy *traingsetview = new AbilitySliceProxy; NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSET, traingsetview); } - void NativeLauncher::InitTraingSetDistSlice(void) - { - SliceProxy *traingsetdistview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSETDIST, traingsetdistview); - } void NativeLauncher::InitTraingSetStepSlice(void) { SliceProxy *traingsetstepview = new AbilitySliceProxy; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetDistPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetDistPresenter.h deleted file mode 100644 index 2d583fc8e..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetDistPresenter.h +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef _TraingSetDist_PRESENTER_H -#define _TraingSetDist_PRESENTER_H - -#include "Presenter.h" -#include "TraingSetDistView.h" - -namespace OHOS -{ - class TraingSetDistView; - - class TraingSetDistPresenter : public Presenter, - public UIView::OnClickListener, - public UIView::OnDragListener - { - public: - TraingSetDistPresenter(); - virtual ~TraingSetDistPresenter(); - - void OnStart() override; - void OnPause() override; - void OnResume() override; - void OnStop() override; - - static TraingSetDistPresenter *GetInstance(); - - private: - // 因为继承了OnClickListener,所以有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; - }; -} // namespace OHOS - -#endif // SLEEPDETAIL_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetDistView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetDistView.h deleted file mode 100644 index b6bb000a3..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetDistView.h +++ /dev/null @@ -1,64 +0,0 @@ - -#ifndef _TraingSetDist_VIEW_H -#define _TraingSetDist_VIEW_H - -#include "BaseView.h" -#include "View.h" -#include -#include "components/ui_view_group.h" -#include "components/ui_label.h" -#include "components/ui_label_ext.h" -#include "components/ui_image_view.h" -#include "components/ui_button.h" -#include "components/ui_image_animator.h" -#include "components/ui_label_button_ext.h" -#include "components/ui_chart.h" -#include "components/ui_list.h" -#include "components/icon_adapter.h" -#include "wearable_log.h" -#include "ohos_types.h" -#include "components/ui_card_page.h" -#include "traing/include/TraingModel.h" -#include "traing/Training_UiConfig.h" -#include "components/ui_picker.h" - -#include "TraingSetDistPresenter.h" -namespace OHOS -{ -#define BUTTONOK "button1" - - - class TraingSetDistPresenter; - class TraingSetDistView : public View - { - - public: - TraingSetDistView(); - virtual ~TraingSetDistView(); - static TraingSetDistView *GetInstance(void); - - void OnStart() override; - void OnSetUpView() override; - void OnTearDownView() override; - void OnStop() override; - void InitView(); - void DeInit(); - - void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId); - void InitList(); - void PreLoad(void); - - private: - UIView::OnDragListener *draglistener{nullptr}; - TraingSetDistView(TraingSetDistView &&) = delete; - TraingSetDistView &operator=(TraingSetDistView &&) = delete; - - UIViewGroup *container_ = nullptr; - UILabelExt *label1_ = nullptr; - UIButton *button1_ = nullptr; - UIPicker *uiPicker1_ = nullptr; - - bool viewiInitStatus{false}; - }; -} // namespace OHOS -#endif // TraingSetDist_PRESENTER_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h index ea52a7cb1..2a6173a7d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h @@ -24,6 +24,8 @@ #include "traing/include/TrainingSetCaluliView.h" #include "traing/include/TrainingSetTimeView.h" +#include "traing/include/TrainingSetMileView.h" + #include "TraingSetPresenter.h" namespace OHOS { @@ -35,6 +37,7 @@ namespace OHOS class TraingSetPresenter; class TrainingSetCaluliView; class TrainingSetTimeView; + class TrainingSetMileView; class TraingSetView : public View { @@ -68,6 +71,7 @@ namespace OHOS UIScrollView *SetTagScrollView[4]{nullptr}; TrainingSetCaluliView *setcalories{nullptr}; TrainingSetTimeView *settime{nullptr}; + TrainingSetMileView *setmile{nullptr}; UILabelExt *labeltitle = nullptr; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h index e69de29bb..907bbb7c6 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h @@ -0,0 +1,56 @@ +/*** + * @Date: 2024-04-18 11:59:51 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 15:09:42 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h + */ +/*** + * @Date: 2024-04-18 10:57:45 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 11:00:03 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h + */ +#ifndef _Training_SetMile_VIEW_H +#define _Training_SetMile_VIEW_H + +#include "BaseView.h" +#include "View.h" +#include "components/ui_label_ext.h" +#include "components/ui_button.h" +#include "components/ui_label_button_ext.h" +#include "wearable_log.h" +#include "traing/include/TraingModel.h" +#include "traing/Training_UiConfig.h" +#include "components/ui_picker.h" +#include "components/ui_scroll_view.h" + +#include "traing/include/TraingSetPresenter.h" +#include "traing/include/TrainingSetMileView.h" + +namespace OHOS +{ +#define BUTTONMileOK "buttonMile" + + class TraingSetPresenter; + class TrainingSetMileView : public View + { + + public: + TrainingSetMileView(); + virtual ~TrainingSetMileView(); + static TrainingSetMileView *GetInstance(void); + UIScrollView *SetMileViewInit(); + + void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId); + + private: + UIView::OnDragListener *draglistener{nullptr}; + + UILabelExt *labeltitle_ = nullptr; + UILabelButtonExt*buttonok_ = nullptr; + UIPicker *calPicker_ = nullptr; + + UIScrollView *SetMileScrollView; + }; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistPresenter.cpp deleted file mode 100644 index 665ca4466..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistPresenter.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/*** - * @Date: 2024-04-15 10:55:58 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-04-17 11:59:10 - * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistPresenter.cpp - */ -#include "AppViewIDs.h" -#include "components/ui_label_ext.h" -#include"language/font/ui_resource_string.h" -#include "NativeAbility.h" - -#include -#include -#include -#include "traing/include/TraingSetDistPresenter.h" -// #include "TraingSetDistView.h" - -namespace OHOS -{ - - // 当前Presenter属性实例化的内存指针 - static TraingSetDistPresenter *g_pTraingSetDistPresenter = nullptr; - - TraingSetDistPresenter::TraingSetDistPresenter() - { - - g_pTraingSetDistPresenter = this; - } - - TraingSetDistPresenter::~TraingSetDistPresenter() - { - - g_pTraingSetDistPresenter = nullptr; - } - - TraingSetDistPresenter *TraingSetDistPresenter::GetInstance() - { - - return g_pTraingSetDistPresenter; - } - - void TraingSetDistPresenter::OnStart() - { - - Presenter::OnStart(); - } - - void TraingSetDistPresenter::OnPause(void) - { - - Presenter::OnPause(); - } - - void TraingSetDistPresenter::OnResume(void) - { - - Presenter::OnResume(); - } - - void TraingSetDistPresenter::OnStop(void) - { - - Presenter::OnStop(); - } - - bool TraingSetDistPresenter::OnDrag(UIView &view, const DragEvent &event) - { - - // if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && - // (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY())))) - // { - // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGSET); - // } - UNUSED(view); - return true; - } - - bool TraingSetDistPresenter::OnClick(UIView &view, const ClickEvent &event) - { - // 根据控件id查找是哪个控件触发了点击回调 - if (strcmp(view.GetViewId(), BUTTONOK) == 0) - { - NativeAbility::GetInstance().Back(); - } - return true; - } -} diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistView.cpp deleted file mode 100644 index 35c0e9d2f..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetDistView.cpp +++ /dev/null @@ -1,219 +0,0 @@ - -#include "traing/include/TraingSetDistView.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 -#include "components/ui_button.h" -#include "common/screen.h" -#include -#include -#include -#include "traing/include/TraingModel.h" -#include "traing/Training_UiConfig.h" - -namespace OHOS -{ - - /***************************************************************************************/ - // 动态生成包含指定公里区间内所有公里的字符串数组 - std::vector GenerateDistValues(int minDist, int maxDist, int interval) - { - std::vector values; - for (int i = minDist; i <= maxDist; i += interval) - { - values.push_back(std::to_string(i) + " 公里"); - } - return values; - } - /***************************************************************************************/ - static TraingSetDistView *g_pTraingSetDistView{nullptr}; - - TraingSetDistView::TraingSetDistView() - { - g_pTraingSetDistView = this; - } - - TraingSetDistView::~TraingSetDistView() - { - DeInit(); - g_pTraingSetDistView = nullptr; - } - - TraingSetDistView *TraingSetDistView::GetInstance() - { - - return g_pTraingSetDistView; - } - - /* - InitUIPicker: 初始化UIPicker组件 - @param picker: 指向UIPicker的指针 - @param x: UIPicker的左边位置 - @param y: UIPicker的顶部位置 - @param width: UIPicker的宽度 - @param height: UIPicker的高度 - @param viewId: UIPicker的视图 ID - @param values: 选项数组 - @param count: 选项数量 - @param backgroundFontSize: 普通文本大小 - @highlightFontSize: 高光文本大小 - */ - void TraingSetDistView::InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId) - { - // 文本大小 - constexpr uint8_t BACKGROUND_FONT = 40; - constexpr uint8_t HIGHTLIGHT_FONT = 60; - // 获取value数组 - int minDist = 1; - int maxDist = 20; - int interval = 1; - std::vector DistValues = GenerateDistValues(minDist, maxDist, interval); - - const char **values = new const char *[DistValues.size()]; - for (size_t i = 0; i < DistValues.size(); i++) - { - values[i] = DistValues[i].c_str(); - } - // 创建 UIPicker - if (picker == nullptr) - { - picker = new UIPicker(); - } - - // 设置 UIPicker 的位置和大小 - picker->SetPosition(x, y); - picker->Resize(width, height); - // 设置 UIPicker 的 ViewId - picker->SetViewId(viewId); - // 设置 UIPicker 的属性 - picker->SetItemHeight(70); - picker->SetLoopState(true); - picker->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff), Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff)); - picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT); // 设置普通文本大小 - picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT); // 设置高光文本大小 - picker->SetValues(values, DistValues.size()); - // 将 UIPicker 设置为显示 - picker->SetVisible(true); - } - - /* InitView:初始化界面*/ - void TraingSetDistView ::InitView() - { - if (container_ == nullptr) - { - container_ = new UIViewGroup(); - container_->SetPosition(0, 0, 466, 466); - container_->SetStyle(STYLE_BACKGROUND_OPA, 0); - } - // 初始化Lable - TraingModel::GetInstance()->InitLabel(label1_, 173, 52, 120, 35, "label1", "步数设定", DEFAULT_VECTOR_FONT_FILENAME, 30); - container_->Add(label1_); - - // 初始化UIPicker - InitUIPicker(uiPicker1_, 43, 106, 380, 240, "uiPicker1"); - container_->Add(uiPicker1_); - // 初始化Button - TraingModel::GetInstance()->InitButton(button1_, 0, 366, 466, 100, BUTTONOK); - // Set additional property - button1_->SetOnClickListener(static_cast(TraingSetDistPresenter::GetInstance())); - button1_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE); - container_->Add(button1_); - } - /* DeInit:删除组件 */ - void TraingSetDistView::DeInit() - { - container_->RemoveAll(); - // 删除Label - if (label1_ != nullptr) - { - container_->Remove(label1_); - delete label1_; - label1_ = nullptr; - } - // 删除Button - if (button1_ != nullptr) - { - container_->Remove(button1_); - delete button1_; - button1_ = nullptr; - } - - // 删除Image - - // 删除滚动选择器 - if (uiPicker1_ != nullptr) - { - container_->Remove(uiPicker1_); - delete uiPicker1_; - uiPicker1_ = nullptr; - } - - // 删除容器 - if (container_ != nullptr) - { - container_->RemoveAll(); // 移除容器中的所有组件 - delete container_; - container_ = nullptr; - } - } - - void TraingSetDistView::PreLoad(void) - { - if (!viewiInitStatus) - { - // printf("init TraingSetDistview\n"); - InitView(); - viewiInitStatus = true; - } - } - void TraingSetDistView::OnStart() - { - container_ = new UIViewGroup(); - if (container_ == nullptr) - { - return; - } - container_->SetPosition(0, 0); - container_->SetWidth(Screen::GetInstance().GetWidth()); - container_->SetHeight(Screen::GetInstance().GetHeight()); - - // 创建 draglistener 实例并设置为拖动监听器 - UIView::OnDragListener *draglistener = static_cast(TraingSetDistPresenter::GetInstance()); - if (draglistener == nullptr) - { - return; - } - container_->SetOnDragListener(draglistener); - - container_->SetTouchable(true); - container_->SetDraggable(true); - - PreLoad(); - RootView::GetInstance()->Add(container_); - } - - void TraingSetDistView::OnSetUpView() - { - - View::OnSetUpView(); - Draw(); - } - - void TraingSetDistView::OnTearDownView() - { - - View::OnTearDownView(); - return; - } - - void TraingSetDistView::OnStop() - { - View::OnStop(); - RootView::GetInstance()->RemoveAll(); - return; - } -} diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp index f6628cc24..ceb4b78e2 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp @@ -90,6 +90,10 @@ namespace OHOS { TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_CALORIES); } + if (strcmp(view.GetViewId(), BUTTONDISTANCE) == 0) + { + TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_DISTANCE); + } return true; } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp index 282b7fecd..9098c66b0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp @@ -226,11 +226,11 @@ namespace OHOS { if (SetTagScrollView[thisview] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::ChangeBandoffView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView::ChangeSetCaloriesView"); setcalories = new TrainingSetCaluliView(); if (setcalories == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView:: new scrollView[%d] fail", thisview); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView:: new scrollView[%d] fail", thisview); return false; } SetTagScrollView[thisview] = setcalories->SetCaluliViewInit(); @@ -242,11 +242,11 @@ namespace OHOS { if (SetTagScrollView[thisview] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::ChangeBandoffView"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView::ChangeSetDurationView"); settime = new TrainingSetTimeView(); if (settime == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView:: new scrollView[%d] fail", thisview); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView:: new scrollView[%d] fail", thisview); return false; } SetTagScrollView[thisview] = settime->SetTimeViewInit(); @@ -254,8 +254,25 @@ namespace OHOS } return true; } - bool TraingSetView::ChangeSetStepsView(int16_t thisview) {} - bool TraingSetView::ChangeSetDistanceView(int16_t thisview) {} + bool TraingSetView::ChangeSetDistanceView(int16_t thisview) + { + if (SetTagScrollView[thisview] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView::ChangeSetDistanceView"); + setmile = new TrainingSetMileView(); + if (setmile == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView:: new scrollView[%d] fail", thisview); + return false; + } + SetTagScrollView[thisview] = setmile->SetMileViewInit(); + RootView::GetInstance()->Add(SetTagScrollView[thisview]); + } + return true; + } + bool TraingSetView::ChangeSetStepsView(int16_t thisview) + { + } /* -------------------------------------------------------------------------- */ // 1.MainStopWatchViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。 struct BloodViewMapper diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetMileView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetMileView.cpp new file mode 100644 index 000000000..6e7a8a3c4 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetMileView.cpp @@ -0,0 +1,186 @@ +/*** + * @Date: 2024-04-18 10:57:22 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 15:10:10 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetMileView.cpp + */ + +#include "traing/include/TrainingSetMileView.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 "components/ui_button.h" +#include "common/screen.h" +#include +#include +#include +#include "traing/include/TraingModel.h" +#include "traing/Training_UiConfig.h" +namespace OHOS +{ + + /***************************************************************************************/ + // 动态生成包含指定卡路里区间内所有卡路里数的字符串数组 + std::vector GenerateMileValues(int minTime, int maxTime, int interval) + { + std::vector values; + for (int i = minTime; i <= maxTime; i += interval) + { + values.push_back(std::to_string(i)); + } + return values; + } + /***************************************************************************************/ + static TrainingSetMileView *g_pTraingSetMileView{nullptr}; + + TrainingSetMileView::TrainingSetMileView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetMileView::TrainingSetMileView"); + labeltitle_ = nullptr; + buttonok_ = nullptr; + calPicker_ = nullptr; + SetMileScrollView = nullptr; + g_pTraingSetMileView = this; + } + + TrainingSetMileView::~TrainingSetMileView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetMileView::~TrainingSetMileView"); + SetMileScrollView->RemoveAll(); + // 删除Label + if (labeltitle_ != nullptr) + { + SetMileScrollView->Remove(labeltitle_); + delete labeltitle_; + labeltitle_ = nullptr; + } + // 删除Button + if (buttonok_ != nullptr) + { + SetMileScrollView->Remove(buttonok_); + delete buttonok_; + buttonok_ = nullptr; + } + + // 删除滚动选择器 + if (calPicker_ != nullptr) + { + SetMileScrollView->Remove(calPicker_); + delete calPicker_; + calPicker_ = nullptr; + } + + // 删除容器 + if (SetMileScrollView != nullptr) + { + SetMileScrollView->RemoveAll(); // 移除容器中的所有组件 + delete SetMileScrollView; + SetMileScrollView = nullptr; + } + g_pTraingSetMileView = nullptr; + } + + TrainingSetMileView *TrainingSetMileView::GetInstance() + { + + return g_pTraingSetMileView; + } + + /* + InitUIPicker: 初始化UIPicker组件 + @param picker: 指向UIPicker的指针 + @param x: UIPicker的左边位置 + @param y: UIPicker的顶部位置 + @param width: UIPicker的宽度 + @param height: UIPicker的高度 + @param viewId: UIPicker的视图 ID + @param values: 选项数组 + @param count: 选项数量 + @param backgroundFontSize: 普通文本大小 + @highlightFontSize: 高光文本大小 + */ + void TrainingSetMileView::InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId) + { + // 文本大小 + constexpr uint8_t BACKGROUND_FONT = 40; + constexpr uint8_t HIGHTLIGHT_FONT = 60; + // 获取value数组 + int minMile = 1; + int maxMile = 20; + int interval = 1; + std::vector MileValues = GenerateMileValues(minMile, maxMile, interval); + + const char **values = new const char *[MileValues.size()]; + for (size_t i = 0; i < MileValues.size(); i++) + { + values[i] = MileValues[i].c_str(); + } + // 创建 UIPicker + if (picker == nullptr) + { + picker = new UIPicker(); + } + + // 设置 UIPicker 的位置和大小 + picker->SetPosition(x, y); + picker->Resize(width, height); + // 设置 UIPicker 的 ViewId + picker->SetViewId(viewId); + // 设置 UIPicker 的属性 + picker->SetItemHeight(70); + picker->SetLoopState(true); + picker->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff), Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff)); + picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT); // 设置普通文本大小 + picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT); // 设置高光文本大小 + picker->SetValues(values, MileValues.size()); + // 将 UIPicker 设置为显示 + picker->SetVisible(true); + } + + /* InitView:初始化界面*/ + UIScrollView *TrainingSetMileView ::SetMileViewInit() + { + /* -------------------------------------------------------------------------- */ + SetMileScrollView = new UIScrollView(); + if (SetMileScrollView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetMileView::new SetMileScrollView fail"); + return nullptr; + } + SetMileScrollView->SetPosition(0, 0); + SetMileScrollView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); + SetMileScrollView->SetScrollBlankSize(35); + SetMileScrollView->SetReboundSize(50); + SetMileScrollView->SetDirection(1); + // 增加拖拽监听 + UIView::OnDragListener *draglistener = static_cast(new TraingSetPresenter()); + if (draglistener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView::draglistener can not be nullptr!"); + return nullptr; + } + SetMileScrollView->SetOnDragListener(draglistener); + SetMileScrollView->SetTouchable(true); + SetMileScrollView->SetDraggable(true); + SetMileScrollView->SetVerticalScrollState(false); // 禁止垂直滑动 + /* -------------------------------------------------------------------------- */ + // 初始化Lable + TraingModel::GetInstance()->InitLabel(labeltitle_, 83, 50, 300, 35, "label1", "距离(公里)", DEFAULT_VECTOR_FONT_FILENAME, 30); + SetMileScrollView->Add(labeltitle_); + + // 初始化UIPicker + InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker"); + SetMileScrollView->Add(calPicker_); + // 初始化Button + TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONMileOK, STR_OK, 30); + // Set additional property + buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE); + buttonok_->SetOnClickListener(static_cast(TraingSetPresenter::GetInstance())); + SetMileScrollView->Add(buttonok_); + + return SetMileScrollView; + } +}