增加训练控制卡片
authorCaisking <3449750381@qq.com>
Sun, 7 Apr 2024 08:02:07 +0000 (16:02 +0800)
committerCaisking <3449750381@qq.com>
Sun, 7 Apr 2024 08:02:07 +0000 (16:02 +0800)
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardView.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingControlView.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingControlView.cpp

index e2ff02f..6a1bb42 100644 (file)
@@ -448,7 +448,8 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/Training_CardPresenter.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TraingCardView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TraingCardPresenter.cpp
-
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/TrainingControlView.cpp
+    
     #训练记录
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordPresenter.cpp
index 113b71d..4e8818d 100644 (file)
@@ -77,7 +77,7 @@ typedef enum : uint16_t
     VIEW_TRAININGSETCALULI, // 设置训练卡路里
     VIEW_TRAININGSETDIST,   // 设置训练路程
     VIEW_TRAININGSETSTEP,   // 设置训练步数
-    VIEW_TRAININGCRAD,      // 训练卡片
+    VIEW_TRAININGCRAD,      // 训练控制卡片
     VIEW_TRAININGCONTROL,   // 训练控制(包括结束,暂停,继续训练)
     VIEW_TRAININGDATA,      // 训练数据
     VIEW_TRAININGDETAIL,    // 详细训练数据
index 45e9474..fb472cd 100644 (file)
@@ -97,9 +97,9 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), BUTTONGO) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGCONTROL);\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGCRAD);\r
         }\r
-        \r
+\r
         return true;\r
     }\r
 }\r
index 2126ea1..dfb8790 100644 (file)
 #include "traing/include/TraingModel.h"\r
 #include "traing/Training_UiConfig.h"\r
 #include "components/ui_swipe_view.h"\r
+#include "components/ui_cross_view.h"\r
 \r
 #include "traing/include/TraingModel.h"\r
 #include "traing/Training_UiConfig.h"\r
-#include "TraingCardPresenter.h"\r
+#include "traing/training_card/include/TraingCardPresenter.h"\r
+\r
+#include "PlayersView.h"\r
+#include "traing/training_card/include/TrainingControlView.h"\r
+#include "traing/include/TraingDataView.h"\r
+\r
 namespace OHOS\r
 {\r
+    enum Control_Card\r
+    {\r
+        CONTROL = 0,\r
+        // DATA,\r
+        MUSIC\r
+    };\r
+\r
     class TraingCardPresenter;\r
+    class TrainingControlView;\r
     class TraingCardView : public View<TraingCardPresenter>\r
     {\r
 \r
@@ -34,11 +48,16 @@ namespace OHOS
         TraingCardView();\r
         virtual ~TraingCardView();\r
         static TraingCardView *GetInstance(void);\r
-        \r
+\r
         void OnStart() override;\r
         void OnSetUpView() override;\r
         void OnTearDownView() override;\r
         void OnStop() override;\r
+\r
+        UICardPage *InitControlPage(void);\r
+        UICardPage *InitDataPage(void);\r
+        UICardPage *InitMusicPage(void);\r
+\r
         void InitView();\r
         void DeInit();\r
         void InitList();\r
@@ -55,9 +74,9 @@ namespace OHOS
 \r
         UISwipeView *swipe_ = nullptr;\r
 \r
-        UILabelExt *label1_ = nullptr;\r
-        UILabelExt *label2_ = nullptr;\r
-        UILabelExt *label3_ = nullptr;\r
+        TrainingControlView *ControlView{nullptr};\r
+        TraingDataView *DataVIew{nullptr};\r
+        PlayersView *MusicView{nullptr};\r
 \r
         bool viewiInitStatus{false};\r
     };\r
index f01eaa3..adbda5f 100644 (file)
@@ -1,34 +1,65 @@
-// /*
-//  * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved.
-//  * Description: TrainingControlView.h
-//  * Author:
-//  * Create: 2022-04-02
-//  */
-
-// #ifndef Training_CONTROL_VIEW_H
-// #define Training_CONTROL_VIEW_H
-
-// #include "components/root_view.h"
-// #include "UiConfig.h"
-// #include "components/ui_card_page.h"
-// //#include "TrainingCalibrationView.h"
-// #include "TrainingView.h"
-
-// namespace OHOS {
-
-// class TrainingControlView : public UICardPage {
-// public:
-//     TrainingControlView();
-//     virtual ~TrainingControlView();
-//     bool InitView(void);
-//     void PreLoad(void) override;
-//     void UnLoad(void) override;
-// private:
-//     TrainingCalibrationView *TrainingCalibrationView{nullptr};
-//     TrainingView *TrainingView{nullptr};
-//     bool viewiInitStatus{false};
-
-//     void ClearAll(void);
-// };
-// }
-// #endif
+/*
+ * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved.
+ * Description: TrainingControlView.h
+ * Author:
+ * Create: 2022-04-02
+ */
+
+#ifndef Training_CONTROL_VIEW_H
+#define Training_CONTROL_VIEW_H
+
+#include "components/root_view.h"
+#include "UiConfig.h"
+#include "components/ui_card_page.h"
+#include "BaseView.h"
+#include "View.h"
+#include <ui_scroll_view.h>
+#include "components/ui_view_group.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+#include "components/ui_button.h"
+#include "components/ui_image_animator.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_card_page.h"
+#include "traing/training_card/include/TraingCardPresenter.h"
+#include "traing/training_card/include/TrainingControlView.h"
+namespace OHOS
+{
+#define BUTTONEND "buttonend"
+#define BUTTONSTOP "buttonstop"
+#define BUTTONCONTINUE "button3"
+    class TrainingControlView : public UICardPage
+    {
+    public:
+        TrainingControlView();
+        virtual ~TrainingControlView();
+        static TrainingControlView *GetInstance(void);
+
+        void InitView(void);
+        void DeInit();
+
+        void PreLoad(void) override;
+        void UnLoad(void) override;
+
+        void SetButton();
+        void SetLabel();
+
+    private:
+        UIView::OnDragListener *draglistener{nullptr};
+        bool viewiInitStatus{false};
+
+        UIButton *buttonEnd = nullptr;  // 结束按键
+        UIButton *buttonStop = nullptr; // 暂停按键
+
+        UILabelExt *labeltimer = nullptr; // 计时timer
+        UILabelExt *labelend = nullptr;
+        UILabelExt *labelstop = nullptr;
+        UILabelExt *labeltitle = nullptr;
+
+        UIImageView *imagepoint = nullptr;
+
+        void ClearAll(void);
+    };
+}
+#endif
index 3279404..9e41843 100644 (file)
@@ -2,7 +2,7 @@
 \r
 #include "AppViewIDs.h"\r
 #include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
 #include "NativeAbility.h"\r
 \r
 #include <iostream>\r
@@ -19,7 +19,6 @@ namespace OHOS
 \r
     TraingCardPresenter::TraingCardPresenter()\r
     {\r
-\r
         g_pTraingCardPresenter = this;\r
     }\r
 \r
@@ -31,8 +30,8 @@ namespace OHOS
 \r
     TraingCardPresenter *TraingCardPresenter::GetInstance()\r
     {\r
-\r
-        return g_pTraingCardPresenter;\r
+        static TraingCardPresenter instance;\r
+        return &instance;\r
     }\r
 \r
     void TraingCardPresenter::OnStart()\r
index 54d3276..fb89d38 100644 (file)
@@ -2,7 +2,7 @@
 #include "traing/training_card/include/TraingCardView.h"\r
 #include "common/image_cache_manager.h"\r
 #include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
 #include "UiConfig.h"\r
 #include "ui_resource_image.h"\r
 #include <ui_scroll_view.h>\r
@@ -37,43 +37,74 @@ namespace OHOS
 \r
         return g_pTraingCardView;\r
     }\r
-   \r
+\r
     /* InitView:初始化界面*/\r
     void TraingCardView ::InitView()\r
     {\r
+        UISwipeView::OnSwipeListener *listener = nullptr;\r
+\r
         if (swipe_ == nullptr)\r
         {\r
-            swipe_ = new UISwipeView(UISwipeView::HORIZONTAL);\r
+            swipe_ = new UISwipeView();\r
             swipe_->SetPosition(0, 0, 466, 466);\r
             swipe_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
         }\r
 \r
-        // 初始化Lable\r
-        TraingModel::GetInstance()->InitLabel(label1_, 0, 55, 466, 466, "label1", "训练", DEFAULT_VECTOR_FONT_FILENAME, 200);\r
-        TraingModel::GetInstance()->InitLabel(label2_, 0, 55, 466, 466, "label2", "暂停", DEFAULT_VECTOR_FONT_FILENAME, 200);\r
-        TraingModel::GetInstance()->InitLabel(label3_, 0, 55, 466, 466, "label3", "结束", DEFAULT_VECTOR_FONT_FILENAME, 200);\r
+        InitControlPage();\r
+        InitMusicPage();\r
+\r
+        swipe_->Add(ControlView);\r
+        swipe_->Add(MusicView);\r
 \r
-        swipe_->Add(label1_);\r
-        swipe_->Add(label2_);\r
-        swipe_->Add(label3_);\r
+        swipe_->SetCurrentPage(Control_Card::MUSIC);\r
+\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitPage over");\r
     }\r
 \r
     /* DeInit:删除组件 */\r
     void TraingCardView::DeInit()\r
     {\r
-        UIView *view = static_cast<UISwipeView *>(swipe_)->GetChildrenHead();\r
-        while (view != nullptr)\r
+        if (swipe_ != nullptr)\r
+        {\r
+            swipe_->RemoveAll();\r
+            delete swipe_;\r
+            swipe_ = nullptr;\r
+        }\r
+        if (ControlView != nullptr)\r
+        {\r
+            ControlView->RemoveAll();\r
+            delete ControlView;\r
+            ControlView = nullptr;\r
+        }\r
+        if (MusicView != nullptr)\r
+        {\r
+            MusicView->RemoveAll();\r
+            delete MusicView;\r
+            MusicView = nullptr;\r
+        }\r
+    }\r
+    UICardPage *TraingCardView::InitControlPage(void)\r
+    {\r
+        ControlView = new TrainingControlView();\r
+        ControlView->PreLoad();\r
+        if (ControlView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ControlView new fail");\r
+            return nullptr;\r
+        }\r
+        return ControlView;\r
+    }\r
+    UICardPage *TraingCardView::InitDataPage(void) {}\r
+    UICardPage *TraingCardView::InitMusicPage(void)\r
+    {\r
+        MusicView = new PlayersView();\r
+        MusicView->PreLoad();\r
+        if (MusicView == nullptr)\r
         {\r
-            UIView *tempView = view;\r
-            view = view->GetNextSibling();\r
-            if (tempView->GetParent())\r
-            {\r
-                static_cast<UISwipeView *>(tempView->GetParent())->Remove(tempView);\r
-            }\r
-            delete tempView;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MusicView new fail");\r
+            return nullptr;\r
         }\r
-        delete swipe_;\r
-        swipe_ = nullptr;\r
+        return MusicView;\r
     }\r
 \r
     void TraingCardView::PreLoad(void)\r
@@ -86,15 +117,13 @@ namespace OHOS
     }\r
     void TraingCardView::OnStart()\r
     {\r
-        swipe_ = new UISwipeView(UISwipeView::HORIZONTAL);\r
+        swipe_ = new UISwipeView();\r
         if (swipe_ == nullptr)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "swipe_ new fail");\r
             return;\r
         }\r
-        swipe_->SetPosition(0, 0);\r
-        swipe_->SetWidth(Screen::GetInstance().GetWidth());\r
-        swipe_->SetHeight(Screen::GetInstance().GetHeight());\r
-\r
+        swipe_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         // 创建 draglistener 实例并设置为拖动监听器\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingCardPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
@@ -102,22 +131,18 @@ namespace OHOS
             return;\r
         }\r
         swipe_->SetOnDragListener(draglistener);\r
-\r
         swipe_->SetTouchable(true);\r
         swipe_->SetDraggable(true);\r
         swipe_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
-        swipe_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
-        swipe_->SetBlankSize(0);\r
-        swipe_->SetReboundSize(200); // 200: rebound size\r
-        swipe_->SetElastic(true);\r
-\r
+        swipe_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+        // swipe_->EnableScreenCap(true);\r
         PreLoad();\r
-        RootView::GetInstance()->Add(swipe_);\r
+        SetContainerView(swipe_);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "swipe_ new ok");\r
     }\r
 \r
     void TraingCardView::OnSetUpView()\r
     {\r
-\r
         View<TraingCardPresenter>::OnSetUpView();\r
         Draw();\r
     }\r
index e69de29..fbe032d 100644 (file)
@@ -0,0 +1,155 @@
+
+#include "traing/training_card/include/TrainingControlView.h"
+#include "traing/training_card/include/TraingCardView.h"
+
+#include "common/image_cache_manager.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "ui_resource_image.h"
+#include <ui_scroll_view.h>
+#include "components/ui_button.h"
+#include "traing/include/TraingModel.h"
+#include "traing/Training_UiConfig.h"
+
+namespace OHOS
+{
+
+    static TrainingControlView *g_pTrainingControlView{nullptr};
+
+    TrainingControlView::TrainingControlView()
+    {
+        SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+        g_pTrainingControlView = this;
+    }
+
+    TrainingControlView::~TrainingControlView()
+    {
+        RemoveAll();
+        DeInit();
+        g_pTrainingControlView = nullptr;
+    }
+
+    TrainingControlView *TrainingControlView::GetInstance()
+    {
+        return g_pTrainingControlView;
+    }
+
+    /* InitView:初始化界面*/
+    void TrainingControlView ::InitView()
+    {
+        //  初始化Button
+        TraingModel::GetInstance()->InitButton(buttonEnd, 100, 202, 100, 100, BUTTONEND);
+        // Set additional property
+        buttonEnd->SetImageSrc(SPORT_STOP_IMAGE, SPORT_STOP_IMAGE);
+        // 设置按钮的点击事件监听器为 TraingGPSPresenter 的实例
+        buttonEnd->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));
+        Add(buttonEnd);
+        TraingModel::GetInstance()->InitButton(buttonStop, 255, 202, 100, 100, BUTTONSTOP);
+        // Set additional property
+        buttonStop->SetImageSrc(SPORT_PAUSE_IMAGE, SPORT_PAUSE_IMAGE);
+        buttonStop->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingCardPresenter::GetInstance()));
+        Add(buttonStop);
+
+        // 初始化Lable
+        TraingModel::GetInstance()->InitLabel(labeltitle, 188, 52, 90, 35, "label1", "训练中", DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabel(labeltimer, 98, 110, 60, 35, "label2", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 65);
+        TraingModel::GetInstance()->InitLabel(labelend, 125, 324, 60, 40, "label3", "结束", DEFAULT_VECTOR_FONT_FILENAME, 20);
+        TraingModel::GetInstance()->InitLabel(labelstop, 280, 324, 60, 40, "label4", "暂停", DEFAULT_VECTOR_FONT_FILENAME, 20);
+        Add(labeltitle);
+        Add(labeltimer);
+        Add(labelend);
+        Add(labelstop);
+
+        // 初始化Image
+        TraingModel::GetInstance()->InitImageView(imagepoint, 193, 421, 80, 20, "image1", CONTROL_POINT_IMAGE);
+        Add(imagepoint);
+    }
+
+    /******************************************************************************************************/
+    void TrainingControlView::SetLabel()
+    {
+#if 0
+        if (TraingCardPresenter::GetInstance()->test == "继续")
+        {
+            labelstop->SetText("继续");
+        }
+        else
+        {
+            labelstop->SetText("暂停");
+        }
+#endif
+    }
+
+    void TrainingControlView::SetButton()
+    {
+#if 0
+        if (TraingCardPresenter::GetInstance()->test == "继续")
+        {
+            // buttonStop->SetViewId(BUTTONCONTINUE);
+            buttonStop->SetImageSrc(SPORT_CONTINUE_IMAGE, nullptr);
+        }
+        if (TraingCardPresenter::GetInstance()->test == "暂停")
+        {
+            // buttonStop->SetViewId(BUTTONPAUSE);
+            buttonStop->SetImageSrc(SPORT_PAUSE_IMAGE, nullptr);
+        }
+#endif
+    }
+    /******************************************************************************************************/
+
+    /* DeInit:删除组件 */
+    void TrainingControlView::DeInit()
+    {
+        RemoveAll();
+        if (labeltitle != nullptr)
+        {
+            labeltitle = nullptr;
+        }
+        if (labeltimer != nullptr)
+        {
+            delete labeltimer;
+            labeltimer = nullptr;
+        }
+        if (labelend != nullptr)
+        {
+            delete labelend;
+            labelend = nullptr;
+        }
+        if (labelstop != nullptr)
+        {
+            delete labelstop;
+            labelstop = nullptr;
+        }
+
+        // 删除Button
+        if (buttonEnd != nullptr)
+        {
+            delete buttonEnd;
+            buttonEnd = nullptr;
+        }
+        if (buttonStop != nullptr)
+        {
+            delete buttonStop;
+            buttonStop = nullptr;
+        }
+
+        // 删除Image
+        if (imagepoint != nullptr)
+        {
+            delete imagepoint;
+            imagepoint = nullptr;
+        }
+    }
+
+    void TrainingControlView::PreLoad(void)
+    {
+        if (!viewiInitStatus)
+        {
+            InitView();
+            viewiInitStatus = true;
+        }
+    }
+
+    void TrainingControlView::UnLoad(void) {}
+}