增加训练目标进度条 训练强度同步更新 634/2
authorCaisking <3449750381@qq.com>
Fri, 2 Aug 2024 09:57:29 +0000 (17:57 +0800)
committerCaisking <3449750381@qq.com>
Fri, 2 Aug 2024 09:57:29 +0000 (17:57 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TraingCardPresenter.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.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/TrainingDataView.cpp

index 62b3437..705ddec 100644 (file)
@@ -44,7 +44,8 @@ namespace OHOS
         void OnPause() override;\r
         void OnResume() override;\r
         void OnStop() override;\r
-        virtual void Notify() override;\r
+        // void OnTickEvent() override;\r
+        void Notify() override;\r
 \r
         bool OpenSensor(ExerciseClass type);\r
         bool ControlSensor(ExerciseState state);\r
index 9265a1e..82dd76e 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-02 09:56:04
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/include/TrainingDataView.h
+ */
 #ifndef _TrainingData_VIEW_H
 #define _TrainingData_VIEW_H
 
@@ -14,6 +20,8 @@
 #include "components/ui_chart.h"
 #include "components/ui_list.h"
 #include "components/icon_adapter.h"
+#include "components/ui_circle_progress.h"
+
 #include "wearable_log.h"
 #include "ohos_types.h"
 #include "components/ui_card_page.h"
@@ -45,6 +53,7 @@ namespace OHOS
         void UnLoad(void) override;
         UILabelExt *GetTimeLabel();
         UILabelExt *GetHeartLabel();
+        UICircleProgress*GetProgress();
 
         void UpdataTime();
 
@@ -68,6 +77,8 @@ namespace OHOS
         UIImageView *image_highIntensity = nullptr;      // 高等强度
         UIImageView *image_superHighIntensity = nullptr; // 超高等强度
 
+        UICircleProgress *circleProgress = nullptr;
+
         UIImageView *image_iconup = nullptr;
         UIImageView *image_iconpoint = nullptr;
 
index a1c11e6..bb78a55 100644 (file)
@@ -1,3 +1,9 @@
+/***\r
+ * @Date: 2024-07-06 16:27:31\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-02 10:21:14\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp\r
+ */\r
 /***\r
  * @Date: 2024-04-26 09:23:18\r
  * @LastEditors: Caisking 3449750381@qq.com\r
@@ -94,7 +100,7 @@ namespace OHOS
     // 计时器更新timer\r
     void TraingCardPresenter::ModifiesTime()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ModifiesTime begin");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModifiesTime begin");\r
         std ::string TimeStr = TraingModel::GetInstance()->DisplayMotionDuration();\r
 \r
         /*灭屏状态不刷新UI*/\r
@@ -117,7 +123,7 @@ namespace OHOS
         {\r
             TrainingDataView::GetInstance()->GetTimeLabel()->SetText(TimeStr.c_str());\r
         }\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ModifiesTime end");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ModifiesTime end");\r
     }\r
 \r
     /* --------------------------------- cywee库操作 -------------------------------- */\r
@@ -210,16 +216,32 @@ namespace OHOS
         std::string calorieStr = (sportdata->calories != 0) ? std::to_string(sportdata->calories) : DEFAULT_DASH;\r
         // 训练强度刷新\r
         UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity();\r
-        TrainingDetailView::GetInstance()->Get_Intensity_Button()->SetFontId(intensityid);\r
+        // printf("intensityid %d \r\n", intensityid);\r
+        TrainingDetailView::GetInstance()->Get_Intensity_Button()->SetTextId(intensityid);\r
 \r
+        TrainingDataView::GetInstance()->GetProgress()->SetValue(sportdata->goaldegree);   // 目标完成度\r
         TrainingDataView::GetInstance()->GetHeartLabel()->SetText(heartStr.c_str());       // 心率\r
         TrainingDetailView::GetInstance()->GetCalorieLabel()->SetText(calorieStr.c_str()); // 卡路里\r
         TrainingDetailView::GetInstance()->GetMileLabel()->SetText(distanceStr.c_str());   // 距离\r
         TrainingDetailView::GetInstance()->GetStepLabel()->SetText(stepsStr.c_str());      // 步数\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[Calories: %s, Distance: %s, Steps: %s Intensityid: %d]", calorieStr.c_str(), distanceStr.c_str(), stepsStr.c_str(), intensityid);\r
+\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[Calories: %s, Distance: %s, Steps: %s Intensityid: %d]", calorieStr.c_str(), distanceStr.c_str(), stepsStr.c_str(), intensityid);\r
         // 释放sportdata内存\r
     }\r
+#if 0\r
     /*刷新 time 和 data */\r
+    void TraingCardPresenter::OnTickEvent()\r
+    {\r
+        // 未开启训练 直接退出\r
+        if (TraingModel::GetInstance()->GetSportState() == ExerciseState::General)\r
+            return;\r
+        // 刷新训练数据界面 时间\r
+        TrainingDataView::GetInstance()->UpdataTime();\r
+        // 刷新训练数据界面 心率 卡路里 距离 步数 训练强度 目标完成度\r
+        RefreshData();\r
+    }\r
+#endif\r
+#if 1\r
     void TraingCardPresenter::Notify(void)\r
     {\r
         // 未开启训练 直接退出\r
@@ -230,6 +252,7 @@ namespace OHOS
         // 刷新训练数据界面 心率 卡路里 距离 步数 训练强度 目标完成度\r
         RefreshData();\r
     }\r
+#endif\r
     /* --------------------------------- 点击事件处理 --------------------------------- */\r
     bool TraingCardPresenter::OnClick(UIView &view, const ClickEvent &event)\r
     {\r
index 82a37f2..fa9f8ac 100644 (file)
@@ -47,7 +47,7 @@ namespace OHOS
             {\r
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU has delete pm_id_Sport vote");\r
             }\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU SLEEP SUCCESS");\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU SLEEP SUCCESS");\r
         }\r
 \r
         /*添加睡眠否决投票*/\r
@@ -62,7 +62,7 @@ namespace OHOS
             {\r
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU has got pm_id_Sport vote");\r
             }\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU WAKEUP SUCCESS");\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_MAIN_SERVICE, "Sport SERVICE MCU WAKEUP SUCCESS");\r
         }\r
 \r
 #ifdef __cplusplus\r
@@ -77,7 +77,7 @@ namespace OHOS
 \r
     TraingCardView::TraingCardView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingCardView::TraingCardView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView::TraingCardView");\r
         InitTimer();                                                     // 开启计时器\r
         TraingModel::GetInstance()->SetSportState(ExerciseState::Start); // 设置运动状态为开始\r
         TraingModel::GetInstance()->SetTimestamp();\r
@@ -126,145 +126,82 @@ namespace OHOS
         //  swipe_->HorAdd(DetailView);\r
 \r
         swipe_->VerAdd(DetailView, UICrossView::VPage::DOWN_PAGE);\r
-        swipe_->SetHorCurrentPage(Control_Card::DATA);//设置进入索引 [数据]\r
+        swipe_->SetHorCurrentPage(Control_Card::DATA); // 设置进入索引 [数据]\r
 \r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingCardView::InitPage over");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView::InitPage over");\r
     }\r
 \r
     /* DeInit:删除组件 */\r
     void TraingCardView::DeInit()\r
     {\r
         swipe_->RemoveAll();\r
+\r
         /*界面*/\r
-        if (ControlView != nullptr)\r
-        {\r
-            ControlView->RemoveAll();\r
-            delete ControlView;\r
-            ControlView = nullptr;\r
-        }\r
-        if (DataVIew != nullptr)\r
-        {\r
-            DataVIew->RemoveAll();\r
-            delete DataVIew;\r
-            DataVIew = nullptr;\r
-        }\r
-        if (DetailView != nullptr)\r
-        {\r
-            DetailView->RemoveAll();\r
-            delete DetailView;\r
-            DetailView = nullptr;\r
-        }\r
-        if (MusicView != nullptr)\r
-        {\r
-            MusicView->RemoveAll();\r
-            delete MusicView;\r
-            MusicView = nullptr;\r
-        }\r
-        if (endView != nullptr)\r
-        {\r
-            endView->RemoveAll();\r
-            delete endView;\r
-            endView = nullptr;\r
-        }\r
-        if (getView != nullptr)\r
-        {\r
-            getView->RemoveAll();\r
-            delete getView;\r
-            getView = nullptr;\r
-        }\r
-        if (heartView != nullptr)\r
-        {\r
-            heartView->RemoveAll();\r
-            delete heartView;\r
-            heartView = nullptr;\r
-        }\r
+        ControlView->RemoveAll();\r
+        DataVIew->RemoveAll();\r
+        DetailView->RemoveAll();\r
+        MusicView->RemoveAll();\r
+        endView->RemoveAll();\r
+        getView->RemoveAll();\r
+        heartView->RemoveAll();\r
 \r
         /*标签*/\r
-        if (endtitle != nullptr)\r
-        {\r
-            delete endtitle;\r
-            endtitle = nullptr;\r
-        }\r
-        if (notelabel != nullptr)\r
-        {\r
-            delete notelabel;\r
-            notelabel = nullptr;\r
-        }\r
-        if (endnotelabel != nullptr)\r
-        {\r
-            delete endnotelabel;\r
-            endnotelabel = nullptr;\r
-        }\r
-        if (labeltitle != nullptr)\r
-        {\r
-            delete labeltitle;\r
-            labeltitle = nullptr;\r
-        }\r
-        if (labeltag != nullptr)\r
-        {\r
-            delete labeltag;\r
-            labeltag = nullptr;\r
-        }\r
-        if (labelgettag != nullptr)\r
-        {\r
-            delete labelgettag;\r
-            labelgettag = nullptr;\r
-        }\r
-        if (labelpre != nullptr)\r
-        {\r
-            delete labelpre;\r
-            labelpre = nullptr;\r
-        }\r
-        if (hearttitle != nullptr)\r
-        {\r
-            delete hearttitle;\r
-            hearttitle = nullptr;\r
-        }\r
-        if (labelnote != nullptr)\r
-        {\r
-            delete labelnote;\r
-            labelnote = nullptr;\r
-        }\r
+        delete endtitle;\r
+        endtitle = nullptr;\r
+        delete notelabel;\r
+        notelabel = nullptr;\r
+        delete endnotelabel;\r
+        endnotelabel = nullptr;\r
+        delete labeltitle;\r
+        labeltitle = nullptr;\r
+        delete labeltag;\r
+        labeltag = nullptr;\r
+        delete labelgettag;\r
+        labelgettag = nullptr;\r
+        delete labelpre;\r
+        labelpre = nullptr;\r
+        delete hearttitle;\r
+        hearttitle = nullptr;\r
+        delete labelnote;\r
+        labelnote = nullptr;\r
         /*图片*/\r
-        if (heartiamge != nullptr)\r
-        {\r
-            delete heartiamge;\r
-            heartiamge = nullptr;\r
-        }\r
+        delete heartiamge;\r
+        heartiamge = nullptr;\r
+\r
         /*按键*/\r
-        if (exit != nullptr)\r
-        {\r
-            delete exit;\r
-            exit = nullptr;\r
-        }\r
-        if (back != nullptr)\r
-        {\r
-            delete back;\r
-            back = nullptr;\r
-        }\r
-        if (buttonok_ != nullptr)\r
-        {\r
-            delete buttonok_;\r
-            buttonok_ = nullptr;\r
-        }\r
-        if (buttonnote_ != nullptr)\r
-        {\r
-            delete buttonnote_;\r
-            buttonnote_ = nullptr;\r
-        }\r
-        /*动画*/\r
-        if (imageAnimator != nullptr)\r
-        {\r
-            imageAnimator->Stop();\r
-            delete imageAnimator;\r
-            imageAnimator = nullptr;\r
-        }\r
+        delete exit;\r
+        exit = nullptr;\r
+        delete back;\r
+        back = nullptr;\r
+        delete buttonok_;\r
+        buttonok_ = nullptr;\r
+        delete buttonnote_;\r
+        buttonnote_ = nullptr;\r
 \r
-        if (swipe_ != nullptr)\r
-        {\r
-            delete swipe_;\r
-            swipe_ = nullptr;\r
-        }\r
+        /*动画*/\r
+        imageAnimator->Stop();\r
+        delete imageAnimator;\r
+        imageAnimator = nullptr;\r
+\r
+        /*卡片*/\r
+        delete ControlView;\r
+        ControlView = nullptr;\r
+        delete DataVIew;\r
+        DataVIew = nullptr;\r
+        delete DetailView;\r
+        DetailView = nullptr;\r
+        delete swipe_;\r
+        delete MusicView;\r
+        MusicView = nullptr;\r
+        /*弹窗*/\r
+        delete endView;\r
+        endView = nullptr;\r
+        delete getView;\r
+        getView = nullptr;\r
+        delete heartView;\r
+        heartView = nullptr;\r
+\r
+        swipe_ = nullptr;\r
     }\r
     UICardPage *TraingCardView::InitControlPage(void)\r
     {\r
@@ -318,7 +255,7 @@ namespace OHOS
             InitView();\r
             viewiInitStatus = true;\r
         }\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingCardView  PreLoad");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingCardView  PreLoad");\r
     }\r
     void TraingCardView::OnStart()\r
     {\r
@@ -348,7 +285,7 @@ namespace OHOS
     /*设置弹窗状态*/\r
     void TraingCardView::SetPopupViewStatus(PopupType type, bool status)\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", type);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", type);\r
         UIView *popupView = nullptr;\r
         if (type == EndPopup)\r
         {\r
@@ -381,7 +318,7 @@ namespace OHOS
     void TraingCardView::ShowEndView()\r
     {\r
         // momentumFlag = false; // 标志位还原\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowEndView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowEndView");\r
         endView = new UIScrollView();\r
         if (endView == nullptr)\r
         {\r
@@ -411,12 +348,12 @@ namespace OHOS
         endView->SetDraggable(false);\r
         endView->SetTouchable(true);\r
         endView->SetVisible(false); // 界面隐藏\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowEndView end");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowEndView end");\r
     }\r
     /*目标达成界面*/\r
     void TraingCardView::ShowGetTagView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowGetTagView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowGetTagView");\r
         getView = new UIScrollView();\r
         if (getView == nullptr)\r
         {\r
@@ -447,12 +384,12 @@ namespace OHOS
         getView->SetDraggable(false);\r
         getView->SetTouchable(true);\r
         getView->SetVisible(false); // 界面隐藏\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowGetTagView end");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowGetTagView end");\r
     }\r
     /*最高心率提醒弹窗*/\r
     void TraingCardView::ShowHeartView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowHeartView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowHeartView");\r
         heartView = new UIScrollView();\r
         if (heartView == nullptr)\r
         {\r
@@ -486,14 +423,14 @@ namespace OHOS
         heartView->SetDraggable(false);\r
         heartView->SetTouchable(true);\r
         heartView->SetVisible(false); // 界面隐藏\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowHeartView end");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ShowHeartView end");\r
     }\r
     /*获取运动量结束弹窗界面刷新*/\r
     bool TraingCardView::RefreshEndView()\r
     {\r
         // 获取训练卡路里判断运动量\r
         momentumFlag = TraingModel::GetInstance()->GetMomentum();\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "momentumFlag %d", momentumFlag);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "momentumFlag %d", momentumFlag);\r
 \r
         if (momentumFlag)\r
         {\r
@@ -543,7 +480,7 @@ namespace OHOS
         default:\r
             break;\r
         }\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"tag[%d]-tagType[%d]-tagString[%s]\r\n", tag, tagType, tagString.c_str());\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "tag[%d]-tagType[%d]-tagString[%s]\r\n", tag, tagType, tagString.c_str());\r
         InitLabel(labeltag, 70, 215, 326, 97, "label2", tagString.c_str(), DEFAULT_VECTOR_FONT_FILENAME, 80);\r
         labeltag->SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));\r
         getView->Add(labeltag);\r
index 77987e0..002bc75 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-02 09:35:58
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDataView.cpp
+ */
 
 #include "traing/training_card/include/TrainingDataView.h"
 #include "traing/training_card/include/TraingCardView.h"
@@ -48,6 +54,27 @@ namespace OHOS
         Add(image_heart);
         Add(image_iconup);
         Add(image_iconpoint);
+
+        // 初始化进度条
+        circleProgress = new UICircleProgress();
+        circleProgress->SetPosition(0, 0);
+        circleProgress->Resize(466, 466);
+        circleProgress->SetViewId("circleProgress");
+        circleProgress->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+        circleProgress->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+        circleProgress->SetBackgroundStyle(STYLE_LINE_WIDTH, 12);
+        circleProgress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);
+        circleProgress->SetForegroundStyle(STYLE_BORDER_COLOR, 0xff000000);
+        circleProgress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);
+        circleProgress->SetForegroundStyle(STYLE_LINE_WIDTH, 10);
+        circleProgress->SetCenterPosition(235, 235);
+        circleProgress->SetRadius(215);
+        circleProgress->SetStartAngle(215);
+        circleProgress->SetEndAngle(505);
+        circleProgress->SetCapType(CAP_ROUND);
+        circleProgress->SetValue(0);
+        Add(circleProgress);
+
         // 初始化Lable
         UIResourceTextId sport_id = TraingModel::GetInstance()->GetSportEvent();
         InitLabelExt(sportlabel, 83, 120, 300, 35, "label2", sport_id, DEFAULT_VECTOR_FONT_FILENAME, 30);
@@ -55,7 +82,7 @@ namespace OHOS
 
         InitLabel(curtimelabel, 155, 60, 150, 50, "label1", "23:54", DEFAULT_VECTOR_FONT_FILENAME, 40);
 
-        InitLabel(timerlabel, 40, 163, 400, 140, "label3", "00:00:00", GILROY_BOLD_FONT, 80);
+        InitLabel(timerlabel, 0, 163, 466, 150, "label3", "00:00:00", GILROY_BOLD_FONT, 80);
         InitLabel(heartlabel, 85, 284, 230, 80, "label4", "144", GILROY_BOLD_FONT, 60);
         InitLabel(ubpmlabel, 218, 284, 230, 80, "label5", "bpm", DEFAULT_VECTOR_FONT_FILENAME, 60);
         ubpmlabel->SetTextColor(Color::Gray());
@@ -64,6 +91,7 @@ namespace OHOS
         Add(timerlabel);
         Add(heartlabel);
         Add(ubpmlabel);
+
 #if 0
         //  初始化Button
         InitButton(buttonNote, 275, 350, 26, 26, BUTTONNOTE);
@@ -127,6 +155,11 @@ namespace OHOS
             delete image_iconpoint;
             image_iconpoint = nullptr;
         }
+        if (circleProgress != nullptr)
+        {
+            delete circleProgress;
+            circleProgress = nullptr;
+        }
     }
 
     void TrainingDataView::PreLoad(void)
@@ -139,7 +172,6 @@ namespace OHOS
     }
 
     void TrainingDataView::UnLoad(void) {}
-
     UILabelExt *TrainingDataView::GetTimeLabel()
     {
         return timerlabel;
@@ -148,6 +180,10 @@ namespace OHOS
     {
         return heartlabel;
     }
+    UICircleProgress *TrainingDataView::GetProgress()
+    {
+        return circleProgress;
+    }
     /*更新当前时间*/
     void TrainingDataView::UpdataTime()
     {