增加设置时长SubView,删除原Slice
authorCaisking <3449750381@qq.com>
Thu, 18 Apr 2024 06:41:01 +0000 (14:41 +0800)
committerCaisking <3449750381@qq.com>
Thu, 18 Apr 2024 06:41:01 +0000 (14:41 +0800)
15 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetTimePresenter.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetTimeView.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimePresenter.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimeView.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetTimeView.cpp [new file with mode: 0644]

index d6e97ae..05d926f 100644 (file)
@@ -478,13 +478,12 @@ set(SOURCES
     ${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
@@ -499,7 +498,6 @@ set(SOURCES
     ${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
index 3bfbd5b..3fd8dcc 100644 (file)
@@ -74,7 +74,6 @@ typedef enum : uint16_t
     VIEW_TRAINING,          // 训练
     VIEW_TRAININGNOMAL,     // 正常训练开始界面(除骑行,健走,跑步外)
     VIEW_TRAININGSET,       // 训练目标(时长,卡路里)
-    VIEW_TRAININGSETTIME,   // 设置训练时长
     VIEW_TRAININGSETDIST,   // 设置训练路程
     VIEW_TRAININGSETSTEP,   // 设置训练步数
     VIEW_TRAININGCRAD,      // 训练控制卡片
index 8af8f43..348dc09 100644 (file)
@@ -67,7 +67,6 @@ namespace OHOS
         void InitTraingSlice(void);
         void InitTraingNomalSlice(void);
         void InitTraingSetSlice(void);
-        void InitTraingSetTimeSlice(void);
         void InitTraingSetDistSlice(void);
         void InitTraingSetStepSlice(void);
         void InitTraingCardSlice(void);
index 9684c2f..6850a89 100644 (file)
 #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"
@@ -284,7 +282,6 @@ namespace OHOS
         {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},           // 训练卡片
@@ -866,11 +863,6 @@ namespace OHOS
         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>;
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetTimePresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetTimePresenter.h
deleted file mode 100644 (file)
index 6257330..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetTimeView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetTimeView.h
deleted file mode 100644 (file)
index 81699a1..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#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
index 4129f46..012ea39 100644 (file)
@@ -23,6 +23,7 @@
 #include "traing/Training_UiConfig.h"
 
 #include "traing/include/TrainingSetCaluliView.h"
+#include "traing/include/TrainingSetTimeView.h"
 #include "TraingSetPresenter.h"
 namespace OHOS
 {
@@ -31,6 +32,7 @@ namespace OHOS
 
     class TraingSetPresenter;
     class TrainingSetCaluliView;
+    class TrainingSetTimeView;
     class TraingSetView : public View<TraingSetPresenter>
     {
 
@@ -63,6 +65,7 @@ namespace OHOS
         UIViewGroup *container_ = nullptr;
         UIScrollView *SetTagScrollView[4]{nullptr};
         TrainingSetCaluliView *setcalories{nullptr};
+        TrainingSetTimeView *settime{nullptr};
 
         UILabelExt *labeltitle = nullptr;
         UILabelExt *labeltime = nullptr;
index 7aeab78..75f69af 100644 (file)
@@ -23,7 +23,7 @@
 
 namespace OHOS
 {
-#define BUTTONOK "button1"
+#define BUTTONCALULIOK "buttoncaluli"
 
     class TraingSetPresenter;
     class TrainingSetCaluliView : public View<TraingSetPresenter>
@@ -33,7 +33,7 @@ namespace OHOS
         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);
 
@@ -44,7 +44,7 @@ namespace OHOS
         UILabelButtonExt*buttonok_ = nullptr;
         UIPicker *calPicker_ = nullptr;
 
-        UIScrollView *SetCaloriesScrollView;
+        UIScrollView *SetCaluliScrollView;
     };
 } // namespace OHOS
 #endif
index e69de29..aa31a7e 100644 (file)
@@ -0,0 +1,50 @@
+/***
+ * @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
index 90e2639..f6628cc 100644 (file)
@@ -84,11 +84,10 @@ namespace OHOS
         // 根据控件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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimePresenter.cpp
deleted file mode 100644 (file)
index 73c2261..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*** \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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimeView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetTimeView.cpp
deleted file mode 100644 (file)
index 712e07c..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-\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
index bcbf341..772d94a 100644 (file)
@@ -164,12 +164,27 @@ namespace OHOS
                 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
index f4e3298..b463829 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @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"
 
@@ -36,25 +42,25 @@ namespace OHOS
         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;
         }
@@ -62,17 +68,17 @@ namespace OHOS
         // 删除滚动选择器
         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;
     }
@@ -135,20 +141,20 @@ namespace OHOS
     }
 
     /* 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)
@@ -156,25 +162,25 @@ namespace OHOS
             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;
     }
 }
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetTimeView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetTimeView.cpp
new file mode 100644 (file)
index 0000000..d9a31bf
--- /dev/null
@@ -0,0 +1,186 @@
+/*** 
+ * @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;
+    }
+}