增加省电模式UI以及接口
authorCaisking <3449750381@qq.com>
Mon, 25 Mar 2024 07:08:10 +0000 (15:08 +0800)
committerCaisking <3449750381@qq.com>
Mon, 25 Mar 2024 07:08:10 +0000 (15:08 +0800)
37 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/applist/src/ApplistModel.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveEleModel.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveElePresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveEleView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/screennotify/src/ui_screennotify.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingMusicView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingDataPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingDataView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingGPSnotePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingGPSsetPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingLimitPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMorePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMusicPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMusicView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingStrongPresenter.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-E.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-F.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/SaveEle.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Error.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Right.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger2.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/wathch.bin [new file with mode: 0644]

index 2eab106..502c615 100644 (file)
@@ -445,6 +445,13 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordPresenter.cpp
 
+    #saveele
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/saveele/src/SaveEleModel.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/saveele/src/SaveElePresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/saveele/src/SaveEleView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/saveele/src/SaveBatPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/saveele/src/SaveBatView.cpp
+
 
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/PhoneView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/PhonePresenter.cpp
index eb01650..d9ad718 100644 (file)
@@ -63,13 +63,15 @@ typedef enum : uint16_t
     VIEW_ROTATE,   // 模拟表冠
     VIEW_BLOODOXY, // 血氧饱和度界面
     VIEW_HEART,    // 心率监测
+    VIEW_SAVEELE,  // 省电模式
+    VIEW_SAVEBAT,  // 省电模式界面
     /* ----------------------------------- 训练 ----------------------------------- */
     VIEW_TRAINING,          // 训练
     VIEW_TRAININGMORE,      // 更多训练
+    VIEW_RUNNING,           // 跑步训练之列表
     VIEW_TRAININGLIMIT,     // 极限运动子列表
     VIEW_TRAININGNOMAL,     // 正常训练开始界面(除骑行,健走,跑步外)
     VIEW_TRAININGSET,       // 训练目标(时长,卡路里)
-    VIEW_TRAININGGPSSET,    // GPS训练目标(时长,距离,卡路里,步数)
     VIEW_TRAININGSETTIME,   // 设置训练时长
     VIEW_TRAININGSETCALULI, // 设置训练卡路里
     VIEW_TRAININGSETDIST,   // 设置训练路程
@@ -81,14 +83,16 @@ typedef enum : uint16_t
     VIEW_TRAININGENDNOTE,   // 结束训练提醒
     VIEW_TRAININGENDNOTE2,  // 结束训练时间太短
     VIEW_TRAININGENDDATA,   // 训练结束详细数据
-    VIEW_TRAININGGPS,       // GPS训练
-    VIEW_TRAININGGPSLACK,   // 缺少GPS
-    VIEW_TRAININGGPSNOTE,   // 连接GPS提醒
     VIEW_TRAININGSTRONG,    // 训练强度介绍
-    VIEW_TRAININGGPSLOST,   // GPS断联
-    VIEW_TRAININGGPSBACK,   // GPS回连
     VIEW_TRAININGWIN,       // 目标达成
     VIEW_TRAINING_RECORD,   // 训练记录
+    /* ---------------------------------- 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 8f3d529..242eb4f 100644 (file)
@@ -48,12 +48,14 @@ namespace OHOS
         void InitDisplayBrightnessSlice(void);
         /* --------------------------------- 经典蓝牙界面 --------------------------------- */
         void InitClassicBluetoothSlice(void);
-        /* --------------------------------测试界面------------------------------------ */
+        /* --------------------------------界面------------------------------------ */
         void InitRotateSlice(void);
         void InitBloodSlice(void);
         void InitHeartSlice(void);
         void InitMainAlipaySlice(void);
         void InitDialUpdateSlice(void);
+        void InitSaveEleSlice(void);
+        void InitSaveBatSlice(void);
         /* ----------------------------------- 训练 ----------------------------------- */
         void InitTraingSlice(void);
         void InitTraingMoreSlice(void);
index a210309..81e4f02 100644 (file)
 #include "producttest/include/testPresenter.h"
 #include "producttest/include/testView.h"
 
+#include "saveele/include/SaveEleView.h"
+#include "saveele/include/SaveElePresenter.h"
+#include "saveele/include/SaveBatView.h"
+#include "saveele/include/SaveBatPresenter.h"
+
 /* -------------------------------------------------------------------------- */
 #include "traing/include/TraingView.h"
 #include "traing/include/TraingPresenter.h"
@@ -246,7 +251,9 @@ namespace OHOS
         {VIEW_PHONERING, &NativeLauncher::InitPhoneRingSlice},
 
         {VIEW_TEST, &NativeLauncher::InittestSlice},
-
+        /* ---------------------------------- 省电模式 ---------------------------------- */
+        {VIEW_SAVEELE, &NativeLauncher::InitSaveEleSlice},
+        {VIEW_SAVEBAT, &NativeLauncher::InitSaveBatSlice},
         /* ----------------------------------- 训练 ----------------------------------- */
         {VIEW_TRAINING, &NativeLauncher::InitTraingSlice},                   // 训练
         {VIEW_TRAININGMORE, &NativeLauncher::InitTraingMoreSlice},           // 更多训练
@@ -350,7 +357,7 @@ namespace OHOS
         RebootModel::GetInstance()->RegisterLongPressEvents();
 
         // 开机检测充电状态
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is %d",get_charge_stat());
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is %d", get_charge_stat());
         if (get_charge_stat())
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is Charging!");
@@ -971,4 +978,29 @@ namespace OHOS
         NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAINING_RECORD, traingrecordview);
     }
     /* -------------------------------------------------------------------------- */
+
+    // 省电模式
+    void NativeLauncher::InitSaveEleSlice(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitSaveEleSlice");
+        SliceProxy *saveeleview = new AbilitySliceProxy<SaveEleView, SaveElePresenter>;
+        if (saveeleview == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "saveeleview");
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_SAVEELE, saveeleview);
+    }
+
+    void NativeLauncher::InitSaveBatSlice(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitSaveBatSlice");
+        SliceProxy *savebatview = new AbilitySliceProxy<SaveBatView, SaveBatPresenter>;
+        if (savebatview == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "savebatview");
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_SAVEBAT, savebatview);
+    }
 }
index 149ca8f..cc03023 100644 (file)
@@ -21,16 +21,16 @@ namespace OHOS
 {
     const AppItem g_nativeAppList[] = {
         {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, "闹钟", nullptr},
-        {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, "血氧饱和度", nullptr},
+        {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", nullptr},
+        {VIEW_DIALUPDATE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, "表盘切换", nullptr},
         {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, "指南针", nullptr},
+        {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, "血氧饱和度", nullptr},
+        {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, "心率检测", nullptr},
         {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, "室内步行", nullptr},
         {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, "天气", nullptr},
         {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, "体能训练", nullptr},
         {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, "训练记录", nullptr},
-        {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, "心率检测", nullptr},
         {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, "录音", nullptr},
-        {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", nullptr},
-        {VIEW_DIALUPDATE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, "表盘切换", nullptr},
         {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, "通话记录", nullptr},
         {VIEW_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "电话", nullptr},
 #ifdef SUPPORT_ALIPAY_SEC
index 5b0af19..e5962e5 100644 (file)
@@ -37,6 +37,7 @@ namespace OHOS
     map<string, AppViewId> g_jumpView = {
         {DROPDOWN_CLICK_SETTING, VIEW_SETTING},             // 设置
         {DROPDOWN_CLICK_BLUETOOTH, VIEW_CLASSIC_BLUETOOTH}, // 蓝牙
+        {DROPDOWN_CLICK_SAVEELE, VIEW_SAVEELE},             // 省电模式
     };
 
     // map<string, int> g_chanColor = {         { DROPDOWN_CLICK_FINDMYPHONE, DROPDOWN_DROPDOWN_FIND_PHONE_B },
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatPresenter.h
new file mode 100644 (file)
index 0000000..8136c75
--- /dev/null
@@ -0,0 +1,40 @@
+\r
+#ifndef _SAVEBAT_PRESENTER_H\r
+#define _SAVEBAT_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+#include "SaveBatView.h"\r
+#include "ModelListenerSample.h"\r
+\r
+namespace OHOS\r
+{\r
+    class SaveBatView;\r
+\r
+    class SaveBatPresenter : public Presenter<SaveBatView>,\r
+                             public UIView::OnClickListener,\r
+                             public UIView::OnDragListener,\r
+                             public UIView::OnLongPressListener,\r
+                             public ModelListenerSample\r
+    {\r
+    public:\r
+        SaveBatPresenter();\r
+        virtual ~SaveBatPresenter();\r
+\r
+        void OnStart() override;\r
+        void OnPause() override;\r
+        void OnResume() override;\r
+        void OnStop() override;\r
+\r
+        static SaveBatPresenter *GetInstance();\r
+        virtual void Notify() override;\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 OnLongPress(UIView &view, const LongPressEvent &event);\r
+    };\r
+\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatView.h b/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatView.h
new file mode 100644 (file)
index 0000000..df76203
--- /dev/null
@@ -0,0 +1,62 @@
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2024-03-25 11:15:36\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-03-25 14:31:53\r
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatView.h\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
+#ifndef _SAVEBAT_VIEW_H\r
+#define _SAVEBAT_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_image_view.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_digital_clock.h"\r
+#include "components/ui_box_progress.h"\r
+#include "SaveBatPresenter.h"\r
+#include <thread>\r
+\r
+namespace OHOS\r
+{\r
+    class SaveBatPresenter;\r
+    class SaveBatView : public View<SaveBatPresenter>\r
+    {\r
+\r
+    public:\r
+        SaveBatView();\r
+        virtual ~SaveBatView();\r
+        static SaveBatView *GetInstance(void);\r
+        void updateClock();\r
+\r
+        void OnStart() override;\r
+        void OnSetUpView() override;\r
+        void OnTearDownView() override;\r
+        void OnStop() override;\r
+        void Init();\r
+        void DeInit();\r
+        UIView *GetView();\r
+        void RefreshView();\r
+\r
+    private:\r
+        UIView::OnDragListener *draglistener{nullptr};\r
+\r
+        SaveBatView(SaveBatView &&) = delete;\r
+        SaveBatView &operator=(SaveBatView &&) = delete;\r
+        // UIViewGroup *container_ = nullptr;\r
+        UIDigitalClock *labelTime{nullptr};\r
+        UILabel *timelabel = nullptr;     // 时间\r
+        UILabel *datelabel = nullptr;     // 日期标签\r
+        UILabel *weeklabel = nullptr;     // 星期标签\r
+        UILabel *elelabel = nullptr;      // 电量标签\r
+        UIBoxProgress *progress{nullptr}; // 电池进度条\r
+        UIImageView *eleicon = nullptr;   // 电池框图标\r
+        UIButton *button_exit = nullptr;  // 退出按键\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/saveele/include/SaveEleModel.h b/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveEleModel.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveElePresenter.h b/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveElePresenter.h
new file mode 100644 (file)
index 0000000..2a3894e
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef _SAVEELE_PRESENTER_H\r
+#define _SAVEELE_PRESENTER_H\r
+ \r
+\r
+#include "Presenter.h"\r
+#include "SaveEleView.h"\r
+ \r
+namespace OHOS\r
+{\r
+    class SaveEleView;\r
+       \r
+    class SaveElePresenter : public Presenter<SaveEleView>,\r
+                                 public UIView::OnClickListener,\r
+                                 public UIView::OnDragListener\r
+    {\r
+    public:\r
+        SaveElePresenter();\r
+        virtual ~SaveElePresenter();\r
+ \r
+        void OnStart() override;  \r
+        void OnPause() override;  \r
+        void OnResume() override; \r
+        void OnStop() override;   \r
+ \r
+        static SaveElePresenter *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
+    };\r
+} //namespace OHOS\r
+ \r
+ \r
+#endif  //SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveEleView.h b/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveEleView.h
new file mode 100644 (file)
index 0000000..02a7630
--- /dev/null
@@ -0,0 +1,56 @@
+#ifndef _SAVEELE_VIEW_H\r
+#define _SAVEELE_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_image_view.h"\r
+#include "components/ui_button.h"\r
+\r
+#include "SaveElePresenter.h"\r
+namespace OHOS\r
+{\r
+    class SaveElePresenter;\r
+    class SaveEleView : public View<SaveElePresenter>\r
+    {\r
+\r
+    public:\r
+        SaveEleView();\r
+        virtual ~SaveEleView();\r
+        static SaveEleView *GetInstance(void);\r
+\r
+        void OnStart() override;\r
+        void OnSetUpView() override;\r
+        void OnTearDownView() override;\r
+        void OnStop() override;\r
+        void Init();\r
+        void DeInit();\r
+        UIView *GetView();\r
+\r
+    private:\r
+        UIView::OnDragListener *draglistener{nullptr};\r
+\r
+        // void InitImage(void);\r
+        // void InitLable(void);\r
+\r
+        // 以下控件属性通过new实例化后,add到对应root属性上;\r
+        // SaveEleView(constSaveEleView &) = delete;\r
+        // SaveEleView &operator=(constSaveEleView &) = delete;\r
+        SaveEleView(SaveEleView &&) = delete;\r
+        SaveEleView &operator=(SaveEleView &&) = delete;\r
+\r
+        UIViewGroup *container_ = nullptr;\r
+        UIScrollView *scrollView1_ = nullptr;\r
+        UILabel *label1_ = nullptr;\r
+        UILabel *label3_ = nullptr;\r
+        UILabel *label4_ = nullptr;\r
+        UIButton *button1_ = nullptr;\r
+        UIButton *button2_ = nullptr;\r
+        UIImageView *image2_ = nullptr;\r
+        UIImageView *image1_ = nullptr;\r
+        UILabel *label2_ = nullptr;\r
+    };\r
+} // namespace OHOS\r
+#endif // SaveEle_PRESENTER_H\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp
new file mode 100644 (file)
index 0000000..2743586
--- /dev/null
@@ -0,0 +1,101 @@
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2024-03-25 11:15:36\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-03-25 14:49:31\r
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2024-03-25 11:15:36\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-03-25 11:27:21\r
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+\r
+#include "saveele/include/SaveBatPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+    // 当前Presenter属性实例化的内存指针\r
+    static SaveBatPresenter *g_pSaveBatPresenter = nullptr;\r
+\r
+    SaveBatPresenter::SaveBatPresenter()\r
+    {\r
+\r
+        g_pSaveBatPresenter = this;\r
+    }\r
+\r
+    SaveBatPresenter::~SaveBatPresenter()\r
+    {\r
+\r
+        g_pSaveBatPresenter = nullptr;\r
+    }\r
+\r
+    SaveBatPresenter *SaveBatPresenter::GetInstance()\r
+    {\r
+\r
+        return g_pSaveBatPresenter;\r
+    }\r
+\r
+    void SaveBatPresenter::OnStart()\r
+    {\r
+\r
+        Presenter<SaveBatView>::OnStart();\r
+    }\r
+\r
+    void SaveBatPresenter::OnPause(void)\r
+    {\r
+\r
+        Presenter<SaveBatView>::OnPause();\r
+    }\r
+\r
+    void SaveBatPresenter::OnResume(void)\r
+    {\r
+\r
+        Presenter<SaveBatView>::OnResume();\r
+    }\r
+\r
+    void SaveBatPresenter::OnStop(void)\r
+    {\r
+\r
+        Presenter<SaveBatView>::OnStop();\r
+    }\r
+\r
+    bool SaveBatPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+    {\r
+        UNUSED(view);\r
+        // 返回 true 以消耗拖动事件\r
+        return true;\r
+    }\r
+\r
+    bool SaveBatPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        // 执行点击事件的处理逻辑\r
+        // 根据控件id查找是哪个控件触发了点击回调\r
+        // if (strcmp(view.GetViewId(), 控件ID) == 0\r
+        // 返回 true 以消耗点击事件\r
+\r
+        return true;\r
+    }\r
+    bool SaveBatPresenter::OnLongPress(UIView &view, const LongPressEvent &event)\r
+    {\r
+        // 1.长按三秒button1\r
+        // 2.退出 button1NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEELE);\r
+        // 3.返回 true 以消耗点击事件\r
+        if (strcmp(view.GetViewId(), "button_exit") == 0)\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
+        }\r
+        return true;\r
+    }\r
+    void SaveBatPresenter::Notify(void)\r
+    {\r
+        SaveBatView::GetInstance()->RefreshView();\r
+    }\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatView.cpp b/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatView.cpp
new file mode 100644 (file)
index 0000000..4c5a733
--- /dev/null
@@ -0,0 +1,323 @@
+/*\r
+ * Copyright (c) 2023 CompanyNameMagicTag.\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#include "saveele/include/SaveBatView.h"\r
+\r
+#include "common/image_cache_manager.h"\r
+#include "UiConfig.h"\r
+#include "ui_resource_image.h"\r
+#include <ui_scroll_view.h>\r
+#include <iostream>\r
+#include <chrono>\r
+#include <thread>\r
+#include "battery_hal.h"\r
+#include "string"\r
+namespace OHOS\r
+{\r
+    static SaveBatView *g_pSaveBatView{nullptr};\r
+    std::string WeekString(int wday)\r
+    {\r
+        std::string weekDays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};\r
+        return weekDays[wday];\r
+    }\r
+    SaveBatView::SaveBatView()\r
+    {\r
+        g_pSaveBatView = this;\r
+    }\r
+\r
+    SaveBatView::~SaveBatView()\r
+    {\r
+        DeInit();\r
+        g_pSaveBatView = nullptr;\r
+    }\r
+\r
+    SaveBatView *SaveBatView::GetInstance()\r
+    {\r
+\r
+        return g_pSaveBatView;\r
+    }\r
+    void SaveBatView::RefreshView()\r
+    {\r
+        // 获取当前时间\r
+        struct tm pTM;\r
+        time_t seconds;\r
+        time(&seconds);\r
+        localtime_r(&seconds, &pTM);\r
+\r
+        // 解析时间\r
+        int hour = pTM.tm_hour;\r
+        int minute = pTM.tm_min;\r
+\r
+        // 构建日期字符串\r
+        std::string yearStr = std::to_string(pTM.tm_year + 1900);\r
+        std::string monthStr = (pTM.tm_mon + 1 < 10) ? "0" + std::to_string(pTM.tm_mon + 1) : std::to_string(pTM.tm_mon + 1);\r
+        std::string weekStr = WeekString(pTM.tm_wday);\r
+        std::string dayStr = (pTM.tm_mday < 10) ? "0" + std::to_string(pTM.tm_mday) : std::to_string(pTM.tm_mday);\r
+        std::string dateStr = monthStr + "月" + dayStr + "日";\r
+\r
+        // 将时间和日期转换为字符串\r
+        std::string stringtime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" + (minute < 10 ? "0" : "") + std::to_string(minute);\r
+\r
+        // 获取电量值\r
+        float voltage = 0.0F;\r
+        uint8_t value = 0;\r
+        value = battery_get_voltage(&voltage);\r
+\r
+        // 更新界面组件\r
+        timelabel->SetText(stringtime.c_str());\r
+        datelabel->SetText(dateStr.c_str());\r
+        weeklabel->SetText(weekStr.c_str());\r
+        elelabel->SetText((std::to_string(value) + "%").c_str());\r
+        progress->SetValue(value);\r
+    }\r
+\r
+    void SaveBatView::Init()\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
+        /* --------------------------------- 电池标签初始化 -------------------------------- */\r
+        if (elelabel == nullptr)\r
+        {\r
+            elelabel = new UILabel();\r
+        }\r
+        elelabel->SetPosition(239, 52); // widget's left position and top position\r
+        elelabel->Resize(200, 60);      // widget's width and height\r
+        elelabel->SetViewId("label1");  // Set style\r
+        elelabel->SetStyle(STYLE_TEXT_FONT, 27);\r
+        elelabel->SetText("10%");\r
+        elelabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        elelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        elelabel->SetRollSpeed(0);\r
+        elelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 27);\r
+        container_->Add(elelabel);\r
+        elelabel->SetVisible(true);\r
+        /* -------------------------------- 电池框图标初始化 -------------------------------- */\r
+        if (eleicon == nullptr)\r
+        {\r
+            eleicon = new UIImageView();\r
+        }\r
+        eleicon->SetPosition(179, 52); // widget's left position and top position\r
+        eleicon->Resize(48, 30);       // widget's width and height\r
+        eleicon->SetViewId("image7");  // Set style\r
+        // Set additional property\r
+        char *image7imagesPath = "/user/res/Save_Ele/Battery-E.bin";\r
+        eleicon->SetSrc(image7imagesPath);\r
+        // Add to rootView\r
+        container_->Add(eleicon);\r
+        eleicon->SetVisible(true);\r
+        /* -------------------------------- 电池进度条初始化 -------------------------------- */\r
+        // Add BoxProgress to App\r
+        if (progress == nullptr)\r
+        {\r
+            progress = new UIBoxProgress();\r
+        }\r
+        progress->SetPosition(184, 58);   // widget's left position and top position\r
+        progress->Resize(31, 19);         // widget's width and height\r
+        progress->SetViewId("progress1"); // Set style\r
+        progress->SetValidHeight(19);\r
+        progress->SetValidWidth(31);\r
+        progress->SetValue(20);\r
+        //  Set BackgroundStyle\r
+        progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+        progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000);\r
+        // Set ForegroundStyle\r
+        progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);\r
+        progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);\r
+        progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);\r
+        char *progress1ForeImageSrc = "/user/res/Battery/Battery_Nomoal.bin";\r
+        char *progress1BackImageSrc = nullptr;\r
+        progress->SetImage(progress1ForeImageSrc, progress1BackImageSrc);\r
+        // Add to rootView\r
+        container_->Add(progress);\r
+        /* --------------------------------- 时间标签初始化 -------------------------------- */\r
+        // Add Label to App\r
+        if (timelabel == nullptr)\r
+        {\r
+            timelabel = new UILabel();\r
+        }\r
+        timelabel->SetPosition(118, 148); // widget's left position and top position\r
+        timelabel->Resize(231, 115);      // widget's width and height\r
+        timelabel->SetViewId("label2");   // Set style\r
+        timelabel->SetStyle(STYLE_TEXT_FONT, 100);\r
+        timelabel->SetStyle(STYLE_LINE_HEIGHT, 115);\r
+        // Set additional property\r
+        timelabel->SetText("23:59");\r
+        timelabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        timelabel->SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
+        timelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        timelabel->SetRollSpeed(0);\r
+        timelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 100);\r
+        // Add to rootView\r
+        container_->Add(timelabel);\r
+        timelabel->SetVisible(true);\r
+        /* --------------------------------- 日期标签初始化 -------------------------------- */\r
+        // Add Label to App\r
+        if (datelabel == nullptr)\r
+        {\r
+            datelabel = new UILabel();\r
+        }\r
+        datelabel->SetPosition(125, 268); // widget's left position and top position\r
+        datelabel->Resize(210, 35);       // widget's width and height\r
+        datelabel->SetViewId("label3");   // Set style\r
+        datelabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        datelabel->SetStyle(STYLE_LETTER_SPACE, 2);\r
+        datelabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // Set additional property\r
+        datelabel->SetText("11月3号");\r
+        datelabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        datelabel->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));\r
+        datelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        datelabel->SetRollSpeed(0);\r
+        datelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // Add to rootView\r
+        container_->Add(datelabel);\r
+        datelabel->SetVisible(true);\r
+\r
+        /* --------------------------------- 星期标签初始化 -------------------------------- */\r
+        if (weeklabel == nullptr)\r
+        {\r
+            weeklabel = new UILabel();\r
+        }\r
+        weeklabel->SetPosition(280, 268); // widget's left position and top position\r
+        weeklabel->Resize(280, 35);       // widget's width and height\r
+        weeklabel->SetViewId("label3");   // Set style\r
+        weeklabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        weeklabel->SetStyle(STYLE_LETTER_SPACE, 2);\r
+        weeklabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        // Set additional property\r
+        weeklabel->SetText("星期五");\r
+        weeklabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        weeklabel->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));\r
+        weeklabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        weeklabel->SetRollSpeed(0);\r
+        weeklabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // Add to rootView\r
+        container_->Add(weeklabel);\r
+        weeklabel->SetVisible(true);\r
+\r
+        /* --------------------------------- 退出按键初始化 -------------------------------- */\r
+        if (button_exit == nullptr)\r
+        {\r
+            button_exit = new UIButton();\r
+        }\r
+        button_exit->SetPosition(204, 350);    // widget's left position and top position\r
+        button_exit->Resize(60, 60);           // widget's width and height\r
+        button_exit->SetViewId("button_exit"); // Set style\r
+        button_exit->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+        button_exit->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+\r
+        // Set additional property\r
+        char *button1defaultImgSrc = "/user/res/Save_Ele/finger.bin";\r
+        char *button1triggeredImgSrc = nullptr;\r
+        button_exit->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
+        button_exit->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+\r
+        // Add the CallBack about events\r
+        UIView::OnLongPressListener *button1LongPress = static_cast<UIView::OnLongPressListener *>(SaveBatPresenter::GetInstance());\r
+        button_exit->SetOnLongPressListener(button1LongPress);\r
+        // Add to rootView\r
+        container_->Add(button_exit);\r
+        button_exit->SetVisible(true);\r
+    }\r
+\r
+    void SaveBatView::DeInit()\r
+    {\r
+        if (container_ != nullptr)\r
+        {\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
+        if (elelabel != nullptr)\r
+        {\r
+            delete elelabel;\r
+            elelabel = nullptr;\r
+        }\r
+        if (eleicon != nullptr)\r
+        {\r
+            delete eleicon;\r
+            eleicon = nullptr;\r
+        }\r
+        if (weeklabel != nullptr)\r
+        {\r
+            delete weeklabel;\r
+            weeklabel = nullptr;\r
+        }\r
+        if (timelabel != nullptr)\r
+        {\r
+            delete timelabel;\r
+            timelabel = nullptr;\r
+        }\r
+        if (datelabel != nullptr)\r
+        {\r
+            delete datelabel;\r
+            datelabel = nullptr;\r
+        }\r
+        if (button_exit != nullptr)\r
+        {\r
+            delete button_exit;\r
+            button_exit = nullptr;\r
+        }\r
+    }\r
+\r
+    UIView *SaveBatView::GetView()\r
+    {\r
+        Init();\r
+        return container_;\r
+    }\r
+    void SaveBatView::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
+        container_->SetTouchable(true);\r
+        container_->SetDraggable(true);\r
+\r
+        GetView();\r
+        RootView::GetInstance()->Add(container_);\r
+    }\r
+\r
+    void SaveBatView::OnSetUpView()\r
+    {\r
+\r
+        View<SaveBatPresenter>::OnSetUpView();\r
+        Draw();\r
+    }\r
+\r
+    void SaveBatView::OnTearDownView()\r
+    {\r
+\r
+        View<SaveBatPresenter>::OnTearDownView();\r
+        return;\r
+    }\r
+\r
+    void SaveBatView::OnStop()\r
+    {\r
+        View<SaveBatPresenter>::OnStop();\r
+        RootView::GetInstance()->RemoveAll();\r
+\r
+        return;\r
+    }\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleModel.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp
new file mode 100644 (file)
index 0000000..da6f4d9
--- /dev/null
@@ -0,0 +1,81 @@
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+\r
+#include "saveele/include/SaveElePresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+    // 当前Presenter属性实例化的内存指针\r
+    static SaveElePresenter *g_pSaveElePresenter = nullptr;\r
+\r
+    SaveElePresenter::SaveElePresenter()\r
+    {\r
+\r
+        g_pSaveElePresenter = this;\r
+    }\r
+\r
+    SaveElePresenter::~SaveElePresenter()\r
+    {\r
+\r
+        g_pSaveElePresenter = nullptr;\r
+    }\r
+\r
+    SaveElePresenter *SaveElePresenter::GetInstance()\r
+    {\r
+\r
+        return g_pSaveElePresenter;\r
+    }\r
+\r
+    void SaveElePresenter::OnStart()\r
+    {\r
+\r
+        Presenter<SaveEleView>::OnStart();\r
+    }\r
+\r
+    void SaveElePresenter::OnPause(void)\r
+    {\r
+\r
+        Presenter<SaveEleView>::OnPause();\r
+    }\r
+\r
+    void SaveElePresenter::OnResume(void)\r
+    {\r
+\r
+        Presenter<SaveEleView>::OnResume();\r
+    }\r
+\r
+    void SaveElePresenter::OnStop(void)\r
+    {\r
+\r
+        Presenter<SaveEleView>::OnStop();\r
+    }\r
+\r
+    bool SaveElePresenter::OnDrag(UIView &view, const DragEvent &event)\r
+    {\r
+\r
+        // if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+        // {\r
+        //     NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
+        // }\r
+        UNUSED(view);\r
+        return true;\r
+    }\r
+\r
+    bool SaveElePresenter::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        // 根据控件id查找是哪个控件触发了点击回调\r
+        // if (strcmp(view.GetViewId(), 控件ID) == 0)\r
+        if (strcmp(view.GetViewId(), "button1") == 0)\r
+        {\r
+            // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE);\r
+            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+        }\r
+        if (strcmp(view.GetViewId(), "button2") == 0)\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEBAT);\r
+        }\r
+        return true;\r
+    }\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp b/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp
new file mode 100644 (file)
index 0000000..39c6814
--- /dev/null
@@ -0,0 +1,342 @@
+\r
+\r
+#include "saveele/include/SaveEleView.h"\r
+\r
+#include "common/image_cache_manager.h"\r
+#include "UiConfig.h"\r
+#include "ui_resource_image.h"\r
+#include <ui_scroll_view.h>\r
+#include "components/ui_button.h"\r
+namespace OHOS\r
+{\r
+\r
+    static SaveEleView *g_pSaveEleView{nullptr};\r
+\r
+    SaveEleView::SaveEleView()\r
+    {\r
+\r
+        g_pSaveEleView = this;\r
+    }\r
+\r
+    SaveEleView::~SaveEleView()\r
+    {\r
+        DeInit();\r
+        g_pSaveEleView = nullptr;\r
+    }\r
+\r
+    SaveEleView *SaveEleView::GetInstance()\r
+    {\r
+\r
+        return g_pSaveEleView;\r
+    }\r
+\r
+    void SaveEleView::Init()\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
+\r
+        // Add ScrollView to App\r
+        if (scrollView1_ == nullptr)\r
+        {\r
+            scrollView1_ = new UIScrollView();\r
+        }\r
+        scrollView1_->SetPosition(0, 0);        // widget's left position and top position\r
+        scrollView1_->Resize(466, 466);         // widget's width and height\r
+        scrollView1_->SetViewId("scrollView1"); // Set style\r
+        scrollView1_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+        // Set additional property\r
+        scrollView1_->SetDirection(1);\r
+\r
+        // Add the CallBack about events\r
+        UIView::OnDragListener *scrollView1Drag = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
+        scrollView1_->SetOnDragListener(scrollView1Drag);\r
+        // Add to rootView\r
+        container_->Add(scrollView1_);\r
+        scrollView1_->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        if (label1_ == nullptr)\r
+        {\r
+            label1_ = new UILabel();\r
+        }\r
+        label1_->SetPosition(173, 52); // widget's left position and top position\r
+        label1_->Resize(120, 35);      // widget's width and height\r
+        label1_->SetViewId("label1");  // Set style\r
+        label1_->SetStyle(STYLE_TEXT_FONT, 30);\r
+        label1_->SetStyle(STYLE_LINE_SPACE, 0);\r
+        label1_->SetStyle(STYLE_LETTER_SPACE, 1);\r
+        label1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        // Set additional property\r
+        label1_->SetText("省电模式");\r
+        label1_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        label1_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label1_->SetRollSpeed(0);\r
+        label1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to scrollView1\r
+        scrollView1_->Add(label1_);\r
+        label1_->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        if (label3_ == nullptr)\r
+        {\r
+            label3_ = new UILabel();\r
+        }\r
+        label3_->SetPosition(33, 440); // widget's left position and top position\r
+        label3_->Resize(200, 60);      // widget's width and height\r
+        label3_->SetViewId("label3");  // Set style\r
+        label3_->SetStyle(STYLE_TEXT_FONT, 30);\r
+        label3_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        // Set additional property\r
+        label3_->SetText("长按屏幕3秒以上或充电可退\n出省电模式");\r
+        label3_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        label3_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xc3, 0x00, 0xff));\r
+        label3_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label3_->SetRollSpeed(0);\r
+        label3_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to scrollView1\r
+        scrollView1_->Add(label3_);\r
+        label3_->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        if (label4_ == nullptr)\r
+        {\r
+            label4_ = new UILabel();\r
+        }\r
+        label4_->SetPosition(173, 547); // widget's left position and top position\r
+        label4_->Resize(400, 395);      // widget's width and height\r
+        label4_->SetViewId("label4");   // Set style\r
+        label4_->SetStyle(STYLE_TEXT_FONT, 30);\r
+        label4_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        // Set additional property\r
+        label4_->SetText("是否开启");\r
+        label4_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        label4_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+        label4_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label4_->SetRollSpeed(0);\r
+        label4_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to scrollView1\r
+        scrollView1_->Add(label4_);\r
+        label4_->SetVisible(true);\r
+\r
+        // Add Button to App\r
+        if (button1_ == nullptr)\r
+        {\r
+            button1_ = new UIButton();\r
+        }\r
+        button1_->SetPosition(110, 636); // widget's left position and top position\r
+        button1_->Resize(100, 100);      // widget's width and height\r
+        button1_->SetViewId("button1");  // Set style\r
+        button1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+        button1_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+\r
+        char *button1defaultImgSrc = "/user/res/Save_Ele/Save_Error.bin";\r
+        char *button1triggeredImgSrc = nullptr;\r
+        button1_->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
+        button1_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff1919, UIButton::PRESSED);\r
+        button1_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+\r
+        // Add the CallBack about events\r
+        UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
+        button1_->SetOnClickListener(button1Click);\r
+        // Add to scrollView1\r
+        scrollView1_->Add(button1_);\r
+        button1_->SetVisible(true);\r
+\r
+        // Add Button to App\r
+        if (button2_ == nullptr)\r
+        {\r
+            button2_ = new UIButton();\r
+        }\r
+        button2_->SetPosition(255, 636); // widget's left position and top position\r
+        button2_->Resize(100, 100);      // widget's width and height\r
+        button2_->SetViewId("button2");  // Set style\r
+        button2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+        button2_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+\r
+        char *button2defaultImgSrc = "/user/res/Save_Ele/Save_Right.bin";\r
+        char *button2triggeredImgSrc = nullptr;\r
+        button2_->SetImageSrc(button2defaultImgSrc, button2triggeredImgSrc);\r
+        button2_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff19ff5e, UIButton::PRESSED);\r
+        button2_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+\r
+        // Add the CallBack about events\r
+        UIView::OnClickListener *button2Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
+        button2_->SetOnClickListener(button2Click);\r
+        // Add to scrollView1\r
+        scrollView1_->Add(button2_);\r
+        button2_->SetVisible(true);\r
+\r
+        // Add ImageView to App\r
+        if (image2_ == nullptr)\r
+        {\r
+            image2_ = new UIImageView();\r
+        }\r
+        image2_->SetPosition(183, 775); // widget's left position and top position\r
+        image2_->Resize(100, 100);      // widget's width and height\r
+        image2_->SetViewId("image2");   // Set style\r
+\r
+        // Set additional property\r
+\r
+        // Add to scrollView1\r
+        scrollView1_->Add(image2_);\r
+        image2_->SetVisible(true);\r
+\r
+        // Add ImageView to App\r
+        if (image1_ == nullptr)\r
+        {\r
+            image1_ = new UIImageView();\r
+        }\r
+        image1_->SetPosition(188, 121); // widget's left position and top position\r
+        image1_->Resize(90, 90);        // widget's width and height\r
+        image1_->SetViewId("image1");   // Set style\r
+\r
+        // Set additional property\r
+        char *image1imagesPath = "/user/res/Save_Ele/SaveEle.bin";\r
+        image1_->SetSrc(image1imagesPath);\r
+\r
+        // Add to scrollView1\r
+        scrollView1_->Add(image1_);\r
+        image1_->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        if (label2_ == nullptr)\r
+        {\r
+            label2_ = new UILabel();\r
+        }\r
+        label2_->SetPosition(33, 217); // widget's left position and top position\r
+        label2_->Resize(400, 395);     // widget's width and height\r
+        label2_->SetViewId("label2");  // Set style\r
+        label2_->SetStyle(STYLE_TEXT_FONT, 30);\r
+        label2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        // Set additional property\r
+        label2_->SetText("开启省电模式会关闭非必要的\n蓝牙连接(通话/耳机蓝牙),以\n及传感器监测(心率监测及血\n氧监测等会停止)等功能\n 仅保留时间日期可查看");\r
+        label2_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        label2_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+        label2_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label2_->SetRollSpeed(0);\r
+        label2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to scrollView1\r
+        scrollView1_->Add(label2_);\r
+        label2_->SetVisible(true);\r
+    }\r
+\r
+    void SaveEleView::DeInit()\r
+    {\r
+        if (container_ != nullptr)\r
+        {\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
+        if (scrollView1_ != nullptr)\r
+        {\r
+            delete scrollView1_;\r
+            scrollView1_ = nullptr;\r
+        }\r
+        if (label1_ != nullptr)\r
+        {\r
+            delete label1_;\r
+            label1_ = nullptr;\r
+        }\r
+        if (label3_ != nullptr)\r
+        {\r
+            delete label3_;\r
+            label3_ = nullptr;\r
+        }\r
+        if (label4_ != nullptr)\r
+        {\r
+            delete label4_;\r
+            label4_ = nullptr;\r
+        }\r
+        if (button1_ != nullptr)\r
+        {\r
+            delete button1_;\r
+            button1_ = nullptr;\r
+        }\r
+        if (button2_ != nullptr)\r
+        {\r
+            delete button2_;\r
+            button2_ = nullptr;\r
+        }\r
+        if (image2_ != nullptr)\r
+        {\r
+            delete image2_;\r
+            image2_ = nullptr;\r
+        }\r
+        if (image1_ != nullptr)\r
+        {\r
+            delete image1_;\r
+            image1_ = nullptr;\r
+        }\r
+        if (label2_ != nullptr)\r
+        {\r
+            delete label2_;\r
+            label2_ = nullptr;\r
+        }\r
+    }\r
+\r
+    UIView *SaveEleView::GetView()\r
+    {\r
+        Init();\r
+        return container_;\r
+    }\r
+    void SaveEleView::OnStart()\r
+    {\r
+        container_ = new UIScrollView();\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() * 2);\r
+\r
+        // 创建 draglistener 实例并设置为拖动监听器\r
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
+        if (draglistener == nullptr)\r
+        {\r
+            return;\r
+        }\r
+        container_->SetOnDragListener(draglistener);\r
+\r
+        container_->SetTouchable(true);\r
+        container_->SetDraggable(true);\r
+\r
+        GetView();\r
+        RootView::GetInstance()->Add(container_);\r
+    }\r
+\r
+    void SaveEleView::OnSetUpView()\r
+    {\r
+\r
+        View<SaveElePresenter>::OnSetUpView();\r
+        Draw();\r
+    }\r
+\r
+    void SaveEleView::OnTearDownView()\r
+    {\r
+\r
+        View<SaveElePresenter>::OnTearDownView();\r
+        return;\r
+    }\r
+\r
+    void SaveEleView::OnStop()\r
+    {\r
+        View<SaveElePresenter>::OnStop();\r
+        RootView::GetInstance()->RemoveAll();\r
+        return;\r
+    }\r
+}\r
index 16fc77f..1a98c4c 100644 (file)
 #include "ui_screennotify.h"
 
 #ifdef __cplusplus
-extern "C" {
+extern "C"
+{
 #endif
-static uint32_t g_back_to_home_interval = 5;
+    static uint32_t g_back_to_home_interval = 5;
 
-// 需要屏蔽掉的slice,ignore_slice_ids数组中的slice灭屏超时后不会调转到默认界面
-uint16_t ignore_slice_ids[] = {
-    VIEW_INVALID,
-    VIEW_SETTING,
-    VIEW_UISAMPLE,
-    VIEW_BLOODOXY,//血氧功能
+    // 需要屏蔽掉的slice,ignore_slice_ids数组中的slice灭屏超时后不会调转到默认界面
+    uint16_t ignore_slice_ids[] = {
+        VIEW_INVALID,
+        VIEW_SETTING,
+        VIEW_UISAMPLE,
+        VIEW_BLOODOXY, // 血氧功能
+        VIEW_HEART,    // 心率检测
+        VIEW_SAVEBAT,  // 省电模式
 #ifdef SUPPORT_ALIPAY_SEC
-    VIEW_MAIN_ALIPAY,
+        VIEW_MAIN_ALIPAY,
 #endif
-};
+    };
 
-static std::list<ScreenStatusNotifyCallback> g_callback;
+    static std::list<ScreenStatusNotifyCallback> g_callback;
 
-static void ChangeToHomeView(void)
-{
-    screen_context_t *sc = power_display_get_screen_context();
-    uint16_t current_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
-    for (uint16_t i = 0; i < sizeof(ignore_slice_ids) / sizeof(uint16_t); i++) {
-        if (ignore_slice_ids[i] == current_slice_id) {
-            return;
+    static void ChangeToHomeView(void)
+    {
+        screen_context_t *sc = power_display_get_screen_context();
+        uint16_t current_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
+        for (uint16_t i = 0; i < sizeof(ignore_slice_ids) / sizeof(uint16_t); i++)
+        {
+            if (ignore_slice_ids[i] == current_slice_id)
+            {
+                return;
+            }
         }
-    }
-    if (sc->screen_off_time_interval > g_back_to_home_interval) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "screen off time = %u",
-                      sc->screen_off_time_interval);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetNativeAbilityState = %u",
-                      OHOS::NativeAbility::GetInstance().GetNativeAbilityState());
-        if (OHOS::NativeAbility::GetInstance().GetNativeAbilityState() == STATE_ACTIVE) {
-            if (current_slice_id != VIEW_MAIN) { // 主表盘
-                OHOS::NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
-            } else {
-                // if (!OHOS::MainViewSample::GetInstance()->IsMainClockPage()) {
+        if (sc->screen_off_time_interval > g_back_to_home_interval)
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "screen off time = %u",
+                          sc->screen_off_time_interval);
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetNativeAbilityState = %u",
+                          OHOS::NativeAbility::GetInstance().GetNativeAbilityState());
+            if (OHOS::NativeAbility::GetInstance().GetNativeAbilityState() == STATE_ACTIVE)
+            {
+                if (current_slice_id != VIEW_MAIN)
+                { // 主表盘
+                    OHOS::NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+                }
+                else
+                {
+                    // if (!OHOS::MainViewSample::GetInstance()->IsMainClockPage()) {
                     // 当前页面为主表盘的其他页面时,切换回主表盘页面
                     // OHOS::MainViewSample::GetInstance()->SwitchToClockPage();
-                // }
+                    // }
+                }
             }
         }
     }
-}
 
-void notify_screen_on_event(void)
-{
-    for (auto callback : g_callback) {
-        callback(SCREEN_STATUS_ON);
+    void notify_screen_on_event(void)
+    {
+        for (auto callback : g_callback)
+        {
+            callback(SCREEN_STATUS_ON);
+        }
+        GraphicService::GetInstance()->PostGraphicEvent(ChangeToHomeView);
     }
-    GraphicService::GetInstance()->PostGraphicEvent(ChangeToHomeView);
-}
 
-void notify_screen_off_event(void)
-{
-    for (auto callback : g_callback) {
-        callback(SCREEN_STATUS_OFF);
+    void notify_screen_off_event(void)
+    {
+        for (auto callback : g_callback)
+        {
+            callback(SCREEN_STATUS_OFF);
+        }
     }
-}
 
-void set_back_to_home_interval(uint32_t time_sec)
-{
-    g_back_to_home_interval = time_sec;
-}
+    void set_back_to_home_interval(uint32_t time_sec)
+    {
+        g_back_to_home_interval = time_sec;
+    }
 
-uint32_t get_back_to_home_interval(void)
-{
-    return g_back_to_home_interval;
-}
+    uint32_t get_back_to_home_interval(void)
+    {
+        return g_back_to_home_interval;
+    }
 
-void registerNotifyScreenStatus(ScreenStatusNotifyCallback callback)
-{
-    if (callback != nullptr) {
-        g_callback.push_back(callback);
+    void registerNotifyScreenStatus(ScreenStatusNotifyCallback callback)
+    {
+        if (callback != nullptr)
+        {
+            g_callback.push_back(callback);
+        }
     }
-}
 
-void deregisterNotifyScreenStatus(ScreenStatusNotifyCallback callback)
-{
-    if (callback != nullptr) {
-        g_callback.remove(callback);
+    void deregisterNotifyScreenStatus(ScreenStatusNotifyCallback callback)
+    {
+        if (callback != nullptr)
+        {
+            g_callback.remove(callback);
+        }
     }
-}
 
 #ifdef __cplusplus
 }
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingMusicView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingMusicView.h
new file mode 100644 (file)
index 0000000..e69de29
index 012eeff..4bfeb01 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: Caisking 3449750381@qq.com
  * @Date: 2024-03-19 18:18:30
  * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-22 15:24:40
+ * @LastEditTime: 2024-03-25 10:26:23
  * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
index 5004cff..52c7ec1 100644 (file)
@@ -1,3 +1,11 @@
+/*** \r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2024-03-19 17:37:19\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-03-25 10:15:08\r
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingDataPresenter.cpp\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
 \r
@@ -54,8 +62,7 @@ namespace OHOS
     bool TraingDataPresenter::OnDragEnd(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
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
         {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGCONTROL);\r
         }\r
index 659715f..87832a0 100644 (file)
@@ -132,7 +132,7 @@ namespace OHOS
         InitImageView(image2_, 208, 297, 20, 20, "image2", ARROWS_IMAGE);\r
         InitImageView(image3_, 98, 314, 270, 20, "image3", SPORT_STRENGTH_IMAGE);\r
         InitImageView(image4_, 225, 396, 16, 10, "image4", INCO_UP_IMAGE);\r
-        InitImageView(image5_, 193, 421, 80, 20, "image5", CONTROL_POINT_IMAGE);\r
+        InitImageView(image5_, 193, 421, 80, 20, "image5", DATA_POINT_IMAGE);\r
         container_->Add(image1_);\r
         container_->Add(image2_);\r
         container_->Add(image3_);\r
index b9c2bab..02cb274 100644 (file)
@@ -1,3 +1,11 @@
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-19 17:37:19
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-25 09:46:15
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingGPSnotePresenter.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
 #include "AppViewIDs.h"
 #include "NativeAbility.h"
 
@@ -61,8 +69,7 @@ namespace OHOS
     bool TraingGPSnotePresenter::OnDragEnd(UIView &view, const DragEvent &event)
     {
 
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&
-            (event.GetDeltaX() > 40) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
         {
             uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
             NativeAbility::GetInstance().ChangeSlice(preSlice);
index 66f8f02..7a9f848 100644 (file)
@@ -61,8 +61,7 @@ namespace OHOS
     bool TraingGPSsetPresenter::OnDragEnd(UIView &view, const DragEvent &event)
     {
 
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&
-            (event.GetDeltaX() > 40) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
         {
             uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
             NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGGPS);
index e2cd6a6..ea9e625 100644 (file)
@@ -1,4 +1,4 @@
-/*** \r
+/***\r
  * @Author: Caisking 3449750381@qq.com\r
  * @Date: 2024-03-19 17:37:19\r
  * @LastEditors: Caisking 3449750381@qq.com\r
@@ -69,8 +69,7 @@ namespace OHOS
     bool TraingLimitPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
 \r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
-            (event.GetDeltaX() > 30) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
         {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE);\r
         }\r
index 9a53331..0f64db9 100644 (file)
@@ -73,7 +73,10 @@ namespace OHOS
                 // MainViewSample::GetInstance()->SetPage(CardId::TRAINING);\r
                 return true;\r
             }\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            else\r
+            {\r
+                NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING);\r
+            }\r
         }\r
         UNUSED(view);\r
         return true;\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMusicPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMusicPresenter.cpp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMusicView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingMusicView.cpp
new file mode 100644 (file)
index 0000000..e69de29
index 2ec6210..6ec1cde 100644 (file)
@@ -1,3 +1,11 @@
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2024-03-19 17:37:19\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-03-25 09:56:37\r
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
 \r
@@ -60,16 +68,21 @@ namespace OHOS
     }\r
     bool TraingNomalPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
-\r
-        uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Id:[%d]", preSlice);\r
-        if (preSlice == VIEW_MAIN)\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
-            // MainViewSample::GetInstance()->SetPage(CardId::TRAINING);\r
-            return true;\r
+            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Id:[%d]", preSlice);\r
+            if (preSlice == VIEW_MAIN)\r
+            {\r
+                NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
+                // MainViewSample::GetInstance()->SetPage(CardId::TRAINING);\r
+                return true;\r
+            }\r
+            else\r
+            {\r
+                NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT);\r
+            }\r
         }\r
-        NativeAbility::GetInstance().ChangeSlice(preSlice);\r
         UNUSED(view);\r
         return true;\r
     }\r
index 9e3bdbf..6bac03e 100644 (file)
@@ -1,3 +1,10 @@
+/*** 
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-19 17:37:20
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-25 09:43:53
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingStrongPresenter.cpp
+ */
 #include "AppViewIDs.h"
 #include "NativeAbility.h"
 
@@ -61,8 +68,7 @@ namespace OHOS
     bool TraingStrongPresenter::OnDragEnd(UIView &view, const DragEvent &event)
     {
 
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&
-            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
         {
             NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGDATA);
         }
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-E.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-E.bin
new file mode 100644 (file)
index 0000000..f6fe312
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-E.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-F.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-F.bin
new file mode 100644 (file)
index 0000000..7b3c3a8
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Battery-F.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/SaveEle.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/SaveEle.bin
new file mode 100644 (file)
index 0000000..59d8ed9
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/SaveEle.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Error.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Error.bin
new file mode 100644 (file)
index 0000000..fb89e49
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Error.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Right.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Right.bin
new file mode 100644 (file)
index 0000000..2e14630
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/Save_Right.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger.bin
new file mode 100644 (file)
index 0000000..9cbfbac
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger2.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger2.bin
new file mode 100644 (file)
index 0000000..b08089f
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/finger2.bin differ
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/wathch.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/wathch.bin
new file mode 100644 (file)
index 0000000..7ae6bf2
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/Save_Ele/wathch.bin differ