${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/TraingSetTimeView.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetTimePresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingEnddataView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingEnddataPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingWinView.cpp
${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/training_card/src/Training_CardView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordPresenter.cpp
-
#训练列表
#极限训练
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_limit/src/TraingLimitView.cpp
VIEW_TRAINING, // 训练
VIEW_TRAININGNOMAL, // 正常训练开始界面(除骑行,健走,跑步外)
VIEW_TRAININGSET, // 训练目标(时长,卡路里)
- VIEW_TRAININGSETTIME, // 设置训练时长
VIEW_TRAININGSETDIST, // 设置训练路程
VIEW_TRAININGSETSTEP, // 设置训练步数
VIEW_TRAININGCRAD, // 训练控制卡片
void InitTraingSlice(void);
void InitTraingNomalSlice(void);
void InitTraingSetSlice(void);
- void InitTraingSetTimeSlice(void);
void InitTraingSetDistSlice(void);
void InitTraingSetStepSlice(void);
void InitTraingCardSlice(void);
#include "traing/include/TraingNomalView.h"
#include "traing/include/TraingSetPresenter.h"
#include "traing/include/TraingSetView.h"
-#include "traing/include/TraingSetTimePresenter.h"
-#include "traing/include/TraingSetTimeView.h"
#include "traing/include/TraingSetDistPresenter.h"
#include "traing/include/TraingSetDistView.h"
#include "traing/include/TraingSetSeptPresenter.h"
{VIEW_TRAINING, &NativeLauncher::InitTraingSlice}, // 训练
{VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice}, // 正常训练初始界面
{VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice}, // 训练目标设置界面
- {VIEW_TRAININGSETTIME, &NativeLauncher::InitTraingSetTimeSlice}, // 设置目标时长
{VIEW_TRAININGSETDIST, &NativeLauncher::InitTraingSetDistSlice}, // 设置目标距离
{VIEW_TRAININGSETSTEP, &NativeLauncher::InitTraingSetStepSlice}, // 设置目标步数
{VIEW_TRAININGCRAD, &NativeLauncher::InitTraingCardSlice}, // 训练卡片
SliceProxy *traingsetview = new AbilitySliceProxy<TraingSetView, TraingSetPresenter>;
NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSET, traingsetview);
}
- void NativeLauncher::InitTraingSetTimeSlice(void)
- {
- SliceProxy *traingsettimeview = new AbilitySliceProxy<TraingSetTimeView, TraingSetTimePresenter>;
- NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSETTIME, traingsettimeview);
- }
void NativeLauncher::InitTraingSetDistSlice(void)
{
SliceProxy *traingsetdistview = new AbilitySliceProxy<TraingSetDistView, TraingSetDistPresenter>;
+++ /dev/null
-
-#ifndef _TraingSetTime_PRESENTER_H
-#define _TraingSetTime_PRESENTER_H
-
-#include "Presenter.h"
-#include "TraingSetTimeView.h"
-
-namespace OHOS
-{
- class TraingSetTimeView;
-
- class TraingSetTimePresenter : public Presenter<TraingSetTimeView>,
- public UIView::OnClickListener,
- public UIView::OnDragListener
- {
- public:
- TraingSetTimePresenter();
- virtual ~TraingSetTimePresenter();
-
- void OnStart() override;
- void OnPause() override;
- void OnResume() override;
- void OnStop() override;
-
- static TraingSetTimePresenter *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
+++ /dev/null
-#ifndef _TraingSetTime_VIEW_H
-#define _TraingSetTime_VIEW_H
-
-#include "BaseView.h"
-#include "View.h"
-#include <ui_scroll_view.h>
-#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 "TraingSetTimePresenter.h"
-namespace OHOS
-{
-#define BUTTONOK "button1"
-
-
- class TraingSetTimePresenter;
- class TraingSetTimeView : public View<TraingSetTimePresenter>
- {
-
- public:
- TraingSetTimeView();
- virtual ~TraingSetTimeView();
- static TraingSetTimeView *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};
- TraingSetTimeView(TraingSetTimeView &&) = delete;
- TraingSetTimeView &operator=(TraingSetTimeView &&) = delete;
-
- UIViewGroup *container_ = nullptr;
- UILabelExt *label1_ = nullptr;
- UIButton *button1_ = nullptr;
- UIPicker *uiPicker1_ = nullptr;
-
- bool viewiInitStatus{false};
- };
-} // namespace OHOS
-#endif // TraingSetTime_PRESENTER_H
#include "traing/Training_UiConfig.h"
#include "traing/include/TrainingSetCaluliView.h"
+#include "traing/include/TrainingSetTimeView.h"
#include "TraingSetPresenter.h"
namespace OHOS
{
class TraingSetPresenter;
class TrainingSetCaluliView;
+ class TrainingSetTimeView;
class TraingSetView : public View<TraingSetPresenter>
{
UIViewGroup *container_ = nullptr;
UIScrollView *SetTagScrollView[4]{nullptr};
TrainingSetCaluliView *setcalories{nullptr};
+ TrainingSetTimeView *settime{nullptr};
UILabelExt *labeltitle = nullptr;
UILabelExt *labeltime = nullptr;
namespace OHOS
{
-#define BUTTONOK "button1"
+#define BUTTONCALULIOK "buttoncaluli"
class TraingSetPresenter;
class TrainingSetCaluliView : public View<TraingSetPresenter>
TrainingSetCaluliView();
virtual ~TrainingSetCaluliView();
static TrainingSetCaluliView *GetInstance(void);
- UIScrollView *SetCaloriesViewInit();
+ UIScrollView *SetCaluliViewInit();
void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId);
UILabelButtonExt*buttonok_ = nullptr;
UIPicker *calPicker_ = nullptr;
- UIScrollView *SetCaloriesScrollView;
+ UIScrollView *SetCaluliScrollView;
};
} // namespace OHOS
#endif
+/***
+ * @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/TrainingSetTimeView.h
+ */
+#ifndef _Training_SetTime_VIEW_H
+#define _Training_SetTime_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/TrainingSetTimeView.h"
+
+namespace OHOS
+{
+#define BUTTONTIMEOK "buttontime"
+
+ class TraingSetPresenter;
+ class TrainingSetTimeView : public View<TraingSetPresenter>
+ {
+
+ public:
+ TrainingSetTimeView();
+ virtual ~TrainingSetTimeView();
+ static TrainingSetTimeView *GetInstance(void);
+ UIScrollView *SetTimeViewInit();
+
+ 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 *SetTimeScrollView;
+ };
+} // namespace OHOS
+#endif
// 根据控件id查找是哪个控件触发了点击回调\r
if (strcmp(view.GetViewId(), BUTTONTIME) == 0)\r
{\r
- NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGSETTIME);\r
+ TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_DURATION);\r
}\r
if (strcmp(view.GetViewId(), BUTTONCALULI) == 0)\r
{\r
- // NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGSETCALULI);\r
TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_CALORIES);\r
}\r
return true;\r
+++ /dev/null
-/*** \r
- * @Date: 2024-04-15 10:55:58\r
- * @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-04-17 11:58:48\r
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimePresenter.cpp\r
- */\r
-#include "AppViewIDs.h"\r
-#include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
-#include "NativeAbility.h"\r
-\r
-#include <iostream>\r
-#include <chrono>\r
-#include <thread>\r
-#include "traing/include/TraingSetTimePresenter.h"\r
-// #include "TraingSetTimeView.h"\r
-\r
-namespace OHOS\r
-{\r
-\r
- // 当前Presenter属性实例化的内存指针\r
- static TraingSetTimePresenter *g_pTraingSetTimePresenter = nullptr;\r
-\r
- TraingSetTimePresenter::TraingSetTimePresenter()\r
- {\r
-\r
- g_pTraingSetTimePresenter = this;\r
- }\r
-\r
- TraingSetTimePresenter::~TraingSetTimePresenter()\r
- {\r
-\r
- g_pTraingSetTimePresenter = nullptr;\r
- }\r
-\r
- TraingSetTimePresenter *TraingSetTimePresenter::GetInstance()\r
- {\r
-\r
- return g_pTraingSetTimePresenter;\r
- }\r
-\r
- void TraingSetTimePresenter::OnStart()\r
- {\r
-\r
- Presenter<TraingSetTimeView>::OnStart();\r
- }\r
-\r
- void TraingSetTimePresenter::OnPause(void)\r
- {\r
-\r
- Presenter<TraingSetTimeView>::OnPause();\r
- }\r
-\r
- void TraingSetTimePresenter::OnResume(void)\r
- {\r
-\r
- Presenter<TraingSetTimeView>::OnResume();\r
- }\r
-\r
- void TraingSetTimePresenter::OnStop(void)\r
- {\r
-\r
- Presenter<TraingSetTimeView>::OnStop();\r
- }\r
-\r
- bool TraingSetTimePresenter::OnDrag(UIView &view, const DragEvent &event)\r
- {\r
-\r
- // if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
- // (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
- // {\r
- // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGSET);\r
- // }\r
- UNUSED(view);\r
- return true;\r
- }\r
-\r
- bool TraingSetTimePresenter::OnClick(UIView &view, const ClickEvent &event)\r
- {\r
- // 根据控件id查找是哪个控件触发了点击回调\r
- if (strcmp(view.GetViewId(), BUTTONOK) == 0)\r
- {\r
- NativeAbility::GetInstance().Back();\r
- }\r
- if (strcmp(view.GetViewId(), "Remind") == 0)\r
- {\r
- // 模拟心率监测,等待20秒\r
- // std::this_thread::sleep_for(std::chrono::seconds(20));\r
- // NativeAbility::GetInstance().ChangeSlice(VIEW_TraingSetTimeREMIND);\r
- }\r
- return true;\r
- }\r
-}\r
+++ /dev/null
-\r
-#include "traing/include/TraingSetTimeView.h"\r
-\r
-#include "common/image_cache_manager.h"\r
-#include "components/ui_label_ext.h"\r
-#include "language/font/ui_resource_string.h"\r
-#include "UiConfig.h"\r
-#include "ui_resource_image.h"\r
-#include <ui_scroll_view.h>\r
-#include "components/ui_button.h"\r
-#include "common/screen.h"\r
-#include <sstream>\r
-#include <string>\r
-#include <vector>\r
-#include "traing/include/TraingModel.h"\r
-#include "traing/Training_UiConfig.h"\r
-namespace OHOS\r
-{\r
-\r
- /***************************************************************************************/\r
- // 动态生成包含指定时间区间内所有分钟数的字符串数组\r
- std::vector<std::string> GenerateTimeValues(int minTime, int maxTime, int interval)\r
- {\r
- std::vector<std::string> values;\r
- for (int i = minTime; i <= maxTime; i += interval)\r
- {\r
- values.push_back(std::to_string(i) + " 分钟");\r
- }\r
- return values;\r
- }\r
- /***************************************************************************************/\r
- static TraingSetTimeView *g_pTraingSetTimeView{nullptr};\r
-\r
- TraingSetTimeView::TraingSetTimeView()\r
- {\r
- g_pTraingSetTimeView = this;\r
- }\r
-\r
- TraingSetTimeView::~TraingSetTimeView()\r
- {\r
- DeInit();\r
- g_pTraingSetTimeView = nullptr;\r
- }\r
-\r
- TraingSetTimeView *TraingSetTimeView::GetInstance()\r
- {\r
-\r
- return g_pTraingSetTimeView;\r
- }\r
-\r
- /*\r
- InitUIPicker: 初始化UIPicker组件\r
- @param picker: 指向UIPicker的指针\r
- @param x: UIPicker的左边位置\r
- @param y: UIPicker的顶部位置\r
- @param width: UIPicker的宽度\r
- @param height: UIPicker的高度\r
- @param viewId: UIPicker的视图 ID\r
- @param values: 选项数组\r
- @param count: 选项数量\r
- @param backgroundFontSize: 普通文本大小\r
- @highlightFontSize: 高光文本大小\r
- */\r
- void TraingSetTimeView::InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId)\r
- {\r
- // 文本大小\r
- constexpr uint8_t BACKGROUND_FONT = 40;\r
- constexpr uint8_t HIGHTLIGHT_FONT = 60;\r
- // 获取value数组\r
- int minTime = 10;\r
- int maxTime = 600;\r
- int interval = 10;\r
- std::vector<std::string> timeValues = GenerateTimeValues(minTime, maxTime, interval);\r
-\r
- const char **values = new const char *[timeValues.size()];\r
- for (size_t i = 0; i < timeValues.size(); i++)\r
- {\r
- values[i] = timeValues[i].c_str();\r
- }\r
- // 创建 UIPicker\r
- if (picker == nullptr)\r
- {\r
- picker = new UIPicker();\r
- }\r
-\r
- // 设置 UIPicker 的位置和大小\r
- picker->SetPosition(x, y);\r
- picker->Resize(width, height);\r
- // 设置 UIPicker 的 ViewId\r
- picker->SetViewId(viewId);\r
- // 设置 UIPicker 的属性\r
- picker->SetItemHeight(70);\r
- picker->SetLoopState(true);\r
- picker->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff), Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
- picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT); // 设置普通文本大小\r
- picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT); // 设置高光文本大小\r
- picker->SetValues(values, timeValues.size());\r
- // 将 UIPicker 设置为显示\r
- picker->SetVisible(true);\r
- }\r
-\r
- /* InitView:初始化界面*/\r
- void TraingSetTimeView ::InitView()\r
- {\r
- if (container_ == nullptr)\r
- {\r
- container_ = new UIViewGroup();\r
- container_->SetPosition(0, 0, 466, 466);\r
- container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
- }\r
- // 初始化Lable\r
- TraingModel::GetInstance()->InitLabel(label1_, 173, 52, 120, 35, "label1", "时长设定", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- container_->Add(label1_);\r
-\r
- // 初始化UIPicker\r
- InitUIPicker(uiPicker1_, 43, 106, 380, 240, "uiPicker1");\r
- container_->Add(uiPicker1_);\r
- // 初始化Button\r
- TraingModel::GetInstance()->InitButton(button1_, 0, 366, 466, 100, BUTTONOK);\r
- button1_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetTimePresenter::GetInstance()));\r
- // Set additional property\r
- button1_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);\r
- container_->Add(button1_);\r
- }\r
- /* DeInit:删除组件 */\r
- void TraingSetTimeView::DeInit()\r
- {\r
- container_->RemoveAll();\r
- // 删除Label\r
- if (label1_ != nullptr)\r
- {\r
- container_->Remove(label1_);\r
- delete label1_;\r
- label1_ = nullptr;\r
- }\r
- // 删除Button\r
- if (button1_ != nullptr)\r
- {\r
- container_->Remove(button1_);\r
- delete button1_;\r
- button1_ = nullptr;\r
- }\r
-\r
- // 删除Image\r
-\r
- // 删除滚动选择器\r
- if (uiPicker1_ != nullptr)\r
- {\r
- container_->Remove(uiPicker1_);\r
- delete uiPicker1_;\r
- uiPicker1_ = nullptr;\r
- }\r
-\r
- // 删除容器\r
- if (container_ != nullptr)\r
- {\r
- container_->RemoveAll(); // 移除容器中的所有组件\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
- }\r
-\r
- void TraingSetTimeView::PreLoad(void)\r
- {\r
- if (!viewiInitStatus)\r
- {\r
- InitView();\r
- viewiInitStatus = true;\r
- }\r
- }\r
- void TraingSetTimeView::OnStart()\r
- {\r
- container_ = new UIViewGroup();\r
- if (container_ == nullptr)\r
- {\r
- return;\r
- }\r
- container_->SetPosition(0, 0);\r
- container_->SetWidth(Screen::GetInstance().GetWidth());\r
- container_->SetHeight(Screen::GetInstance().GetHeight());\r
-\r
- // 创建 draglistener 实例并设置为拖动监听器\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingSetTimePresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- return;\r
- }\r
- container_->SetOnDragListener(draglistener);\r
-\r
- container_->SetTouchable(true);\r
- container_->SetDraggable(true);\r
-\r
- PreLoad();\r
- RootView::GetInstance()->Add(container_);\r
- }\r
-\r
- void TraingSetTimeView::OnSetUpView()\r
- {\r
-\r
- View<TraingSetTimePresenter>::OnSetUpView();\r
- Draw();\r
- }\r
-\r
- void TraingSetTimeView::OnTearDownView()\r
- {\r
-\r
- View<TraingSetTimePresenter>::OnTearDownView();\r
- return;\r
- }\r
-\r
- void TraingSetTimeView::OnStop()\r
- {\r
- View<TraingSetTimePresenter>::OnStop();\r
- RootView::GetInstance()->RemoveAll();\r
- return;\r
- }\r
-}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView:: new scrollView[%d] fail", thisview);\r
return false;\r
}\r
- SetTagScrollView[thisview] = setcalories->SetCaloriesViewInit();\r
+ SetTagScrollView[thisview] = setcalories->SetCaluliViewInit();\r
+ RootView::GetInstance()->Add(SetTagScrollView[thisview]);\r
+ }\r
+ return true;\r
+ }\r
+ bool TraingSetView::ChangeSetDurationView(int16_t thisview)\r
+ {\r
+ if (SetTagScrollView[thisview] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::ChangeBandoffView");\r
+ settime = new TrainingSetTimeView();\r
+ if (settime == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView:: new scrollView[%d] fail", thisview);\r
+ return false;\r
+ }\r
+ SetTagScrollView[thisview] = settime->SetTimeViewInit();\r
RootView::GetInstance()->Add(SetTagScrollView[thisview]);\r
}\r
return true;\r
}\r
- bool TraingSetView::ChangeSetDurationView(int16_t thisview) {}\r
bool TraingSetView::ChangeSetStepsView(int16_t thisview) {}\r
bool TraingSetView::ChangeSetDistanceView(int16_t thisview) {}\r
/* -------------------------------------------------------------------------- */\r
+/***
+ * @Date: 2024-04-18 10:57:22
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 14:28:29
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp
+ */
#include "traing/include/TrainingSetCaluliView.h"
labeltitle_ = nullptr;
buttonok_ = nullptr;
calPicker_ = nullptr;
- SetCaloriesScrollView = nullptr;
+ SetCaluliScrollView = nullptr;
g_pTraingSetCaluliView = this;
}
TrainingSetCaluliView::~TrainingSetCaluliView()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::~TrainingSetCaluliView");
- SetCaloriesScrollView->RemoveAll();
+ SetCaluliScrollView->RemoveAll();
// 删除Label
if (labeltitle_ != nullptr)
{
- SetCaloriesScrollView->Remove(labeltitle_);
+ SetCaluliScrollView->Remove(labeltitle_);
delete labeltitle_;
labeltitle_ = nullptr;
}
// 删除Button
if (buttonok_ != nullptr)
{
- SetCaloriesScrollView->Remove(buttonok_);
+ SetCaluliScrollView->Remove(buttonok_);
delete buttonok_;
buttonok_ = nullptr;
}
// 删除滚动选择器
if (calPicker_ != nullptr)
{
- SetCaloriesScrollView->Remove(calPicker_);
+ SetCaluliScrollView->Remove(calPicker_);
delete calPicker_;
calPicker_ = nullptr;
}
// 删除容器
- if (SetCaloriesScrollView != nullptr)
+ if (SetCaluliScrollView != nullptr)
{
- SetCaloriesScrollView->RemoveAll(); // 移除容器中的所有组件
- delete SetCaloriesScrollView;
- SetCaloriesScrollView = nullptr;
+ SetCaluliScrollView->RemoveAll(); // 移除容器中的所有组件
+ delete SetCaluliScrollView;
+ SetCaluliScrollView = nullptr;
}
g_pTraingSetCaluliView = nullptr;
}
}
/* InitView:初始化界面*/
- UIScrollView *TrainingSetCaluliView ::SetCaloriesViewInit()
+ UIScrollView *TrainingSetCaluliView ::SetCaluliViewInit()
{
/* -------------------------------------------------------------------------- */
- SetCaloriesScrollView = new UIScrollView();
- if (SetCaloriesScrollView == nullptr)
+ SetCaluliScrollView = new UIScrollView();
+ if (SetCaluliScrollView == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::new SetCaloriesScrollView fail");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::new SetCaluliScrollView fail");
return nullptr;
}
- SetCaloriesScrollView->SetPosition(0, 0);
- SetCaloriesScrollView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
- SetCaloriesScrollView->SetScrollBlankSize(35);
- SetCaloriesScrollView->SetReboundSize(50);
- SetCaloriesScrollView->SetDirection(1);
+ SetCaluliScrollView->SetPosition(0, 0);
+ SetCaluliScrollView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+ SetCaluliScrollView->SetScrollBlankSize(35);
+ SetCaluliScrollView->SetReboundSize(50);
+ SetCaluliScrollView->SetDirection(1);
// 增加拖拽监听
UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(new TraingSetPresenter());
if (draglistener == nullptr)
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView::draglistener can not be nullptr!");
return nullptr;
}
- SetCaloriesScrollView->SetOnDragListener(draglistener);
- SetCaloriesScrollView->SetTouchable(true);
- SetCaloriesScrollView->SetDraggable(true);
- SetCaloriesScrollView->SetVerticalScrollState(false); // 禁止垂直滑动
+ SetCaluliScrollView->SetOnDragListener(draglistener);
+ SetCaluliScrollView->SetTouchable(true);
+ SetCaluliScrollView->SetDraggable(true);
+ SetCaluliScrollView->SetVerticalScrollState(false); // 禁止垂直滑动
/* -------------------------------------------------------------------------- */
// 初始化Lable
TraingModel::GetInstance()->InitLabel(labeltitle_, 83, 50, 300, 35, "label1", "卡路里(千卡)", DEFAULT_VECTOR_FONT_FILENAME, 30);
- SetCaloriesScrollView->Add(labeltitle_);
+ SetCaluliScrollView->Add(labeltitle_);
// 初始化UIPicker
InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
- SetCaloriesScrollView->Add(calPicker_);
+ SetCaluliScrollView->Add(calPicker_);
// 初始化Button
- TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONOK, STR_OK, 30);
+ TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONCALULIOK, STR_OK, 30);
// Set additional property
buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);
buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));
- SetCaloriesScrollView->Add(buttonok_);
+ SetCaluliScrollView->Add(buttonok_);
- return SetCaloriesScrollView;
+ return SetCaluliScrollView;
}
}
--- /dev/null
+/***
+ * @Date: 2024-04-18 10:57:22
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 14:24:30
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetTimeView.cpp
+ */
+
+#include "traing/include/TrainingSetTimeView.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 <sstream>
+#include <string>
+#include <vector>
+#include "traing/include/TraingModel.h"
+#include "traing/Training_UiConfig.h"
+namespace OHOS
+{
+
+ /***************************************************************************************/
+ // 动态生成包含指定卡路里区间内所有卡路里数的字符串数组
+ std::vector<std::string> GenerateTimeValues(int minTime, int maxTime, int interval)
+ {
+ std::vector<std::string> values;
+ for (int i = minTime; i <= maxTime; i += interval)
+ {
+ values.push_back(std::to_string(i));
+ }
+ return values;
+ }
+ /***************************************************************************************/
+ static TrainingSetTimeView *g_pTraingSetTimeView{nullptr};
+
+ TrainingSetTimeView::TrainingSetTimeView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetTimeView::TrainingSetTimeView");
+ labeltitle_ = nullptr;
+ buttonok_ = nullptr;
+ calPicker_ = nullptr;
+ SetTimeScrollView = nullptr;
+ g_pTraingSetTimeView = this;
+ }
+
+ TrainingSetTimeView::~TrainingSetTimeView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetTimeView::~TrainingSetTimeView");
+ SetTimeScrollView->RemoveAll();
+ // 删除Label
+ if (labeltitle_ != nullptr)
+ {
+ SetTimeScrollView->Remove(labeltitle_);
+ delete labeltitle_;
+ labeltitle_ = nullptr;
+ }
+ // 删除Button
+ if (buttonok_ != nullptr)
+ {
+ SetTimeScrollView->Remove(buttonok_);
+ delete buttonok_;
+ buttonok_ = nullptr;
+ }
+
+ // 删除滚动选择器
+ if (calPicker_ != nullptr)
+ {
+ SetTimeScrollView->Remove(calPicker_);
+ delete calPicker_;
+ calPicker_ = nullptr;
+ }
+
+ // 删除容器
+ if (SetTimeScrollView != nullptr)
+ {
+ SetTimeScrollView->RemoveAll(); // 移除容器中的所有组件
+ delete SetTimeScrollView;
+ SetTimeScrollView = nullptr;
+ }
+ g_pTraingSetTimeView = nullptr;
+ }
+
+ TrainingSetTimeView *TrainingSetTimeView::GetInstance()
+ {
+
+ return g_pTraingSetTimeView;
+ }
+
+ /*
+ 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 TrainingSetTimeView::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 minTime = 10;
+ int maxTime = 600;
+ int interval = 10;
+ std::vector<std::string> TimeValues = GenerateTimeValues(minTime, maxTime, interval);
+
+ const char **values = new const char *[TimeValues.size()];
+ for (size_t i = 0; i < TimeValues.size(); i++)
+ {
+ values[i] = TimeValues[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, TimeValues.size());
+ // 将 UIPicker 设置为显示
+ picker->SetVisible(true);
+ }
+
+ /* InitView:初始化界面*/
+ UIScrollView *TrainingSetTimeView ::SetTimeViewInit()
+ {
+ /* -------------------------------------------------------------------------- */
+ SetTimeScrollView = new UIScrollView();
+ if (SetTimeScrollView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetTimeView::new SetTimeScrollView fail");
+ return nullptr;
+ }
+ SetTimeScrollView->SetPosition(0, 0);
+ SetTimeScrollView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+ SetTimeScrollView->SetScrollBlankSize(35);
+ SetTimeScrollView->SetReboundSize(50);
+ SetTimeScrollView->SetDirection(1);
+ // 增加拖拽监听
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(new TraingSetPresenter());
+ if (draglistener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView::draglistener can not be nullptr!");
+ return nullptr;
+ }
+ SetTimeScrollView->SetOnDragListener(draglistener);
+ SetTimeScrollView->SetTouchable(true);
+ SetTimeScrollView->SetDraggable(true);
+ SetTimeScrollView->SetVerticalScrollState(false); // 禁止垂直滑动
+ /* -------------------------------------------------------------------------- */
+ // 初始化Lable
+ TraingModel::GetInstance()->InitLabel(labeltitle_, 83, 50, 300, 35, "label1", "时长(分钟)", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ SetTimeScrollView->Add(labeltitle_);
+
+ // 初始化UIPicker
+ InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
+ SetTimeScrollView->Add(calPicker_);
+ // 初始化Button
+ TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONTIMEOK, STR_OK, 30);
+ // Set additional property
+ buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);
+ buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));
+ SetTimeScrollView->Add(buttonok_);
+
+ return SetTimeScrollView;
+ }
+}