主界面增加心率卡片
authorCaisking <3449750381@qq.com>
Mon, 15 Jan 2024 11:43:50 +0000 (19:43 +0800)
committerCaisking <3449750381@qq.com>
Mon, 15 Jan 2024 11:43:50 +0000 (19:43 +0800)
17 files changed:
code/sdk/application/wearable/nativeapp/CMakeLists.txt
code/sdk/application/wearable/nativeapp/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/nativeapp/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/nativeapp/nativeui/applist/src/ApplistModel.cpp
code/sdk/application/wearable/nativeapp/nativeui/blood/include/BloodPresenter.h [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/blood/include/BloodView.h
code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodErrorPresenter.cpp
code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodNotePresenter.cpp
code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodPresenter.cpp [deleted file]
code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodShowPresenter.cpp
code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodView.cpp
code/sdk/application/wearable/nativeapp/nativeui/dial/include/Digital_clockView.h
code/sdk/application/wearable/nativeapp/nativeui/dial/src/Digital_clockView.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/include/MainViewSample.h
code/sdk/application/wearable/nativeapp/nativeui/main/src/MainSwipeViewGroup.cpp
code/sdk/application/wearable/nativeapp/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/nativeapp/nativeui/screensetting/include/ScreenModels.h

index 4f1e9c3..dc557da 100755 (executable)
@@ -231,7 +231,7 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/getpic/src/TakePicView.cpp\r
     #Ѫ��\r
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodView.cpp\r
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodPresenter.cpp\r
+\r
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodShowView.cpp\r
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodShowPresenter.cpp   \r
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodCheckView.cpp\r
index 9953661..2dc381c 100755 (executable)
@@ -48,7 +48,7 @@ typedef enum : uint16_t
     VIEW_GETPIC,   // 手势拍照\r
     VIEW_TAKEPIC,  // 拍照\r
 \r
-    VIEW_BLOOD,      // 血氧\r
+    //VIEW_BLOOD,      // 血氧\r
     VIEW_BLOODSHOW,  // 血氧说明\r
     VIEW_BLOODCHECK, // 血氧检查\r
     VIEW_BLOODERROR, // 血氧监测错误\r
index 3afa01a..d91b014 100755 (executable)
@@ -89,7 +89,7 @@
 #include "phone/include/PhoneRingView.h"\r
 #include "phone/include/PhoneRingPresenter.h"\r
 #include "blood/include/BloodView.h"\r
-#include "blood/include/BloodPresenter.h"\r
+\r
 #include "blood/include/BloodCheckPresenter.h"\r
 #include "blood/include/BloodCheckView.h"\r
 #include "blood/include/BloodShowPresenter.h"\r
@@ -285,7 +285,7 @@ static const AppViewMapper SLICE_MAPPER[] = {
     {VIEW_PHONECALLING, &NativeLauncher::InitPhoneCallingSlice},\r
     {VIEW_PHONECALLUP, &NativeLauncher::InitPhoneCallupSlice},\r
     {VIEW_PHONERING, &NativeLauncher::InitPhoneRingSlice},\r
-    {VIEW_BLOOD, &NativeLauncher::InitBloodSlice},                              //血氧\r
+    //{VIEW_BLOOD, &NativeLauncher::InitBloodSlice},                              //血氧\r
     {VIEW_BLOODSHOW, &NativeLauncher::InitBloodShowSlice},\r
     {VIEW_BLOODCHECK, &NativeLauncher::InitBloodCheckSlice},\r
     {VIEW_BLOODERROR, &NativeLauncher::InitBloodErrorSlice},\r
@@ -820,17 +820,17 @@ void NativeLauncher::InitPhoneRingSlice(void)
     NativeAbility::GetInstance().AddSliceProxy(VIEW_PHONERING, phoneringview);\r
 }\r
 \r
-void NativeLauncher::InitBloodSlice(void) //血氧\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitBloodSlice");\r
-    SliceProxy *bloodview = new AbilitySliceProxy<BloodView, BloodPresenter>;\r
-    if (bloodview == nullptr)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bloodview");\r
-        return;\r
-    }\r
-    NativeAbility::GetInstance().AddSliceProxy(VIEW_BLOOD, bloodview);\r
-}\r
+// void NativeLauncher::InitBloodSlice(void) //血氧\r
+// {\r
+//     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitBloodSlice");\r
+//     SliceProxy *bloodview = new AbilitySliceProxy<BloodView, BloodPresenter>;\r
+//     if (bloodview == nullptr)\r
+//     {\r
+//         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bloodview");\r
+//         return;\r
+//     }\r
+//     NativeAbility::GetInstance().AddSliceProxy(VIEW_BLOOD, bloodview);\r
+// }\r
 \r
 void NativeLauncher::InitBloodShowSlice(void)\r
 {\r
index 74cf394..ea03f2a 100755 (executable)
@@ -40,7 +40,7 @@ namespace OHOS
     {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, "语音助手", nullptr},\r
     {VIEW_BLOODPRESSURE, PNG_APPLIST_BLOODPRESSURE_IMAGE, PNG_APPLIST_BLOODPRESSURE_IMAGE, "睡眠监测", nullptr},\r
     {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, "体温检测", nullptr},\r
-    {VIEW_BLOOD, PNG_APPLIST_BLOOD_IMAGE, PNG_APPLIST_BLOOD_IMAGE, "血氧监测", nullptr},\r
+    //{VIEW_BLOOD, PNG_APPLIST_BLOOD_IMAGE, PNG_APPLIST_BLOOD_IMAGE, "血氧监测", nullptr},\r
     {VIEW_HEARTRATEREMIND, PNG_APPLIST_HEARTRATE_IMAGE, PNG_APPLIST_HEARTRATE_IMAGE, "心率检测", nullptr},\r
     {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, "示例", nullptr},\r
 };\r
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/blood/include/BloodPresenter.h b/code/sdk/application/wearable/nativeapp/nativeui/blood/include/BloodPresenter.h
deleted file mode 100755 (executable)
index 9a0911b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _Blood_PRESENTER_H\r
-#define _Blood_PRESENTER_H\r
-\r
-#include "Presenter.h"\r
-#include "BloodView.h"\r
-\r
-namespace OHOS\r
-{\r
-    class BloodView;\r
-\r
-    class BloodPresenter : public Presenter<BloodView>,\r
-                               public UIView::OnClickListener,\r
-                               public UIView::OnDragListener\r
-    {\r
-    public:\r
-        BloodPresenter();\r
-        virtual ~BloodPresenter();\r
-\r
-        void OnStart() override;\r
-        void OnPause() override;\r
-        void OnResume() override;\r
-        void OnStop() override;\r
-\r
-        static BloodPresenter *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
-#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
index 12f88cd..3a40c12 100755 (executable)
@@ -1,3 +1,13 @@
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2023-12-12 16:55:23\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-01-15 17:21:42\r
+ * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/blood/include/BloodView.h\r
+ * @Description:\r
+ * @\r
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved.\r
+ */\r
 #ifndef _Blood_VIEW_H\r
 #define _Blood_VIEW_H\r
 \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_card_page.h"\r
+\r
+\r
 \r
-#include "BloodPresenter.h"\r
 namespace OHOS\r
 {\r
 \r
 #define WARNING "button1"\r
 #define CHECK "button2"\r
 \r
-    class BloodPresenter;\r
-    class BloodView : public View<BloodPresenter>\r
+    class BloodView : public UICardPage\r
     {\r
 \r
     public:\r
@@ -27,27 +38,28 @@ namespace OHOS
         virtual ~BloodView();\r
         static BloodView *GetInstance(void);\r
 \r
-        void OnStart() override;\r
-        void OnSetUpView() override;\r
-        void OnTearDownView() override;\r
-        void OnStop() override;\r
-        void Init();\r
+        bool InitView();\r
         void DeInit();\r
 \r
-        UIView *GetView();\r
+        bool AddButton();\r
+        bool InitLable();\r
+        bool Initbackground();\r
+\r
+        void PreLoad(void) override;\r
+        void UnLoad(void) override;\r
 \r
     private:\r
         UIView::OnDragListener *draglistener{nullptr};\r
         BloodView(BloodView &&) = delete;\r
         BloodView &operator=(BloodView &&) = delete;\r
 \r
-        UIViewGroup *container_ = nullptr;\r
-        UIImageView *image1_ = nullptr;\r
-        UIButton *button1_ = nullptr;\r
-        UILabelButtonExt *labelButton1_ = nullptr;\r
-        UILabel *label2_ = nullptr;\r
-        UILabel *label1_ = nullptr;\r
-        UILabel *label3_ = nullptr;\r
+        UIImageView *background = nullptr;\r
+        UIButton *warnButton = nullptr;\r
+        UILabelButtonExt *monitorButton = nullptr;\r
+        UILabel *titleLabel = nullptr;\r
+        UILabel *bloodLabel = nullptr;\r
+        UILabel *timeLabel = nullptr;\r
+        bool viewiInitStatus{false};\r
     };\r
 } // namespace OHOS\r
 #endif // Blood_PRESENTER_H\r
index a9cb09e..1fe2078 100755 (executable)
@@ -72,7 +72,7 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), LABELBUTTONSTOP) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_BLOOD);\r
+            //NativeAbility::GetInstance().ChangeSlice(VIEW_BLOOD);\r
         }\r
 \r
         return true;\r
index d93ea9f..1c6af06 100755 (executable)
@@ -1,3 +1,13 @@
+/*** \r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2023-12-12 16:55:23\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-01-15 17:48:26\r
+ * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodNotePresenter.cpp\r
+ * @Description: \r
+ * @\r
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved. \r
+ */\r
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
 \r
@@ -68,7 +78,7 @@ namespace OHOS
         // 根据控件id查找是哪个控件触发了点击回调\r
         if (strcmp(view.GetViewId(), NOTEBUTTON) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_BLOOD);\r
+            //NativeAbility::GetInstance().ChangeSlice(VIEW_BLOOD);\r
         }\r
     \r
         return true;\r
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodPresenter.cpp
deleted file mode 100755 (executable)
index 3f67e44..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#include "AppViewIDs.h"\r
-#include "NativeAbility.h"\r
-\r
-#include "blood/include/BloodPresenter.h"\r
-\r
-namespace OHOS\r
-{\r
-\r
-    // 当前Presenter属性实例化的内存指针\r
-    static BloodPresenter *g_pBloodPresenter = nullptr;\r
-\r
-    BloodPresenter::BloodPresenter()\r
-    {\r
-\r
-        g_pBloodPresenter = this;\r
-    }\r
-\r
-    BloodPresenter::~BloodPresenter()\r
-    {\r
-\r
-        g_pBloodPresenter = nullptr;\r
-    }\r
-\r
-    BloodPresenter *BloodPresenter::GetInstance()\r
-    {\r
-\r
-        return g_pBloodPresenter;\r
-    }\r
-\r
-    void BloodPresenter::OnStart()\r
-    {\r
-\r
-        Presenter<BloodView>::OnStart();\r
-    }\r
-\r
-    void BloodPresenter::OnPause(void)\r
-    {\r
-\r
-        Presenter<BloodView>::OnPause();\r
-    }\r
-\r
-    void BloodPresenter::OnResume(void)\r
-    {\r
-\r
-        Presenter<BloodView>::OnResume();\r
-    }\r
-\r
-    void BloodPresenter::OnStop(void)\r
-    {\r
-\r
-        Presenter<BloodView>::OnStop();\r
-    }\r
-\r
-    bool BloodPresenter::OnDrag(UIView &view, const DragEvent &event)\r
-    {\r
-\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
-        {\r
-            printf("draglistene is ok!\n");\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
-        }\r
-        UNUSED(view);\r
-        return true;\r
-    }\r
-\r
-    bool BloodPresenter::OnClick(UIView &view, const ClickEvent &event)\r
-    {\r
-        // 根据控件id查找是哪个控件触发了点击回调\r
-        if (strcmp(view.GetViewId(), WARNING) == 0)\r
-        {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_BLOODSHOW);\r
-        }\r
-        if (strcmp(view.GetViewId(), CHECK) == 0)\r
-        {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_BLOODCHECK);\r
-        }\r
-        return true;\r
-    }\r
-}
\ No newline at end of file
index 0c3c766..f3544c4 100755 (executable)
@@ -1,3 +1,13 @@
+/*** \r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2023-12-12 16:55:23\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-01-15 17:48:43\r
+ * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodShowPresenter.cpp\r
+ * @Description: \r
+ * @\r
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved. \r
+ */\r
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
 \r
@@ -57,7 +67,7 @@ namespace OHOS
         if (event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT)\r
         {\r
             printf("draglistene is ok!\n");\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_BLOOD);\r
+            //NativeAbility::GetInstance().ChangeSlice(VIEW_BLOOD);\r
         }\r
          UNUSED(view);\r
          return true;\r
index a08a934..55a4712 100755 (executable)
@@ -1,4 +1,13 @@
-\r
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2023-12-12 16:55:23\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-01-15 17:31:26\r
+ * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/blood/src/BloodView.cpp\r
+ * @Description:\r
+ * @\r
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved.\r
+ */\r
 \r
 #include "blood/include/BloodView.h"\r
 \r
 #include "ui_resource_image.h"\r
 #include <ui_scroll_view.h>\r
 #include "components/ui_button.h"\r
+#include "MainViewSample.h"\r
+#include "components/ui_view_group.h"\r
+\r
 namespace OHOS\r
 {\r
     static BloodView *g_pBloodView{nullptr};\r
 \r
     BloodView::BloodView()\r
     {\r
-\r
+        SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
         g_pBloodView = this;\r
     }\r
 \r
@@ -25,230 +37,218 @@ namespace OHOS
 \r
     BloodView *BloodView::GetInstance()\r
     {\r
-\r
         return g_pBloodView;\r
     }\r
-\r
-void BloodView::Init()\r
-{\r
-    if (container_ == nullptr) {\r
-        container_ = new UIViewGroup();\r
-        container_->SetPosition(0, 0, 466, 466);\r
-        container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
-    }\r
-    \r
-    // Add ImageView to App\r
-    if (image1_ == nullptr) {\r
-        image1_ = new UIImageView();\r
-    }\r
-    image1_->SetPosition(0, 0);         // widget's left position and top position\r
-    image1_->Resize(100, 100);          // widget's width and height\r
-    image1_->SetViewId("image1");// Set style\r
-\r
-    // Set additional property\r
-#ifdef _WIN32\r
-    char* image1imagesPath = "c:/Users/caiking/project/image_converter_tool/output/BloodOxygen/beijing.bin";\r
-#else\r
-    char* image1imagesPath = "/user/res/Blood/beijing.bin";\r
-#endif\r
-    image1_->SetSrc(image1imagesPath);\r
-\r
-    // Add to rootView\r
-    container_->Add(image1_);\r
-    image1_->SetVisible(true);\r
-    \r
-    // Add Button to App\r
-    if (button1_ == nullptr) {\r
-        button1_ = new UIButton();\r
-    }\r
-    button1_->SetPosition(300, 57);         // widget's left position and top position\r
-    button1_->Resize(26, 26);          // widget's width and height\r
-    button1_->SetViewId(WARNING);// Set style\r
-    button1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-    button1_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
-    // Set additional property\r
-#ifdef _WIN32\r
-    char* button1defaultImgSrc = "c:/Users/caiking/project/image_converter_tool/output/BloodOxygen/Vector.bin";\r
-#else\r
-    char* button1defaultImgSrc = "/user/res/Blood/Vector.bin";\r
-#endif\r
-    char * button1triggeredImgSrc = nullptr;\r
-    button1_->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
-    button1_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-    // Add the CallBack about events\r
-    UIView::OnClickListener* button1Click = static_cast<UIView::OnClickListener*>(BloodPresenter::GetInstance());\r
-    button1_->SetOnClickListener(button1Click);\r
-    // Add to rootView\r
-    container_->Add(button1_);\r
-    button1_->SetVisible(true);\r
-    \r
-    // Add LabelButtonExt to App\r
-    if (labelButton1_ == nullptr) {\r
-        labelButton1_ = new UILabelButtonExt();\r
-    }\r
-    labelButton1_->SetPosition(118, 336);         // widget's left position and top position\r
-    labelButton1_->Resize(230, 80);          // widget's width and height\r
-    labelButton1_->SetViewId(CHECK);// Set style\r
-    labelButton1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffcd492c);\r
-\r
-    // Set additional property\r
-    labelButton1_->SetText("检测");\r
-    labelButton1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);\r
-    labelButton1_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
-    // Add the CallBack about events\r
-    UIView::OnClickListener* labelButton1Click = static_cast<UIView::OnClickListener*>(BloodPresenter::GetInstance());\r
-    labelButton1_->SetOnClickListener(labelButton1Click);\r
-    // Add to rootView\r
-    container_->Add(labelButton1_);\r
-    labelButton1_->SetVisible(true);\r
-    \r
-    // Add Label to App\r
-    if (label2_ == nullptr) {\r
-        label2_ = new UILabel();\r
-    }\r
-    label2_->SetPosition(157, 105);         // widget's left position and top position\r
-    label2_->Resize(200, 60);          // widget's width and height\r
-    label2_->SetViewId("label2");// Set style\r
-    label2_->SetStyle(STYLE_TEXT_FONT, 140);\r
-\r
-    // Set additional property\r
-    label2_->SetText("98");\r
-    label2_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
-    label2_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-    label2_->SetRollSpeed(0);\r
-    label2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 140);\r
-\r
-    // Add to rootView\r
-    container_->Add(label2_);\r
-    label2_->SetVisible(true);\r
-    \r
-    // Add Label to App\r
-    if (label1_ == nullptr) {\r
-        label1_ = new UILabel();\r
-    }\r
-    label1_->SetPosition(141, 263);         // widget's left position and top position\r
-    label1_->Resize(185, 35);          // widget's width and height\r
-    label1_->SetViewId("label1");// Set style\r
-    label1_->SetStyle(STYLE_TEXT_FONT, 30);\r
-\r
-    // Set additional property\r
-    label1_->SetText("20分钟前检测");\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 rootView\r
-    container_->Add(label1_);\r
-    label1_->SetVisible(true);\r
-    \r
-    // Add Label to App\r
-    if (label3_ == nullptr) {\r
-        label3_ = new UILabel();\r
-    }\r
-    label3_->SetPosition(143, 52);         // 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
-\r
-    // Set additional property\r
-    label3_->SetText("血氧饱和度");\r
-    label3_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\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 rootView\r
-    container_->Add(label3_);\r
-    label3_->SetVisible(true);\r
-    \r
-}\r
-\r
-void BloodView::DeInit()\r
-{\r
-    if (container_ != nullptr) {\r
-        container_->RemoveAll();\r
-        delete container_ ;\r
-        container_ = nullptr;\r
-    }\r
-    if (image1_ != nullptr) {\r
-        delete image1_;\r
-        image1_ = nullptr;\r
-    }\r
-    if (button1_ != nullptr) {\r
-        delete button1_;\r
-        button1_ = nullptr;\r
-    }\r
-    if (labelButton1_ != nullptr) {\r
-        delete labelButton1_;\r
-        labelButton1_ = nullptr;\r
-    }\r
-    if (label2_ != nullptr) {\r
-        delete label2_;\r
-        label2_ = nullptr;\r
-    }\r
-    if (label1_ != nullptr) {\r
-        delete label1_;\r
-        label1_ = nullptr;\r
-    }\r
-    if (label3_ != nullptr) {\r
-        delete label3_;\r
-        label3_ = nullptr;\r
-    }\r
-}\r
-\r
-UIView* BloodView::GetView()\r
-{\r
-    Init();\r
-    return container_;\r
-}\r
-    void BloodView::OnStart()\r
+    /***\r
+     * @description:\r
+     * @return 添加按键是否成功\r
+     */\r
+    bool BloodView::AddButton()\r
     {\r
-        container_ = new UIScrollView();\r
-        if (container_ == nullptr)\r
+        // Add Button to App\r
+        if (warnButton == nullptr)\r
         {\r
-            return;\r
+            warnButton = new UIButton();\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 *>(BloodPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
+        warnButton->SetPosition(300, 57); // widget's left position and top position\r
+        warnButton->Resize(26, 26);       // widget's width and height\r
+        warnButton->SetViewId(WARNING);   // Set style\r
+        warnButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+        warnButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+\r
+        // Set additional property\r
+        char *button1defaultImgSrc = "/user/res/Blood/Vector.bin";\r
+        char *button1triggeredImgSrc = nullptr;\r
+        warnButton->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
+        warnButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+\r
+        // Add the CallBack about events\r
+        // UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(BloodPresenter::GetInstance());\r
+        // warnButton->SetOnClickListener(button1Click);\r
+        // Add to rootView\r
+        Add(warnButton);\r
+\r
+        // Add LabelButtonExt to App\r
+        if (monitorButton == nullptr)\r
         {\r
-            return;\r
+            monitorButton = new UILabelButtonExt();\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 BloodView::OnSetUpView()\r
+        monitorButton->SetPosition(118, 336); // widget's left position and top position\r
+        monitorButton->Resize(230, 80);       // widget's width and height\r
+        monitorButton->SetViewId(CHECK);      // Set style\r
+        monitorButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffcd492c);\r
+\r
+        // Set additional property\r
+        monitorButton->SetText("检测");\r
+        monitorButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);\r
+        monitorButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+\r
+        // UIView::OnClickListener *labelButton1Click = static_cast<UIView::OnClickListener *>(BloodPresenter::GetInstance());\r
+        // monitorButton->SetOnClickListener(labelButton1Click);\r
+        Add(monitorButton);\r
+        return true;\r
+    }\r
+    /***\r
+     * @description:\r
+     * @return 初始化标签是否成功\r
+     */\r
+    bool BloodView::InitLable()\r
+    {\r
+        // Add Label to App\r
+        if (bloodLabel == nullptr)\r
+        {\r
+            bloodLabel = new UILabel();\r
+        }\r
+        bloodLabel->SetPosition(157, 105); // widget's left position and top position\r
+        bloodLabel->Resize(200, 60);       // widget's width and height\r
+        bloodLabel->SetViewId("label2");   // Set style\r
+        bloodLabel->SetStyle(STYLE_TEXT_FONT, 140);\r
+\r
+        // Set additional property\r
+        int bloodoxygen = 98;\r
+        bloodLabel->SetText(std::to_string(bloodoxygen).c_str());\r
+        bloodLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        bloodLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        bloodLabel->SetRollSpeed(0);\r
+        bloodLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 140);\r
+\r
+        // Add to rootView\r
+        Add(bloodLabel);\r
+\r
+        // Add Label to App\r
+        if (timeLabel == nullptr)\r
+        {\r
+            timeLabel = new UILabel();\r
+        }\r
+        timeLabel->SetPosition(141, 263); // widget's left position and top position\r
+        timeLabel->Resize(185, 35);       // widget's width and height\r
+        timeLabel->SetViewId("label1");   // Set style\r
+        timeLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+\r
+        // Set additional property\r
+        timeLabel->SetText("20分钟前检测");\r
+        timeLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        timeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        timeLabel->SetRollSpeed(0);\r
+        timeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to rootView\r
+        Add(timeLabel);\r
+\r
+        // Add Label to App\r
+        if (titleLabel == nullptr)\r
+        {\r
+            titleLabel = new UILabel();\r
+        }\r
+        titleLabel->SetPosition(143, 52); // widget's left position and top position\r
+        titleLabel->Resize(200, 60);      // widget's width and height\r
+        titleLabel->SetViewId("label3");  // Set style\r
+        titleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+\r
+        // Set additional property\r
+        titleLabel->SetText("血氧饱和度");\r
+        titleLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        titleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        titleLabel->SetRollSpeed(0);\r
+        titleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to rootView\r
+        Add(titleLabel);\r
+        return true;\r
+    }\r
+    /***\r
+     * @description:\r
+     * @return 初始化背景是否成功\r
+     */\r
+    bool BloodView::Initbackground()\r
+    {\r
+        // Add ImageView to App\r
+        if (background == nullptr)\r
+        {\r
+            background = new UIImageView();\r
+        }\r
+        background->SetPosition(0, 0);   // widget's left position and top position\r
+        background->Resize(466, 466);    // widget's width and height\r
+        background->SetViewId("image1"); // Set style\r
+        // Set additional property\r
+        char *image1imagesPath = "/user/res/Blood/beijing.bin";\r
+        background->SetSrc(image1imagesPath);\r
+\r
+        // Add to rootView\r
+        Add(background);\r
+        return true;\r
+    }\r
+    /***\r
+     * @description:\r
+     * @return 是否初始化成功\r
+     */\r
+    bool BloodView::InitView()\r
+    {\r
+        printf("Function: %s, Line: %d\n", __PRETTY_FUNCTION__, __LINE__);\r
+        if (!Initbackground())\r
+        {\r
+            printf("Initbackground error!\n");\r
+        };\r
+        if (!InitLable())\r
+        {\r
+            printf("InitLable error!\n");\r
+        };\r
+        if (!AddButton())\r
+        {\r
+            printf("AddButton error!\n");\r
+        };\r
+        SetCoverable(true);\r
+        return true;\r
+    }\r
+    /***\r
+     * @description:\r
+     * @return 删除组件\r
+     */\r
+    void BloodView::DeInit()\r
     {\r
 \r
-        View<BloodPresenter>::OnSetUpView();\r
-        Draw();\r
+        if (background != nullptr)\r
+        {\r
+            delete background;\r
+            background = nullptr;\r
+        }\r
+        if (warnButton != nullptr)\r
+        {\r
+            delete warnButton;\r
+            warnButton = nullptr;\r
+        }\r
+        if (monitorButton != nullptr)\r
+        {\r
+            delete monitorButton;\r
+            monitorButton = nullptr;\r
+        }\r
+        if (bloodLabel != nullptr)\r
+        {\r
+            delete bloodLabel;\r
+            bloodLabel = nullptr;\r
+        }\r
+        if (timeLabel != nullptr)\r
+        {\r
+            delete timeLabel;\r
+            timeLabel = nullptr;\r
+        }\r
+        if (titleLabel != nullptr)\r
+        {\r
+            delete titleLabel;\r
+            titleLabel = nullptr;\r
+        }\r
     }\r
-\r
-    void BloodView::OnTearDownView()\r
+    void BloodView::PreLoad(void)\r
     {\r
-\r
-        View<BloodPresenter>::OnTearDownView();\r
-        return;\r
+        //printf("Function: %s, Line: %d\n", __PRETTY_FUNCTION__, __LINE__);\r
+        if (InitView())\r
+        {\r
+            viewiInitStatus = true;\r
+        }\r
     }\r
 \r
-    void BloodView::OnStop()\r
+    void BloodView::UnLoad(void)\r
     {\r
-        View<BloodPresenter>::OnStop();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
     }\r
+\r
 }\r
index 7dbc6cd..6b24e8a 100644 (file)
@@ -619,7 +619,6 @@ namespace OHOS
         {
             std::string Dialtype = cJSON_GetObjectItem(cjson_json, "Dialtype")->valuestring;
             Initbackground();
-
             if (Dialtype == "pointer")
             {
                 Initpointer();
index 6e8527a..e975361 100755 (executable)
@@ -2,7 +2,7 @@
  * @Author: Caisking 3449750381@qq.com\r
  * @Date: 2023-12-12 16:55:29\r
  * @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-01-15 16:40:09\r
+ * @LastEditTime: 2024-01-15 17:19:52\r
  * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/main/include/MainViewSample.h\r
  * @Description: \r
  * @\r
@@ -39,6 +39,7 @@
 #include "PullUpDownView.h"\r
 #include "components/ui_cross_view.h"\r
 #include "dial/include/Digital_clockView.h"\r
+#include "blood/include/BloodView.h"\r
 namespace OHOS {\r
 class MainPresenterSample;\r
 class MainViewSample : public View<MainPresenterSample> {\r
@@ -56,6 +57,8 @@ public:
     UICardPage *InitCompassPage(void);\r
     UICardPage *InitMusicPlayerPage(void);\r
     UICardPage *InitNewDialPage(void);\r
+    UICardPage *InitBloodOxygenPage(void);\r
+     \r
     void AnimatorStart(int pageIndex);\r
     void AnimatorStop(void);\r
     uint16_t GetHorCurrentPage() const\r
@@ -79,12 +82,17 @@ private:
     PullUpDownView *dropDownView{nullptr};\r
     UICardPage *messageView{nullptr};\r
     UILabel *messageLable{nullptr};\r
+    \r
+    /* -------------------------------------------------------------------------- */\r
     Digital_clockView *mainClockView{nullptr};\r
     ActivityWeekView *activityWeekView{nullptr};\r
     PlayersView *playersView{nullptr};\r
+    /* -------------------------------------------------------------------------- */\r
+\r
     CompassControlView *compassControlView{nullptr};\r
     HeartRateView *heartRateView{nullptr};\r
     Digital_clockView*dialView{nullptr};\r
+    BloodView*bloodView{nullptr};\r
     UICardPage *recordCard[MAX_CARD]{nullptr};\r
     bool pageStatus[MAX_CARD]{false};\r
     UICrossView *mainSwipeGroup{nullptr};\r
index dca3e92..70c61ad 100755 (executable)
@@ -112,10 +112,11 @@ bool MainSwipeViewGroup::OnDragEvent(const DragEvent& event)
                 swipeDirect = VERTICAL_SWIPE;\r
                 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "vertical->OnDragEvent2, direct:%d index: %d", swipeDirect, vertical->GetCurrentPage());\r
                 vertical->OnDragEvent(event);\r
-            } else if ((event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP) &&\r
-                (event.GetStartPoint().y > 300) && (horizontal->GetCurrentPage() == MUSIC_PLAYER)) {\r
-                PlayersPresenter::GetInstance()->ShowPlayerListGroup();\r
             }\r
+            // } else if ((event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP) &&\r
+            //      (event.GetStartPoint().y > 300) && (horizontal->GetCurrentPage() == MUSIC_PLAYER)) {\r
+            //      PlayersPresenter::GetInstance()->ShowPlayerListGroup();\r
+            // }\r
         }\r
     } else if (swipeDirect == HORIZONTAL_SWIPE) {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "horizontal->OnDragEvent2, direct:%d index: %d", swipeDirect, horizontal->GetCurrentPage());\r
index 212d5b3..e5b1fae 100755 (executable)
@@ -1,3 +1,13 @@
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2023-12-12 16:55:29\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-01-15 18:54:40\r
+ * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/main/src/MainViewSample.cpp\r
+ * @Description:\r
+ * @\r
+ * @Copyright (c) 2024 by Caisking , All Rights Reserved.\r
+ */\r
 /*\r
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
  * Description: MainViewSample\r
 #include "MainViewSample.h"\r
 #include "graphic_service.h"\r
 \r
-namespace OHOS {\r
-\r
-static MainViewSample *g_pMainView = nullptr;\r
-static constexpr uint16_t MESLABLE_X_TMP = 177;\r
-static constexpr uint16_t MESLABLE_Y_TMP = 212;\r
-static constexpr uint16_t MESLABLE_WIDTH_TMP = 100;\r
-static constexpr uint16_t MESLABLE_HEIGHT_TMP = 30;\r
-static constexpr uint8_t FONT_SIZE_TMP = 24;\r
-static constexpr uint8_t PULL_MIDDLE_VIEW_OPA = 0;\r
-\r
-struct MainViewMapper {\r
-    CardId id;\r
-    UICardPage *(MainViewSample::*func)(void);\r
-};\r
-\r
-static const MainViewMapper PageMapper[] = {\r
-    {HEART_RATE, &MainViewSample::InitHeartRatePage},\r
-    {COMPASS, &MainViewSample::InitCompassPage},\r
-    {ACTIVITY, &MainViewSample::InitActivityPage},\r
-    {MUSIC_PLAYER, &MainViewSample::InitMusicPlayerPage},\r
-    {NEW_DAIL,&MainViewSample::InitNewDialPage},\r
-};\r
-\r
-MainViewSample::MainViewSample()\r
+namespace OHOS\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::MainViewSample");\r
-    g_pMainView = this;\r
-}\r
 \r
-MainViewSample::~MainViewSample()\r
-{\r
-    dropDownView->ClearBackgroundBlur();\r
-    messageView->ClearBackgroundBlur();\r
-\r
-    for (int32_t i = 0; i < maxPage; i++) {\r
-        recordCard[i] = nullptr;\r
-        pageStatus[i] = false;\r
+    static MainViewSample *g_pMainView = nullptr;\r
+    static constexpr uint16_t MESLABLE_X_TMP = 177;\r
+    static constexpr uint16_t MESLABLE_Y_TMP = 212;\r
+    static constexpr uint16_t MESLABLE_WIDTH_TMP = 100;\r
+    static constexpr uint16_t MESLABLE_HEIGHT_TMP = 30;\r
+    static constexpr uint8_t FONT_SIZE_TMP = 24;\r
+    static constexpr uint8_t PULL_MIDDLE_VIEW_OPA = 0;\r
+\r
+    struct MainViewMapper\r
+    {\r
+        CardId id;\r
+        UICardPage *(MainViewSample::*func)(void);\r
+    };\r
+\r
+    static const MainViewMapper PageMapper[] = {\r
+        {NEW_DAIL, &MainViewSample::InitNewDialPage},\r
+        {HEART_RATE, &MainViewSample::InitHeartRatePage},\r
+        {COMPASS, &MainViewSample::InitCompassPage},\r
+        {BloodOxygen, &MainViewSample::InitBloodOxygenPage},\r
+    };\r
+\r
+    MainViewSample::MainViewSample()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::MainViewSample");\r
+        g_pMainView = this;\r
     }\r
 \r
-    if (mainSwipeGroup != nullptr) {\r
-        delete mainSwipeGroup;\r
-        mainSwipeGroup = nullptr;\r
-    }\r
-\r
-    if (mainClockView != nullptr) {\r
-        delete mainClockView;\r
-        mainClockView = nullptr;\r
-    }\r
-\r
-    if (activityWeekView != nullptr) {\r
-        delete activityWeekView;\r
-        activityWeekView = nullptr;\r
-    }\r
+    MainViewSample::~MainViewSample()\r
+    {\r
+        dropDownView->ClearBackgroundBlur();\r
+        messageView->ClearBackgroundBlur();\r
 \r
-    if (playersView != nullptr) {\r
-        delete playersView;\r
-        playersView = nullptr;\r
-    }\r
-\r
-    if (heartRateView != nullptr) {\r
-        delete heartRateView;\r
-        heartRateView = nullptr;\r
-    }\r
+        for (int32_t i = 0; i < maxPage; i++)\r
+        {\r
+            recordCard[i] = nullptr;\r
+            pageStatus[i] = false;\r
+        }\r
 \r
-    if (dropDownView != nullptr) {\r
-        delete dropDownView;\r
-        dropDownView = nullptr;\r
-    }\r
+        if (mainSwipeGroup != nullptr)\r
+        {\r
+            delete mainSwipeGroup;\r
+            mainSwipeGroup = nullptr;\r
+        }\r
 \r
-    if (messageView != nullptr) {\r
-        messageView->RemoveAll();\r
-        delete messageView;\r
-        messageView = nullptr;\r
-    }\r
+        if (mainClockView != nullptr)\r
+        {\r
+            delete mainClockView;\r
+            mainClockView = nullptr;\r
+        }\r
 \r
-    if (messageLable != nullptr) {\r
-        delete messageLable;\r
-        messageLable = nullptr;\r
-    }\r
+        if (activityWeekView != nullptr)\r
+        {\r
+            delete activityWeekView;\r
+            activityWeekView = nullptr;\r
+        }\r
 \r
-    if (compassControlView != nullptr) {\r
-        delete compassControlView;\r
-        compassControlView = nullptr;\r
-    }\r
+        if (playersView != nullptr)\r
+        {\r
+            delete playersView;\r
+            playersView = nullptr;\r
+        }\r
 \r
-    if (dialView != nullptr) {\r
-        delete dialView;\r
-        dialView = nullptr;\r
-    }\r
+        if (heartRateView != nullptr)\r
+        {\r
+            delete heartRateView;\r
+            heartRateView = nullptr;\r
+        }\r
 \r
-    g_pMainView = nullptr;\r
-}\r
+        if (dropDownView != nullptr)\r
+        {\r
+            delete dropDownView;\r
+            dropDownView = nullptr;\r
+        }\r
 \r
+        if (messageView != nullptr)\r
+        {\r
+            messageView->RemoveAll();\r
+            delete messageView;\r
+            messageView = nullptr;\r
+        }\r
 \r
+        if (messageLable != nullptr)\r
+        {\r
+            delete messageLable;\r
+            messageLable = nullptr;\r
+        }\r
 \r
-MainViewSample *MainViewSample::GetInstance(void)\r
-{\r
-    return g_pMainView;\r
-}\r
+        if (compassControlView != nullptr)\r
+        {\r
+            delete compassControlView;\r
+            compassControlView = nullptr;\r
+        }\r
 \r
-void MainViewSample::OnStart()\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStart");\r
-    View<MainPresenterSample>::OnStart();\r
-    BaseView::RootView(Color::Black().full);\r
+        if (dialView != nullptr)\r
+        {\r
+            delete dialView;\r
+            dialView = nullptr;\r
+        }\r
+        if (bloodView != nullptr)\r
+        {\r
+            delete bloodView;\r
+            bloodView = nullptr;\r
+        }\r
+        g_pMainView = nullptr;\r
+    }\r
 \r
-    mainSwipeGroup = new UICrossView();\r
-    if (mainSwipeGroup == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainSwipeGroup new fail");\r
-        return;\r
+    MainViewSample *MainViewSample::GetInstance(void)\r
+    {\r
+        return g_pMainView;\r
     }\r
 \r
-    if (callback == nullptr) {\r
-        callback = new ZoomEffect();\r
-        if (callback == nullptr) {\r
-            delete mainSwipeGroup;\r
-            mainSwipeGroup = nullptr;\r
-            GRAPHIC_LOGE("SwipeCallback new fail\n");\r
+    void MainViewSample::OnStart()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStart");\r
+        View<MainPresenterSample>::OnStart();\r
+        BaseView::RootView(Color::Black().full);\r
+\r
+        mainSwipeGroup = new UICrossView();\r
+        if (mainSwipeGroup == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainSwipeGroup new fail");\r
             return;\r
         }\r
-    }\r
 \r
-    HorizontalViewInit();\r
-    HorViewLoad();\r
-    VerticalViewInit();\r
-    VertViewLoad();\r
-    mainSwipeGroup->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-    mainSwipeGroup->SetAnimatorTime(50); // 50: animator drag time(ms);\r
-    mainSwipeGroup->SetLoopState(true);\r
-    mainSwipeGroup->EnableScreenCap(true);\r
-    mainSwipeGroup->RegisterSwipeCallback(callback);\r
-    mainSwipeGroup->SetHorCurrentPage(dialView->GetViewIndex());\r
-    SetContainerView(mainSwipeGroup);\r
-}\r
+        if (callback == nullptr)\r
+        {\r
+            callback = new ZoomEffect();\r
+            if (callback == nullptr)\r
+            {\r
+                delete mainSwipeGroup;\r
+                mainSwipeGroup = nullptr;\r
+                GRAPHIC_LOGE("SwipeCallback new fail\n");\r
+                return;\r
+            }\r
+        }\r
 \r
-bool MainViewSample::HorizontalViewInit(void)\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit");\r
-    UISwipeView::OnSwipeListener *listener = nullptr;\r
+        HorizontalViewInit();\r
+        HorViewLoad();\r
+        VerticalViewInit();\r
+        VertViewLoad();\r
+        mainSwipeGroup->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        mainSwipeGroup->SetAnimatorTime(50); // 50: animator drag time(ms);\r
+        mainSwipeGroup->SetLoopState(true);\r
+        mainSwipeGroup->EnableScreenCap(true);\r
+        mainSwipeGroup->RegisterSwipeCallback(callback);\r
+        mainSwipeGroup->SetHorCurrentPage(dialView->GetViewIndex());\r
+        SetContainerView(mainSwipeGroup);\r
+    }\r
 \r
-    maxPage = ScreenModels::GetInstance()->GetMaxCard();\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit1");\r
+    bool MainViewSample::HorizontalViewInit(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit");\r
+        UISwipeView::OnSwipeListener *listener = nullptr;\r
+\r
+        maxPage = ScreenModels::GetInstance()->GetMaxCard();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit1");\r
+\r
+        for (int16_t i = 0; i < maxPage; i++)\r
+        {\r
+            recordCard[i] = CreatePage(i);\r
+            if (recordCard[i] == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard %d error", i);\r
+                return false;\r
+            }\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard[%d]:%p", i, recordCard[i]);\r
+        }\r
 \r
-    for (int16_t i = 0; i < maxPage; i++) {\r
-        recordCard[i] = CreatePage(i);\r
-        if (recordCard[i] == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard %d error", i);\r
+        listener = static_cast<UISwipeView::OnSwipeListener *>(MainPresenterSample::GetInstance());\r
+        if (listener == nullptr)\r
+        {\r
             return false;\r
         }\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard[%d]:%p", i, recordCard[i]);\r
+        MainPresenterSample::GetInstance()->setCallback(callback);\r
+        mainSwipeGroup->SetOnSwipeListener(listener);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitPage over");\r
+        return true;\r
     }\r
 \r
-    listener = static_cast<UISwipeView::OnSwipeListener *>(MainPresenterSample::GetInstance());\r
-    if (listener == nullptr) {\r
-        return false;\r
+    void MainViewSample::HorViewLoad(void)\r
+    {\r
+        for (int16_t i = 0; i < maxPage; i++)\r
+        {\r
+            mainSwipeGroup->HorAdd(recordCard[i]);\r
+        }\r
     }\r
-    MainPresenterSample::GetInstance()->setCallback(callback);\r
-    mainSwipeGroup->SetOnSwipeListener(listener);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitPage over");\r
-    return true;\r
-}\r
 \r
-void MainViewSample::HorViewLoad(void)\r
-{\r
-    for (int16_t i = 0; i < maxPage; i++) {\r
-        mainSwipeGroup->HorAdd(recordCard[i]);\r
+    void MainViewSample::VerticalViewInit(void)\r
+    {\r
+        dropDownView = new PullUpDownView();\r
+        if (dropDownView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownView new fail");\r
+            return;\r
+        }\r
+        dropDownView->PreLoad();\r
+        dropDownView->SetViewId("dropDownView");\r
+        dropDownView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        dropDownView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+\r
+        messageView = new UICardPage();\r
+        if (messageView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail");\r
+            return;\r
+        }\r
+        messageView->SetPosition(0, 0);\r
+        messageView->SetWidth(Screen::GetInstance().GetWidth());\r
+        messageView->SetHeight(Screen::GetInstance().GetHeight());\r
+        messageView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+        messageView->SetViewId("messageView");\r
+        messageView->SetTouchable(true);\r
+        messageView->SetIntercept(true);\r
+        messageLable = new UILabel();\r
+        if (messageLable == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageLable new fail");\r
+            return;\r
+        }\r
+        messageLable->SetPosition(MESLABLE_X_TMP, MESLABLE_Y_TMP, MESLABLE_WIDTH_TMP, MESLABLE_HEIGHT_TMP);\r
+        messageLable->SetText("无消息");\r
+        messageLable->SetAlign(TEXT_ALIGNMENT_CENTER);\r
+        messageLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_SIZE_TMP);\r
+        messageLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);\r
+        messageView->Add(messageLable);\r
     }\r
-}\r
 \r
-void MainViewSample::VerticalViewInit(void)\r
-{\r
-    dropDownView = new PullUpDownView();\r
-    if (dropDownView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownView new fail");\r
-        return;\r
+    void MainViewSample::VertViewLoad(void)\r
+    {\r
+        mainSwipeGroup->VerAdd(dropDownView, UICrossView::VPage::UP_PAGE);\r
+        mainSwipeGroup->VerAdd(messageView, UICrossView::VPage::DOWN_PAGE);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::PullViewLoad::Pull View Load complete");\r
     }\r
-    dropDownView->PreLoad();\r
-    dropDownView->SetViewId("dropDownView");\r
-    dropDownView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-    dropDownView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
-\r
-    messageView = new UICardPage();\r
-    if (messageView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail");\r
-        return;\r
-    }\r
-    messageView->SetPosition(0, 0);\r
-    messageView->SetWidth(Screen::GetInstance().GetWidth());\r
-    messageView->SetHeight(Screen::GetInstance().GetHeight());\r
-    messageView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
-    messageView->SetViewId("messageView");\r
-    messageView->SetTouchable(true);\r
-    messageView->SetIntercept(true);\r
-    messageLable = new UILabel();\r
-    if (messageLable == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageLable new fail");\r
-        return;\r
-    }\r
-    messageLable->SetPosition(MESLABLE_X_TMP, MESLABLE_Y_TMP, MESLABLE_WIDTH_TMP, MESLABLE_HEIGHT_TMP);\r
-    messageLable->SetText("无消息");\r
-    messageLable->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-    messageLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_SIZE_TMP);\r
-    messageLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);\r
-    messageView->Add(messageLable);\r
-}\r
 \r
-void MainViewSample::VertViewLoad(void)\r
-{\r
-    mainSwipeGroup->VerAdd(dropDownView, UICrossView::VPage::UP_PAGE);\r
-    mainSwipeGroup->VerAdd(messageView, UICrossView::VPage::DOWN_PAGE);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::PullViewLoad::Pull View Load complete");\r
-}\r
+    void MainViewSample::OnSetUpView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnSetUpView");\r
+        View<MainPresenterSample>::OnSetUpView();\r
 \r
-void MainViewSample::OnSetUpView()\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnSetUpView");\r
-    View<MainPresenterSample>::OnSetUpView();\r
+        // show timerView\r
+        Draw();\r
+    }\r
 \r
-    // show timerView\r
-    Draw();\r
-}\r
+    void MainViewSample::OnTearDownView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnTearDownView");\r
+        View<MainPresenterSample>::OnTearDownView();\r
+        return;\r
+    }\r
 \r
+    void MainViewSample::OnStop()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStop");\r
+        View<MainPresenterSample>::OnStop();\r
+        container_ = nullptr;\r
 \r
-void MainViewSample::OnTearDownView()\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnTearDownView");\r
-    View<MainPresenterSample>::OnTearDownView();\r
-    return;\r
-}\r
-\r
-void MainViewSample::OnStop()\r
-{\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStop");\r
-    View<MainPresenterSample>::OnStop();\r
-    container_ = nullptr;\r
-\r
-    messageView->RemoveAll();\r
-    RootView::GetInstance()->ClearOnKeyActListener();\r
-    RootView::GetInstance()->RemoveAll();\r
-    return;\r
-}\r
-\r
-UICardPage *MainViewSample::InitWatchFacePage(void)\r
-{\r
-    mainClockView = new Digital_clockView();\r
-    if (mainClockView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView new fail");\r
-        return nullptr;\r
+        messageView->RemoveAll();\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
+        RootView::GetInstance()->RemoveAll();\r
+        return;\r
     }\r
-    return mainClockView;\r
-}\r
 \r
-UICardPage *MainViewSample::InitHeartRatePage(void)\r
-{\r
-    \r
-    heartRateView = new HeartRateView();\r
-    if (heartRateView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "heartRateView new fail");\r
-        return nullptr;\r
+    /* -------------------------------------------------------------------------- */\r
+    UICardPage *MainViewSample::InitWatchFacePage(void)\r
+    {\r
+        mainClockView = new Digital_clockView();\r
+        if (mainClockView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView new fail");\r
+            return nullptr;\r
+        }\r
+        return mainClockView;\r
     }\r
-    return heartRateView;\r
-}\r
-\r
-UICardPage *MainViewSample::InitActivityPage(void)\r
-{\r
-    \r
-    activityWeekView = new ActivityWeekView();\r
-    if (activityWeekView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "activityWeekView new fail");\r
-        return nullptr;\r
+    UICardPage *MainViewSample::InitActivityPage(void)\r
+    {\r
+\r
+        activityWeekView = new ActivityWeekView();\r
+        if (activityWeekView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "activityWeekView new fail");\r
+            return nullptr;\r
+        }\r
+        return activityWeekView;\r
     }\r
-    return activityWeekView;\r
-}\r
-\r
-UICardPage *MainViewSample::InitCompassPage(void)\r
-{\r
-    \r
-    compassControlView = new CompassControlView();\r
-    if (compassControlView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "compassControlView new fail");\r
-        return nullptr;\r
+    UICardPage *MainViewSample::InitMusicPlayerPage(void)\r
+    {\r
+\r
+        playersView = new PlayersView();\r
+        if (playersView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersView new fail");\r
+            return nullptr;\r
+        }\r
+        return playersView;\r
+    }\r
+    /* -------------------------------------------------------------------------- */\r
+    // 主界面心率卡片\r
+    UICardPage *MainViewSample::InitHeartRatePage(void)\r
+    {\r
+\r
+        heartRateView = new HeartRateView();\r
+        if (heartRateView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "heartRateView new fail");\r
+            return nullptr;\r
+        }\r
+        return heartRateView;\r
+    }\r
+    // 主界面指南针卡片\r
+    UICardPage *MainViewSample::InitCompassPage(void)\r
+    {\r
+        compassControlView = new CompassControlView();\r
+        if (compassControlView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "compassControlView new fail");\r
+            return nullptr;\r
+        }\r
+        return compassControlView;\r
+    }\r
+    // 主界面表盘卡片\r
+    UICardPage *MainViewSample::InitNewDialPage(void)\r
+    {\r
+        dialView = new Digital_clockView();\r
+        if (dialView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialView new fail");\r
+            return nullptr;\r
+        }\r
+        return dialView;\r
+    }\r
+    // 主界面血氧卡片\r
+    UICardPage *MainViewSample::InitBloodOxygenPage(void)\r
+    {\r
+        bloodView = new BloodView();\r
+        if (bloodView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView new fail");\r
+            return nullptr;\r
+        }\r
+        return bloodView;\r
     }\r
-    return compassControlView;\r
-}\r
 \r
-UICardPage *MainViewSample::InitMusicPlayerPage(void)\r
-{\r
-    \r
-    playersView = new PlayersView();\r
-    if (playersView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersView new fail");\r
+    UICardPage *MainViewSample::CreatePage(int32_t StreamId)\r
+    {\r
+        uint16_t i;\r
+        UICardPage *view = nullptr;\r
+        int32_t cardId = ScreenModels::GetInstance()->GetCardPage(StreamId);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage cardId:%d", cardId);\r
+        for (i = 0; i < sizeof(PageMapper) / sizeof(PageMapper[0]); i++)\r
+        {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::CreatePage PageMapper[i].id=%d, cardId=%d, StreamId=%d", PageMapper[i].id, cardId, StreamId);\r
+            //printf("MainViewSample::CreatePage PageMapper[i].id=%d, cardId=%d, StreamId=%d\n", PageMapper[i].id, cardId, StreamId);\r
+            if (PageMapper[i].id == cardId)\r
+            {\r
+                view = (this->*(PageMapper[i].func))();\r
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage view:%p", view);\r
+                return view;\r
+            }\r
+        }\r
+\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreatePage view error!");\r
         return nullptr;\r
     }\r
-    return playersView;\r
-}\r
 \r
-UICardPage *MainViewSample::InitNewDialPage(void)\r
-{\r
-    \r
-    dialView = new Digital_clockView();\r
-    if (dialView == nullptr) {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialView new fail");\r
-        return nullptr;\r
+    void MainViewSample::AnimatorStart(int pageIndex)\r
+    {\r
+        if (heartRateView != nullptr && pageIndex == ScreenModels::GetInstance()->GetCardPage(HEART_RATE))\r
+        {\r
+            heartRateView->HeartbeatImageAnimatorStart();\r
+        }\r
     }\r
-    return dialView;\r
-}\r
 \r
-UICardPage *MainViewSample::CreatePage(int32_t StreamId)\r
-{\r
-    \r
-    uint16_t i;\r
-    UICardPage *view = nullptr;\r
-    int32_t cardId = ScreenModels::GetInstance()->GetCardPage(StreamId);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage cardId:%d", cardId);\r
-    for (i = 0; i < sizeof(PageMapper) / sizeof(PageMapper[0]); i++) {\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::CreatePage PageMapper[i].id=%d, cardId=%d, StreamId=%d", PageMapper[i].id, cardId, StreamId);\r
-           \r
-        if (PageMapper[i].id == cardId) {\r
-        \r
-            view = (this->*(PageMapper[i].func))();\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage view:%p", view);\r
-            return view;\r
+    void MainViewSample::AnimatorStop(void)\r
+    {\r
+        if (heartRateView != nullptr)\r
+        {\r
+            heartRateView->HeartbeatImageAnimatorStop();\r
         }\r
+        // if (mainClockView != nullptr) {\r
+        //     mainClockView->ClockAnimatorStop();\r
+        // }\r
     }\r
 \r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreatePage view error!");\r
-    return nullptr;\r
-}\r
+    bool MainViewSample::IsMainView(void)\r
+    {\r
 \r
-void MainViewSample::AnimatorStart(int pageIndex)\r
-{\r
-    \r
-    if (heartRateView != nullptr && pageIndex == ScreenModels::GetInstance()->GetCardPage(HEART_RATE)) {\r
-        heartRateView->HeartbeatImageAnimatorStart();\r
-    }\r
-    // if ((mainClockView != nullptr && pageIndex == ScreenModels::GetInstance()->GetCardPage(WATCH_FACE)) &&\r
-    //     mainSwipeGroup->GetCurrentPageId(UISwipeView::VERTICAL) == 2) {\r
-    //     mainClockView->ClockAnimatorStart();\r
-    // }\r
-    if ((dialView != nullptr && pageIndex == ScreenModels::GetInstance()->GetCardPage(NEW_DAIL)) &&\r
-        mainSwipeGroup->GetCurrentPageId(UISwipeView::VERTICAL) == 1) {\r
-        dialView->PreLoad();\r
+        if (mainSwipeGroup->GetCurrentPageId(0) == ScreenModels::GetInstance()->GetCardPage(NEW_DAIL) &&\r
+            mainSwipeGroup->GetCurrentPageId(1) == 1)\r
+        { // 0: horizontal; 1: vertical\r
+            return true;\r
+        }\r
+        else\r
+        {\r
+            return false;\r
+        }\r
     }\r
-}\r
 \r
-void MainViewSample::AnimatorStop(void)\r
-{\r
-    if (heartRateView != nullptr) {\r
-        heartRateView->HeartbeatImageAnimatorStop();\r
+    void MainViewSample::SetDragFg(bool continFg)\r
+    {\r
+        continuDragFg = continFg;\r
     }\r
-    // if (mainClockView != nullptr) {\r
-    //     mainClockView->ClockAnimatorStop();\r
-    // }\r
-}\r
 \r
-bool MainViewSample::IsMainView(void)\r
-{\r
-    \r
-    if (mainSwipeGroup->GetCurrentPageId(0) == ScreenModels::GetInstance()->GetCardPage(NEW_DAIL) &&\r
-        mainSwipeGroup->GetCurrentPageId(1) == 1) { // 0: horizontal; 1: vertical\r
-        return true;\r
-    } else {\r
-        return false;\r
+    bool MainViewSample::GetDragFg(void)\r
+    {\r
+        return continuDragFg;\r
     }\r
-}\r
-\r
-void MainViewSample::SetDragFg(bool continFg)\r
-{\r
-    continuDragFg = continFg;\r
-}\r
-\r
-bool MainViewSample::GetDragFg(void)\r
-{\r
-    return continuDragFg;\r
-}\r
-\r
 \r
 }\r
index cc19892..50063c5 100755 (executable)
@@ -2,18 +2,12 @@
  * @Author: Caisking 3449750381@qq.com\r
  * @Date: 2023-12-15 14:33:22\r
  * @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-01-11 19:29:58\r
+ * @LastEditTime: 2024-01-15 19:34:47\r
  * @FilePath: /1.FD230/FD230/code/sdk/application/wearable/nativeapp/nativeui/screensetting/include/ScreenModels.h\r
  * @Description: \r
  * @\r
  * @Copyright (c) 2024 by Caisking , All Rights Reserved. \r
  */\r
-/*\r
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
- * Description: ScreenModels\r
- * Author:\r
- * Create: 2022-01-22\r
- */\r
 \r
 #ifndef SCREEN_MODEL_H\r
 #define SCREEN_MODEL_H\r
 #include "gfx_utils/list.h"\r
 #include "ui_image_view.h"\r
 \r
-namespace OHOS {\r
-typedef enum {\r
-    NEW_DAIL = 0,\r
-    HEART_RATE,\r
-    COMPASS,\r
-    ACTIVITY,\r
-    MUSIC_PLAYER,\r
-    MAX_CARD,\r
-} CardId;\r
+namespace OHOS\r
+{\r
+    typedef enum\r
+    {\r
+        NEW_DAIL = 0,\r
+        HEART_RATE,\r
+        COMPASS,\r
+        BloodOxygen,\r
+        MAX_CARD,\r
+    } CardId;\r
 \r
+    struct CardInfo\r
+    {\r
+        int16_t cardId;\r
+    };\r
 \r
-struct CardInfo {\r
-    int16_t cardId;\r
-};\r
+    class ScreenModels\r
+    {\r
+    public:\r
+        ScreenModels();\r
+        ~ScreenModels();\r
+        static ScreenModels *GetInstance(void);\r
+        // card funtion\r
+        bool SetUpListCase(void);\r
+        bool SaveCardConfig(void);\r
+        bool InitCardConfig(void);\r
+        void SetCardConfigDefault(void);\r
+        int16_t GetCardPage(uint16_t page);\r
+        bool CardInsertFirst(int32_t card);\r
+        bool CardDelete(int32_t card);\r
+        int16_t GetMaxCard(void);\r
+        int16_t GetLastCardPage(void);\r
+        bool LoadAppImages(std::string file, UIImageView *view, uint32_t resId);\r
+        void PreLoadAppimages(void);\r
 \r
-class ScreenModels {\r
-public:\r
-    ScreenModels();\r
-    ~ScreenModels();\r
-    static ScreenModels *GetInstance(void);\r
- // card funtion\r
-    bool SetUpListCase(void);\r
-    bool SaveCardConfig(void);\r
-    bool InitCardConfig(void);\r
-    void SetCardConfigDefault(void);\r
-    int16_t GetCardPage(uint16_t page);\r
-    bool CardInsertFirst(int32_t card);\r
-    bool CardDelete(int32_t card);\r
-    int16_t GetMaxCard(void);\r
-    int16_t GetLastCardPage(void);\r
-    bool LoadAppImages(std::string file, UIImageView *view, uint32_t resId);\r
-    void PreLoadAppimages(void);\r
-private:\r
-    void LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId);\r
-    List<CardInfo> *listMainView{nullptr};  // record main view pages\r
-    int16_t maxPage = MAX_CARD;\r
-};\r
+    private:\r
+        void LoadAppMultiImages(std::string file, uint32_t startId, uint32_t lastId);\r
+        List<CardInfo> *listMainView{nullptr}; // record main view pages\r
+        int16_t maxPage = MAX_CARD;\r
+    };\r
 }\r
 #endif\r