增加设置卡路里SubView,删除原Slice;删除GPS训练Slice
authorCaisking <3449750381@qq.com>
Thu, 18 Apr 2024 06:13:59 +0000 (14:13 +0800)
committerCaisking <3449750381@qq.com>
Thu, 18 Apr 2024 06:13:59 +0000 (14:13 +0800)
25 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/bloodoxygen/include/BloodOxygenView.h
code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliPresenter.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliView.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetSeptView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliPresenter.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliView.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/drivers/peripheral/cywee/CMakeLists.txt
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index bdad07b..d6e97ae 100644 (file)
@@ -480,13 +480,12 @@ set(SOURCES
     ${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/TraingSetCaluliView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetCaluliPresenter.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/training_card/src/Training_CardView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/Training_CardPresenter.cpp
@@ -500,19 +499,6 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordPresenter.cpp
 
-    #GPS训练
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSPresenter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlackView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlackPresenter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSnoteView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSnotePresenter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlostPresenter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlostView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSbackPresenter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSbackView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSsetView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp
 
     #训练列表
     #极限训练
index 40775ed..3bfbd5b 100644 (file)
@@ -75,7 +75,6 @@ typedef enum : uint16_t
     VIEW_TRAININGNOMAL,     // 正常训练开始界面(除骑行,健走,跑步外)
     VIEW_TRAININGSET,       // 训练目标(时长,卡路里)
     VIEW_TRAININGSETTIME,   // 设置训练时长
-    VIEW_TRAININGSETCALULI, // 设置训练卡路里
     VIEW_TRAININGSETDIST,   // 设置训练路程
     VIEW_TRAININGSETSTEP,   // 设置训练步数
     VIEW_TRAININGCRAD,      // 训练控制卡片
@@ -92,13 +91,6 @@ typedef enum : uint16_t
     VIEW_TRAININGBALL,    // 球类运动列表
     VIEW_TRAININGAQUATIC, // 水上运动列表
     VIEW_TRAININGOTHER,   // 其他列表
-    /* ---------------------------------- GPS训练 --------------------------------- */
-    VIEW_TRAININGGPS,     // GPS训练
-    VIEW_TRAININGGPSSET,  // GPS训练目标(时长,距离,卡路里,步数)
-    VIEW_TRAININGGPSLACK, // 缺少GPS
-    VIEW_TRAININGGPSNOTE, // 连接GPS提醒
-    VIEW_TRAININGGPSLOST, // GPS断联
-    VIEW_TRAININGGPSBACK, // GPS回连
     /* -------------------------------------------------------------------------- */
     VIEW_MAIN_TEMP,     // 体温界面(暂时不用)
     VIEW_OFFLINEVOICE,  // 语音助手界面(暂时不用)
index 78c260b..8af8f43 100644 (file)
@@ -68,20 +68,12 @@ namespace OHOS
         void InitTraingNomalSlice(void);
         void InitTraingSetSlice(void);
         void InitTraingSetTimeSlice(void);
-        void InitTraingSetCaluliSlice(void);
         void InitTraingSetDistSlice(void);
         void InitTraingSetStepSlice(void);
         void InitTraingCardSlice(void);
         void InitTraingEnddataSlice(void);
         void InitTraingWinSlice(void);
 
-        void InitTraingGPSSetSlice(void);
-        void InitTraingGPSSlice(void);
-        void InitTraingGPSlackSlice(void);
-        void InitTraingGPSnoteSlice(void);
-        void InitTraingGPSlostSlice(void);
-        void InitTraingGPSbackSlice(void);
-
         void InitTraingMoreSlice(void);    // 更多训练
         void InitTraingLimitSlice(void);   // 极限训练
         void InitTraingIceSlice(void);     // 冰上训练
index 8abf4e2..9684c2f 100644 (file)
 #include "traing/include/TraingSetView.h"
 #include "traing/include/TraingSetTimePresenter.h"
 #include "traing/include/TraingSetTimeView.h"
-#include "traing/include/TraingSetCaluliPresenter.h"
-#include "traing/include/TraingSetCaluliView.h"
 #include "traing/include/TraingSetDistPresenter.h"
 #include "traing/include/TraingSetDistView.h"
 #include "traing/include/TraingSetSeptPresenter.h"
 #include "traing/include/TraingEnddataView.h"
 #include "traing/include/TraingWinPresenter.h"
 #include "traing/include/TraingWinView.h"
-/* ---------------------------------- GPS训练 --------------------------------- */
-#include "traing/training_GPS/include/TraingGPSPresenter.h"
-#include "traing/training_GPS/include/TraingGPSView.h"
-#include "traing/training_GPS/include/TraingGPSlackPresenter.h"
-#include "traing/training_GPS/include/TraingGPSlackView.h"
-#include "traing/training_GPS/include/TraingGPSnotePresenter.h"
-#include "traing/training_GPS/include/TraingGPSnoteView.h"
-#include "traing/training_GPS/include/TraingGPSlostPresenter.h"
-#include "traing/training_GPS/include/TraingGPSlostView.h"
-#include "traing/training_GPS/include/TraingGPSbackPresenter.h"
-#include "traing/training_GPS/include/TraingGPSbackView.h"
-#include "traing/training_GPS/include/TraingGPSsetPresenter.h"
-#include "traing/training_GPS/include/TraingGPSsetView.h"
 /* ---------------------------------- 训练记录 ---------------------------------- */
 #include "traingrecord/include/TraingRecordView.h"
 #include "traingrecord/include/TraingRecordPresenter.h"
@@ -299,9 +284,7 @@ namespace OHOS
         {VIEW_TRAINING, &NativeLauncher::InitTraingSlice},                   // 训练
         {VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice},         // 正常训练初始界面
         {VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice},             // 训练目标设置界面
-        {VIEW_TRAININGGPSSET, &NativeLauncher::InitTraingGPSSetSlice},       // 训练GPS目标设置界面
         {VIEW_TRAININGSETTIME, &NativeLauncher::InitTraingSetTimeSlice},     // 设置目标时长
-        {VIEW_TRAININGSETCALULI, &NativeLauncher::InitTraingSetCaluliSlice}, // 设置目标卡路里
         {VIEW_TRAININGSETDIST, &NativeLauncher::InitTraingSetDistSlice},     // 设置目标距离
         {VIEW_TRAININGSETSTEP, &NativeLauncher::InitTraingSetStepSlice},     // 设置目标步数
         {VIEW_TRAININGCRAD, &NativeLauncher::InitTraingCardSlice},           // 训练卡片
@@ -309,13 +292,6 @@ namespace OHOS
         {VIEW_TRAININGWIN, &NativeLauncher::InitTraingWinSlice},             // 训练目标达成
         {VIEW_TRAINING_RECORD, &NativeLauncher::InitTraingRecordSlice},      // 训练目标达成
 
-        {VIEW_TRAININGGPSSET, &NativeLauncher::InitTraingGPSSetSlice},   // 训练GPS目标设置界面
-        {VIEW_TRAININGGPS, &NativeLauncher::InitTraingGPSSlice},         // GPS训练
-        {VIEW_TRAININGGPSLACK, &NativeLauncher::InitTraingGPSlackSlice}, // GPS缺少
-        {VIEW_TRAININGGPSNOTE, &NativeLauncher::InitTraingGPSnoteSlice}, // 提醒连接GPS
-        {VIEW_TRAININGGPSLOST, &NativeLauncher::InitTraingGPSlostSlice}, // GPS断联
-        {VIEW_TRAININGGPSBACK, &NativeLauncher::InitTraingGPSbackSlice}, // GPS回连
-
         {VIEW_TRAININGMORE, &NativeLauncher::InitTraingMoreSlice},       // 更多训练
         {VIEW_TRAININGLIMIT, &NativeLauncher::InitTraingLimitSlice},     // 极限训练
         {VIEW_TRAININGICE, &NativeLauncher::InitTraingIceSlice},         // 冰上训练
@@ -890,21 +866,11 @@ namespace OHOS
         SliceProxy *traingsetview = new AbilitySliceProxy<TraingSetView, TraingSetPresenter>;
         NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSET, traingsetview);
     }
-    void NativeLauncher::InitTraingGPSSetSlice(void)
-    {
-        SliceProxy *traingGPSsetview = new AbilitySliceProxy<TraingGPSsetView, TraingGPSsetPresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSSET, traingGPSsetview);
-    }
     void NativeLauncher::InitTraingSetTimeSlice(void)
     {
         SliceProxy *traingsettimeview = new AbilitySliceProxy<TraingSetTimeView, TraingSetTimePresenter>;
         NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSETTIME, traingsettimeview);
     }
-    void NativeLauncher::InitTraingSetCaluliSlice(void)
-    {
-        SliceProxy *traingsetcaluliview = new AbilitySliceProxy<TraingSetCaluliView, TraingSetCaluliPresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSETCALULI, traingsetcaluliview);
-    }
     void NativeLauncher::InitTraingSetDistSlice(void)
     {
         SliceProxy *traingsetdistview = new AbilitySliceProxy<TraingSetDistView, TraingSetDistPresenter>;
@@ -937,32 +903,6 @@ namespace OHOS
         NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAINING_RECORD, traingrecordview);
     }
 
-    /* -------------------------------------------------------------------------- */
-    void NativeLauncher::InitTraingGPSSlice(void)
-    {
-        SliceProxy *traingGPSview = new AbilitySliceProxy<TraingGPSView, TraingGPSPresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPS, traingGPSview);
-    }
-    void NativeLauncher::InitTraingGPSlackSlice(void)
-    {
-        SliceProxy *traingGPSlackview = new AbilitySliceProxy<TraingGPSlackView, TraingGPSlackPresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSLACK, traingGPSlackview);
-    }
-    void NativeLauncher::InitTraingGPSnoteSlice(void)
-    {
-        SliceProxy *traingGPSnoteview = new AbilitySliceProxy<TraingGPSnoteView, TraingGPSnotePresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSNOTE, traingGPSnoteview);
-    }
-    void NativeLauncher::InitTraingGPSlostSlice(void)
-    {
-        SliceProxy *traingGPSlostview = new AbilitySliceProxy<TraingGPSlostView, TraingGPSlostPresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSLOST, traingGPSlostview);
-    }
-    void NativeLauncher::InitTraingGPSbackSlice(void)
-    {
-        SliceProxy *traingGPSbackview = new AbilitySliceProxy<TraingGPSbackView, TraingGPSbackPresenter>;
-        NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSBACK, traingGPSbackview);
-    }
     /* ---------------------------------- 训练列表 ---------------------------------- */
     void NativeLauncher::InitTraingMoreSlice(void)
     {
index dabea89..d654824 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 10:23:54
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodOxygenView.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: bloodOxygen view
@@ -44,6 +50,7 @@ namespace OHOS
         void OnTearDownView() override;
         void OnStart() override;
         static BloodOxygenView *GetInstance(void);
+        
         bool ChangeBloodView(int16_t thisview); // 主视图
         bool ChangeBandoffView(int16_t thisview);
         bool ChangeCheckView(int16_t thisview);
index 514baaa..26a81d8 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 12:11:45
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: bloodResult view
index 7455ced..408ba07 100644 (file)
@@ -13,7 +13,7 @@
 #include "BaseView.h"
 #include "View.h"
 #include "string.h"
-#include <ui_scroll_view.h>
+#include "components/ui_scroll_view.h"
 #include "components/ui_view_group.h"
 #include "components/ui_label.h"
 #include "components/ui_label_ext.h"
 #include "components/ui_card_page.h"
 #include "traing/include/TraingModel.h"
 #include "traing/Training_UiConfig.h"
-#include "components/ui_label_ext.h"
 #include "language/font/ui_resource_string.h"
 
-#include "traing/include/TraingModel.h"
-#include "traing/Training_UiConfig.h"
-
 #include "cywee_service.h"
 #include "cywee_hal.h"
-#include "power_display_service.h"
-#include "displaybrightness/include/DisplayBrightnessModel.h"
 
 #include <string>
 #include <memory>
@@ -263,7 +257,7 @@ namespace OHOS
         ExerciseState sportState_ = ExerciseState::General; // 训练状态
         ExerciseTag sportTag_ = ExerciseTag::Distance;      // 训练目标类型
 
-        int tag_ = 0;                                        // 训练目标
+        int tag_ = 0; // 训练目标
         int totalHeartRate = 0;
         int countHeartRate = 0;
         /*std::unique_ptr<SportData> sportdata;*/ // 使用 std::unique_ptr 管理 SportData 对象
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliPresenter.h
deleted file mode 100644 (file)
index 1c94e82..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _TraingSetCaluli_PRESENTER_H\r
-#define _TraingSetCaluli_PRESENTER_H\r
-\r
-#include "Presenter.h"\r
-#include "TraingSetCaluliView.h"\r
-\r
-namespace OHOS\r
-{\r
-    class TraingSetCaluliView;\r
-\r
-    class TraingSetCaluliPresenter : public Presenter<TraingSetCaluliView>,\r
-                                 public UIView::OnClickListener,\r
-                                 public UIView::OnDragListener\r
-    {\r
-    public:\r
-        TraingSetCaluliPresenter();\r
-        virtual ~TraingSetCaluliPresenter();\r
-\r
-        void OnStart() override;\r
-        void OnPause() override;\r
-        void OnResume() override;\r
-        void OnStop() override;\r
-\r
-        static TraingSetCaluliPresenter *GetInstance();\r
-\r
-    private:\r
-        // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
-        bool OnClick(UIView &view, const ClickEvent &event) override;\r
-        bool OnDrag(UIView &view, const DragEvent &event) override;\r
-        //bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
-    };\r
-} // namespace OHOS\r
-\r
-#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliView.h
deleted file mode 100644 (file)
index d657397..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _TraingSetCaluli_VIEW_H\r
-#define _TraingSetCaluli_VIEW_H\r
-\r
-#include "BaseView.h"\r
-#include "View.h"\r
-#include <ui_scroll_view.h>\r
-#include "components/ui_view_group.h"\r
-#include "components/ui_label.h"\r
-#include "components/ui_label_ext.h"\r
-#include "components/ui_image_view.h"\r
-#include "components/ui_button.h"\r
-#include "components/ui_image_animator.h"\r
-#include "components/ui_label_button_ext.h"\r
-#include "components/ui_chart.h"\r
-#include "components/ui_list.h"\r
-#include "components/icon_adapter.h"\r
-#include "wearable_log.h"\r
-#include "ohos_types.h"\r
-#include "components/ui_card_page.h"\r
-#include "traing/include/TraingModel.h"\r
-#include "traing/Training_UiConfig.h"\r
-#include "components/ui_picker.h"\r
-\r
-#include "TraingSetCaluliPresenter.h"\r
-namespace OHOS\r
-{\r
-#define BUTTONOK "button1"\r
-\r
-\r
-    class TraingSetCaluliPresenter;\r
-    class TraingSetCaluliView : public View<TraingSetCaluliPresenter>\r
-    {\r
-\r
-    public:\r
-        TraingSetCaluliView();\r
-        virtual ~TraingSetCaluliView();\r
-        static TraingSetCaluliView *GetInstance(void);\r
-\r
-        void OnStart() override;\r
-        void OnSetUpView() override;\r
-        void OnTearDownView() override;\r
-        void OnStop() override;\r
-        void InitView();\r
-        void DeInit();\r
-       \r
-        void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId);\r
-        void InitList();\r
-        void PreLoad(void);\r
-\r
-    private:\r
-        UIView::OnDragListener *draglistener{nullptr};\r
-        TraingSetCaluliView(TraingSetCaluliView &&) = delete;\r
-        TraingSetCaluliView &operator=(TraingSetCaluliView &&) = delete;\r
-\r
-        UIViewGroup *container_ = nullptr;\r
-        UILabelExt *label1_ = nullptr;\r
-        UIButton *button1_ = nullptr;\r
-        UIPicker *uiPicker1_ = nullptr;\r
-\r
-        bool viewiInitStatus{false};\r
-    };\r
-} // namespace OHOS\r
-#endif // TraingSetCaluli_PRESENTER_H\r
index 8d600b2..0fd5c5d 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 10:18:50
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h
+ */
 #ifndef _TraingSet_PRESENTER_H
 #define _TraingSet_PRESENTER_H
 
@@ -6,8 +12,17 @@
 
 namespace OHOS
 {
-    class TraingSetView;
+    typedef enum
+    {
+        SET_VIEW = 0, // 主界面
+        SET_CALORIES,
+        SET_DURATION,
+        SET_STEPS,
+        SET_DISTANCE,
+        MAX_SETVIEW,
+    } SETGOLDVIEWID;
 
+    class TraingSetView;
     class TraingSetPresenter : public Presenter<TraingSetView>,
                                public UIView::OnClickListener,
                                public UIView::OnDragListener
index 55d7feb..4129f46 100644 (file)
 #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 "traing/include/TrainingSetCaluliView.h"
 #include "TraingSetPresenter.h"
 namespace OHOS
 {
@@ -33,6 +30,7 @@ namespace OHOS
 #define BUTTONCALULI "button2"
 
     class TraingSetPresenter;
+    class TrainingSetCaluliView;
     class TraingSetView : public View<TraingSetPresenter>
     {
 
@@ -47,26 +45,32 @@ namespace OHOS
         void OnStop() override;
         void InitView();
         void DeInit();
-
-        void InitList();
         void PreLoad(void);
 
+        bool ChangeSetView(int16_t thisview);
+        bool ChangeSetCaloriesView(int16_t thisview);
+        bool ChangeSetStepsView(int16_t thisview);
+        bool ChangeSetDistanceView(int16_t thisview);
+        bool ChangeSetDurationView(int16_t thisview);
+        bool ClickFunc(int16_t interface);
+        void ChangeView(int16_t hideView, int16_t showView);
+
     private:
         UIView::OnDragListener *draglistener{nullptr};
         TraingSetView(TraingSetView &&) = delete;
         TraingSetView &operator=(TraingSetView &&) = delete;
 
         UIViewGroup *container_ = nullptr;
+        UIScrollView *SetTagScrollView[4]{nullptr};
+        TrainingSetCaluliView *setcalories{nullptr};
 
         UILabelExt *labeltitle = nullptr;
         UILabelExt *labeltime = nullptr;
         UILabelExt *labelKcal = nullptr;
-
         UIImageView *imagetime = nullptr;
         UIImageView *imagcal = nullptr;
         UIImageView *imagicon1 = nullptr;
         UIImageView *imagico2 = nullptr;
-
         UIButton *butTime = nullptr;
         UIButton *butKcal = nullptr;
 
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h
new file mode 100644 (file)
index 0000000..7aeab78
--- /dev/null
@@ -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/TrainingSetCaluliView.h
+ */
+#ifndef _Training_SetCaluli_VIEW_H
+#define _Training_SetCaluli_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/TrainingSetCaluliView.h"
+
+namespace OHOS
+{
+#define BUTTONOK "button1"
+
+    class TraingSetPresenter;
+    class TrainingSetCaluliView : public View<TraingSetPresenter>
+    {
+
+    public:
+        TrainingSetCaluliView();
+        virtual ~TrainingSetCaluliView();
+        static TrainingSetCaluliView *GetInstance(void);
+        UIScrollView *SetCaloriesViewInit();
+
+        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 *SetCaloriesScrollView;
+    };
+} // namespace OHOS
+#endif
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetSeptView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetSeptView.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliPresenter.cpp
deleted file mode 100644 (file)
index 01ed4e6..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#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/TraingSetCaluliPresenter.h"\r
-// #include "TraingSetCaluliView.h"\r
-\r
-namespace OHOS\r
-{\r
-\r
-    // 当前Presenter属性实例化的内存指针\r
-    static TraingSetCaluliPresenter *g_pTraingSetCaluliPresenter = nullptr;\r
-\r
-    TraingSetCaluliPresenter::TraingSetCaluliPresenter()\r
-    {\r
-\r
-        g_pTraingSetCaluliPresenter = this;\r
-    }\r
-\r
-    TraingSetCaluliPresenter::~TraingSetCaluliPresenter()\r
-    {\r
-\r
-        g_pTraingSetCaluliPresenter = nullptr;\r
-    }\r
-\r
-    TraingSetCaluliPresenter *TraingSetCaluliPresenter::GetInstance()\r
-    {\r
-\r
-        return g_pTraingSetCaluliPresenter;\r
-    }\r
-\r
-    void TraingSetCaluliPresenter::OnStart()\r
-    {\r
-\r
-        Presenter<TraingSetCaluliView>::OnStart();\r
-    }\r
-\r
-    void TraingSetCaluliPresenter::OnPause(void)\r
-    {\r
-\r
-        Presenter<TraingSetCaluliView>::OnPause();\r
-    }\r
-\r
-    void TraingSetCaluliPresenter::OnResume(void)\r
-    {\r
-\r
-        Presenter<TraingSetCaluliView>::OnResume();\r
-    }\r
-\r
-    void TraingSetCaluliPresenter::OnStop(void)\r
-    {\r
-\r
-        Presenter<TraingSetCaluliView>::OnStop();\r
-    }\r
-\r
-    bool TraingSetCaluliPresenter::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 TraingSetCaluliPresenter::OnClick(UIView &view, const ClickEvent &event)\r
-    {\r
-        // 根据控件id查找是哪个控件触发了点击回调\r
-        if (strcmp(view.GetViewId(), BUTTONOK) == 0)\r
-        {\r
-              NativeAbility::GetInstance().Back(); // 返回函数\r
-        }\r
-        return true;\r
-    }\r
-}\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliView.cpp
deleted file mode 100644 (file)
index 2f82e46..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-\r
-#include "traing/include/TraingSetCaluliView.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> GenerateCaluliValues(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 TraingSetCaluliView *g_pTraingSetCaluliView{nullptr};\r
-\r
-    TraingSetCaluliView::TraingSetCaluliView()\r
-    {\r
-        g_pTraingSetCaluliView = this;\r
-    }\r
-\r
-    TraingSetCaluliView::~TraingSetCaluliView()\r
-    {\r
-        DeInit();\r
-        g_pTraingSetCaluliView = nullptr;\r
-    }\r
-\r
-    TraingSetCaluliView *TraingSetCaluliView::GetInstance()\r
-    {\r
-\r
-        return g_pTraingSetCaluliView;\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 TraingSetCaluliView::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 minCaluli = 100;\r
-        int maxCaluli = 1000;\r
-        int interval = 100;\r
-        std::vector<std::string> caluliValues = GenerateCaluliValues(minCaluli, maxCaluli, interval);\r
-\r
-        const char **values = new const char *[caluliValues.size()];\r
-        for (size_t i = 0; i < caluliValues.size(); i++)\r
-        {\r
-            values[i] = caluliValues[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, caluliValues.size());\r
-        // 将 UIPicker 设置为显示\r
-        picker->SetVisible(true);\r
-    }\r
-\r
-    /* InitView:初始化界面*/\r
-    void TraingSetCaluliView ::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
-        // Set additional property\r
-        button1_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);\r
-        button1_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetCaluliPresenter::GetInstance()));\r
-        container_->Add(button1_);\r
-    }\r
-    /* DeInit:删除组件 */\r
-    void TraingSetCaluliView::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 TraingSetCaluliView::PreLoad(void)\r
-    {\r
-        if (!viewiInitStatus)\r
-        {\r
-            // printf("init traingsetcaluliview\n");\r
-            InitView();\r
-            viewiInitStatus = true;\r
-        }\r
-    }\r
-    void TraingSetCaluliView::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 *>(TraingSetCaluliPresenter::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 TraingSetCaluliView::OnSetUpView()\r
-    {\r
-\r
-        View<TraingSetCaluliPresenter>::OnSetUpView();\r
-        Draw();\r
-    }\r
-\r
-    void TraingSetCaluliView::OnTearDownView()\r
-    {\r
-\r
-        View<TraingSetCaluliPresenter>::OnTearDownView();\r
-        return;\r
-    }\r
-\r
-    void TraingSetCaluliView::OnStop()\r
-    {\r
-        View<TraingSetCaluliPresenter>::OnStop();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
-    }\r
-}\r
index 1a4d76c..90e2639 100644 (file)
@@ -88,7 +88,8 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), BUTTONCALULI) == 0)\r
         {\r
-            NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGSETCALULI);\r
+            // NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGSETCALULI);\r
+            TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_CALORIES);\r
         }\r
         return true;\r
     }\r
index bdb4ce2..bcbf341 100644 (file)
@@ -36,11 +36,11 @@ namespace OHOS
     /* InitView:初始化界面*/\r
     void TraingSetView ::InitView()\r
     {\r
-        if (container_ == nullptr)\r
+        if (SetTagScrollView[SET_VIEW] == nullptr)\r
         {\r
-            container_ = new UIViewGroup();\r
-            container_->SetPosition(0, 0, 466, 466);\r
-            container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+            SetTagScrollView[SET_VIEW] = new UIScrollView();\r
+            SetTagScrollView[SET_VIEW]->SetPosition(0, 0, 466, 466);\r
+            SetTagScrollView[SET_VIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
         }\r
 \r
         //  初始化Button\r
@@ -48,8 +48,8 @@ namespace OHOS
         TraingModel::GetInstance()->InitButton(butKcal, 43, 240, 380, 100, BUTTONCALULI);\r
         butTime->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));\r
         butKcal->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));\r
-        container_->Add(butTime);\r
-        container_->Add(butKcal);\r
+        SetTagScrollView[SET_VIEW]->Add(butTime);\r
+        SetTagScrollView[SET_VIEW]->Add(butKcal);\r
 \r
         // 初始化Lable\r
         UIResourceTextId sportid = TraingModel::GetInstance()->GetSportEvent();\r
@@ -58,93 +58,170 @@ namespace OHOS
         TraingModel::GetInstance()->InitLabel(labeltime, 100, 150, 150, 35, "label2", "时长", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         TraingModel::GetInstance()->InitLabel(labelKcal, 100, 270, 150, 35, "label4", "卡路里", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
 \r
-        container_->Add(labeltitle);\r
-        container_->Add(labeltime);\r
-        container_->Add(labelKcal);\r
-\r
+        SetTagScrollView[SET_VIEW]->Add(labeltitle);\r
+        SetTagScrollView[SET_VIEW]->Add(labeltime);\r
+        SetTagScrollView[SET_VIEW]->Add(labelKcal);\r
 \r
         // 初始化Image\r
         TraingModel::GetInstance()->InitImageView(imagetime, 70, 150, 100, 100, "image1", TIME_IMAGE);\r
         TraingModel::GetInstance()->InitImageView(imagcal, 70, 270, 100, 100, "image2", CALORIES_IMAGE);\r
-\r
         TraingModel::GetInstance()->InitImageView(imagicon1, 380, 160, 100, 100, "image3", ICON_IMAGE);\r
         TraingModel::GetInstance()->InitImageView(imagico2, 380, 280, 100, 100, "image4", ICON_IMAGE);\r
-        container_->Add(imagetime);\r
-        container_->Add(imagcal);\r
-        container_->Add(imagicon1);\r
-        container_->Add(imagico2);\r
+        SetTagScrollView[SET_VIEW]->Add(imagetime);\r
+        SetTagScrollView[SET_VIEW]->Add(imagcal);\r
+        SetTagScrollView[SET_VIEW]->Add(imagicon1);\r
+        SetTagScrollView[SET_VIEW]->Add(imagico2);\r
     }\r
     /* DeInit:删除组件 */\r
     void TraingSetView::DeInit()\r
     {\r
-        container_->RemoveAll();\r
+        SetTagScrollView[SET_VIEW]->RemoveAll();\r
         // 删除Label\r
         if (labeltitle != nullptr)\r
         {\r
-            container_->Remove(labeltitle);\r
+            SetTagScrollView[SET_VIEW]->Remove(labeltitle);\r
             delete labeltitle;\r
             labeltitle = nullptr;\r
         }\r
         if (labeltime != nullptr)\r
         {\r
-            container_->Remove(labeltime);\r
+            SetTagScrollView[SET_VIEW]->Remove(labeltime);\r
             delete labeltime;\r
             labeltime = nullptr;\r
         }\r
         if (labelKcal != nullptr)\r
         {\r
-            container_->Remove(labelKcal);\r
+            SetTagScrollView[SET_VIEW]->Remove(labelKcal);\r
             delete labelKcal;\r
             labelKcal = nullptr;\r
         }\r
         // 删除Button\r
         if (butTime != nullptr)\r
         {\r
-            container_->Remove(butTime);\r
+            SetTagScrollView[SET_VIEW]->Remove(butTime);\r
             delete butTime;\r
             butTime = nullptr;\r
         }\r
         if (butKcal != nullptr)\r
         {\r
-            container_->Remove(butKcal);\r
+            SetTagScrollView[SET_VIEW]->Remove(butKcal);\r
             delete butKcal;\r
             butKcal = nullptr;\r
         }\r
         // 删除Image\r
         if (imagetime != nullptr)\r
         {\r
-            container_->Remove(imagetime);\r
+            SetTagScrollView[SET_VIEW]->Remove(imagetime);\r
             delete imagetime;\r
             imagetime = nullptr;\r
         }\r
         if (imagcal != nullptr)\r
         {\r
-            container_->Remove(imagcal);\r
+            SetTagScrollView[SET_VIEW]->Remove(imagcal);\r
             delete imagcal;\r
             imagcal = nullptr;\r
         }\r
         if (imagicon1 != nullptr)\r
         {\r
-            container_->Remove(imagicon1);\r
+            SetTagScrollView[SET_VIEW]->Remove(imagicon1);\r
             delete imagicon1;\r
             imagicon1 = nullptr;\r
         }\r
         if (imagico2 != nullptr)\r
         {\r
-            container_->Remove(imagico2);\r
+            SetTagScrollView[SET_VIEW]->Remove(imagico2);\r
             delete imagico2;\r
             imagico2 = nullptr;\r
         }\r
 \r
         // 删除容器\r
-        if (container_ != nullptr)\r
+        if (SetTagScrollView[SET_VIEW] != nullptr)\r
+        {\r
+            SetTagScrollView[SET_VIEW]->RemoveAll(); // 移除容器中的所有组件\r
+            delete SetTagScrollView[SET_VIEW];\r
+            SetTagScrollView[SET_VIEW] = nullptr;\r
+        }\r
+    }\r
+\r
+    // 跳转到设置选项列表\r
+    bool TraingSetView::ChangeSetView(int16_t thisview)\r
+    {\r
+        if (SetTagScrollView[thisview] == nullptr)\r
         {\r
-            container_->RemoveAll(); // 移除容器中的所有组件\r
-            delete container_;\r
-            container_ = nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView::ChangeSetView");\r
+            RootView::GetInstance()->Add(SetTagScrollView[thisview]);\r
         }\r
+        return true;\r
     }\r
+    bool TraingSetView::ChangeSetCaloriesView(int16_t thisview)\r
+    {\r
+        if (SetTagScrollView[thisview] == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::ChangeBandoffView");\r
+            setcalories = new TrainingSetCaluliView();\r
+            if (setcalories == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView:: new scrollView[%d] fail", thisview);\r
+                return false;\r
+            }\r
+            SetTagScrollView[thisview] = setcalories->SetCaloriesViewInit();\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
+    // 1.MainStopWatchViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
+    struct BloodViewMapper\r
+    {\r
+        const int16_t viewId;\r
+        bool (TraingSetView::*func)(int16_t thisView);\r
+    };\r
+\r
+    // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。\r
+    static const BloodViewMapper ViewMapper[] = {\r
+        {SET_VIEW, &TraingSetView::ChangeSetView},\r
+        {SET_CALORIES, &TraingSetView::ChangeSetCaloriesView},\r
+        {SET_DURATION, &TraingSetView::ChangeSetDurationView},\r
+        {SET_STEPS, &TraingSetView::ChangeSetStepsView},\r
+        {SET_DISTANCE, &TraingSetView::ChangeSetDistanceView},\r
+    };\r
 \r
+    // 3.根据传入的interface参数执行相应视图ID关联的成员函数。\r
+    bool TraingSetView::ClickFunc(int16_t interface)\r
+    {\r
+        int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[SET_VIEW]);\r
+        for (int i = 0; i < funcSize; i++)\r
+        {\r
+            if (interface == ViewMapper[i].viewId)\r
+            {\r
+                bool jug = (this->*(ViewMapper[i].func))(interface);\r
+                if (jug == false)\r
+                {\r
+                    return false;\r
+                }\r
+                return true;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    // 4.切换视图\r
+    void TraingSetView::ChangeView(int16_t hideView, int16_t showView)\r
+    {\r
+        if (hideView > MAX_SETVIEW)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView:: BloodViewId Overstep ones bounds");\r
+            return;\r
+        }\r
+        SetTagScrollView[hideView]->SetVisible(false);\r
+        ClickFunc(showView);\r
+        SetTagScrollView[showView]->SetVisible(true);\r
+        Draw();\r
+    }\r
+    /* -------------------------------------------------------------------------- */\r
     void TraingSetView::PreLoad(void)\r
     {\r
         if (!viewiInitStatus)\r
@@ -155,14 +232,16 @@ namespace OHOS
     }\r
     void TraingSetView::OnStart()\r
     {\r
-        container_ = new UIViewGroup();\r
-        if (container_ == nullptr)\r
+        SetTagScrollView[SET_VIEW] = new UIScrollView();\r
+        if (SetTagScrollView[SET_VIEW] == nullptr)\r
         {\r
             return;\r
         }\r
-        container_->SetPosition(0, 0);\r
-        container_->SetWidth(Screen::GetInstance().GetWidth());\r
-        container_->SetHeight(Screen::GetInstance().GetHeight());\r
+        SetTagScrollView[SET_VIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        SetTagScrollView[SET_VIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        SetTagScrollView[SET_VIEW]->SetScrollBlankSize(35);\r
+        SetTagScrollView[SET_VIEW]->SetReboundSize(50);\r
+        SetTagScrollView[SET_VIEW]->SetDirection(1);\r
 \r
         // 创建 draglistener 实例并设置为拖动监听器\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingSetPresenter::GetInstance());\r
@@ -170,13 +249,12 @@ namespace OHOS
         {\r
             return;\r
         }\r
-        container_->SetOnDragListener(draglistener);\r
-\r
-        container_->SetTouchable(true);\r
-        container_->SetDraggable(true);\r
+        SetTagScrollView[SET_VIEW]->SetOnDragListener(draglistener);\r
+        SetTagScrollView[SET_VIEW]->SetTouchable(true);\r
+        SetTagScrollView[SET_VIEW]->SetDraggable(true);\r
 \r
         PreLoad();\r
-        RootView::GetInstance()->Add(container_);\r
+        RootView::GetInstance()->Add(SetTagScrollView[SET_VIEW]);\r
     }\r
 \r
     void TraingSetView::OnSetUpView()\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp
new file mode 100644 (file)
index 0000000..f4e3298
--- /dev/null
@@ -0,0 +1,180 @@
+
+#include "traing/include/TrainingSetCaluliView.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> GenerateCaluliValues(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 TrainingSetCaluliView *g_pTraingSetCaluliView{nullptr};
+
+    TrainingSetCaluliView::TrainingSetCaluliView()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::TrainingSetCaluliView");
+        labeltitle_ = nullptr;
+        buttonok_ = nullptr;
+        calPicker_ = nullptr;
+        SetCaloriesScrollView = nullptr;
+        g_pTraingSetCaluliView = this;
+    }
+
+    TrainingSetCaluliView::~TrainingSetCaluliView()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::~TrainingSetCaluliView");
+        SetCaloriesScrollView->RemoveAll();
+        // 删除Label
+        if (labeltitle_ != nullptr)
+        {
+            SetCaloriesScrollView->Remove(labeltitle_);
+            delete labeltitle_;
+            labeltitle_ = nullptr;
+        }
+        // 删除Button
+        if (buttonok_ != nullptr)
+        {
+            SetCaloriesScrollView->Remove(buttonok_);
+            delete buttonok_;
+            buttonok_ = nullptr;
+        }
+
+        // 删除滚动选择器
+        if (calPicker_ != nullptr)
+        {
+            SetCaloriesScrollView->Remove(calPicker_);
+            delete calPicker_;
+            calPicker_ = nullptr;
+        }
+
+        // 删除容器
+        if (SetCaloriesScrollView != nullptr)
+        {
+            SetCaloriesScrollView->RemoveAll(); // 移除容器中的所有组件
+            delete SetCaloriesScrollView;
+            SetCaloriesScrollView = nullptr;
+        }
+        g_pTraingSetCaluliView = nullptr;
+    }
+
+    TrainingSetCaluliView *TrainingSetCaluliView::GetInstance()
+    {
+
+        return g_pTraingSetCaluliView;
+    }
+
+    /*
+    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 TrainingSetCaluliView::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 minCaluli = 100;
+        int maxCaluli = 1000;
+        int interval = 100;
+        std::vector<std::string> caluliValues = GenerateCaluliValues(minCaluli, maxCaluli, interval);
+
+        const char **values = new const char *[caluliValues.size()];
+        for (size_t i = 0; i < caluliValues.size(); i++)
+        {
+            values[i] = caluliValues[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, caluliValues.size());
+        // 将 UIPicker 设置为显示
+        picker->SetVisible(true);
+    }
+
+    /* InitView:初始化界面*/
+    UIScrollView *TrainingSetCaluliView ::SetCaloriesViewInit()
+    {
+        /* -------------------------------------------------------------------------- */
+        SetCaloriesScrollView = new UIScrollView();
+        if (SetCaloriesScrollView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::new SetCaloriesScrollView fail");
+            return nullptr;
+        }
+        SetCaloriesScrollView->SetPosition(0, 0);
+        SetCaloriesScrollView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+        SetCaloriesScrollView->SetScrollBlankSize(35);
+        SetCaloriesScrollView->SetReboundSize(50);
+        SetCaloriesScrollView->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); // 禁止垂直滑动
+        /* -------------------------------------------------------------------------- */
+        // 初始化Lable
+        TraingModel::GetInstance()->InitLabel(labeltitle_, 83, 50, 300, 35, "label1", "卡路里(千卡)", DEFAULT_VECTOR_FONT_FILENAME, 30);
+        SetCaloriesScrollView->Add(labeltitle_);
+
+        // 初始化UIPicker
+        InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
+        SetCaloriesScrollView->Add(calPicker_);
+        //  初始化Button
+        TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONOK, STR_OK, 30);
+        // Set additional property
+        buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);
+        buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));
+        SetCaloriesScrollView->Add(buttonok_);
+
+        return SetCaloriesScrollView;
+    }
+}
index 2828566..d1efe56 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 12:17:50
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp
+ */
 #include "AppViewIDs.h"
 #include "components/ui_label_ext.h"
 #include"language/font/ui_resource_string.h"
index a6961a6..d88ed8f 100644 (file)
@@ -267,7 +267,7 @@ namespace OHOS
             WEARABLE_LOGE("send_sport_cmd", "Invalid cmd value: %d", cmd);\r
             return false;\r
         }\r
-\r
+        uapi_set_screen_on_api(); // 亮屏检测\r
         NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD);\r
         ExerciseClass exerciseType = static_cast<ExerciseClass>(cmd);\r
         OHOS::TraingCardPresenter::GetInstance()->OpenSensor(exerciseType);\r
index d898a76..8501dbf 100644 (file)
@@ -18,7 +18,6 @@ set(SOURCES ${SOURCES}
 set(PUBLIC_HEADER
     ${CMAKE_CURRENT_SOURCE_DIR}/Inc
 )
-
 set(PRIVATE_HEADER
     # ${CMAKE_CURRENT_SOURCE_DIR}/../acc/lis2doc_STdC/driver
     # ${CMAKE_CURRENT_SOURCE_DIR}/../acc/lis2doc_STdC
index 0a916eb..99b515b 100644 (file)
@@ -559,7 +559,6 @@ void ScreenAlwaysOnCtr(uint8_t turnOnFlag)
     const power_display_svr_api_t *display_api = power_display_svr_get_api();
     if(turnOnFlag)
     {
-        const power_display_svr_api_t *display_api = power_display_svr_get_api();
         display_api->set_screen_set_keepon_timeout(0);
         if (display_api->get_screen_state() != SCREEN_ON)
         {
@@ -601,6 +600,18 @@ int32_t uapi_get_screen_state(void)
     return display_api->get_screen_state();
 }
 
+/**
+ * @brief 亮屏函数
+ */
+void uapi_set_screen_on_api(void)
+{
+    const power_display_svr_api_t *display_api = power_display_svr_get_api();
+    if (display_api->get_screen_state() != SCREEN_ON)
+    {
+        display_api->turn_on_screen();
+    }
+}
+
 #include "bts_le_gap.h"
 
 
index 92e87c5..c3ef81d 100644 (file)
@@ -46,6 +46,8 @@ errcode_t uapi_get_YYMMDD_Time(char *p_time, char separator);
 errcode_t uapi_get_HHMMSS_Time(char *p_time, char separator, bool include_seconds);
 /*获取星期*/
 errcode_t uapi_get_WeekStr(char *p_week);
+/*设置屏幕亮屏*/
+void uapi_set_screen_on_api(void);
 
 char *uapi_get_local_yyyymmdd_date(void);