Add OpenState 72/2
authorCaisking <3449750381@qq.com>
Tue, 23 Apr 2024 12:30:46 +0000 (20:30 +0800)
committerCaisking <3449750381@qq.com>
Tue, 23 Apr 2024 12:30:46 +0000 (20:30 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp

index 696b614..ae192ab 100644 (file)
@@ -162,6 +162,7 @@ namespace OHOS
         HIGH_INTENSITY,
         VERY_HIGH_INTENSITY
     };
+
     struct SportData
     {
         uint64 starttime;         // 开始时间时间戳
@@ -280,6 +281,10 @@ namespace OHOS
         bool SaveSportData();
         /*设置运动开始方式*/
         void SetSportOpenWay(bool way);
+        /*设置运动是否开始*/
+        void SetSportOpenState(bool state);
+        /*获取运动是否开始*/
+        bool GetSportOpenState();
         /*获取训练量是否达标*/
         bool GetMomentum();
 
@@ -307,6 +312,7 @@ namespace OHOS
         bool Endstate{false};     // 结束训练标志位
         bool Openingway{false};   // 运动开启方式
         bool MomentumFlag{false}; // 训练量达标标志位
+        bool Openstate{false};    // 运动是否开始
 
         /*std::unique_ptr<SportData> sportdata;*/ // 使用 std::unique_ptr 管理 SportData 对象
     };
index ddf76ba..12ecdda 100644 (file)
@@ -575,6 +575,7 @@ namespace OHOS
             sportdata->starttime = time;
             sportdata->sportType = sportType_; // 训练类型
             Gettagstuats = false;              // 重置训练达标标志位
+            Openstate = true;                  // 开启运动开始标志位
             if (sportTag_)                     // 有值才设置[训练目标]
             {
                 sportdata->sportTagType = sportTagType_;
@@ -619,7 +620,9 @@ namespace OHOS
             }
             // PRINT("end_time [%s]\r\n", end_time);
             sportdata->end_time = std::string(end_time);
-            free(end_time); // 释放内存
+            Openstate = false; // 关闭运动标志位
+            
+            free(end_time);    // 释放内存
             PRINT("sportdata->end_time [%s]\r\n", (sportdata->end_time).c_str());
 
             /*存储正常数据[运动量达标]*/
@@ -837,6 +840,18 @@ namespace OHOS
     {
         Openingway = way;
     }
+
+    /*设置运动是否开始*/
+    void TraingModel::SetSportOpenState(bool state)
+    {
+        Openstate = state;
+    }
+    /*获取运动是否开始*/
+    bool TraingModel::GetSportOpenState()
+    {
+        return Openstate;
+    }
+
     /*获取训练量是否达标*/
     bool TraingModel::GetMomentum()
     {
index e4f3047..51e6df1 100644 (file)
@@ -184,7 +184,7 @@ namespace OHOS
         {\r
             distanceStr = DEFAULT_DASH;\r
         }\r
-        //std::string durationStr = std::to_string(sportdata->duration);\r
+        // std::string durationStr = std::to_string(sportdata->duration);\r
         std::string heartStr = (sportdata->heart != 0) ? std::to_string(sportdata->heart) : DEFAULT_DASH;\r
         std::string stepsStr = (sportdata->steps != 0) ? std::to_string(sportdata->steps) : DEFAULT_DASH;\r
         std::string calorieStr = (sportdata->calories != 0) ? std::to_string(sportdata->calories) : DEFAULT_DASH;\r
@@ -314,15 +314,11 @@ namespace OHOS
         }\r
 \r
         ExerciseState cmdState = static_cast<ExerciseState>(cmd->controlmd);\r
-        if (TraingCardView::GetInstance()->GetTraingCrad()->GetCurrentPageId() != Control_Card::CONTROL && cmdState != ExerciseState::Start)\r
-        {\r
-            // 跳转卡片界面\r
-            TraingCardView::GetInstance()->GetTraingCrad()->SetHorCurrentPage(Control_Card::CONTROL);\r
-        }\r
 \r
         // 结束\r
         if (cmdState == ExerciseState::End)\r
         {\r
+            PRINT("ExerciseState::End   [%d]\r\n", cmdState);\r
             TraingModel::GetInstance()->SetSportState(ExerciseState::End);\r
             ControlSensor(ExerciseState::End);\r
             if (TraingCardView::GetInstance()->RefreshEndView())\r
@@ -337,10 +333,11 @@ namespace OHOS
             return true;\r
         }\r
         // 暂停和恢复\r
-        else if (cmdState == ExerciseState::Continue || cmdState == ExerciseState::Pause)\r
+        if (cmdState == ExerciseState::Continue || cmdState == ExerciseState::Pause)\r
         {\r
-            // 开始状态\r
-            if (TraingModel::GetInstance()->GetSportState() == ExerciseState::Start || TraingModel::GetInstance()->GetSportState() == ExerciseState::Continue)\r
+            PRINT("ExerciseState %d\r\n", cmdState);\r
+            TraingModel::GetInstance()->SetSportState(cmdState);\r
+            if (TraingModel::GetInstance()->GetSportState() == ExerciseState::Continue)\r
             {\r
                 TrainingControlView::GetInstance()->GetLabel()->SetText("继续");\r
                 TrainingControlView::GetInstance()->GetButton()->SetImageSrc(SPORT_CONTINUE_IMAGE, SPORT_CONTINUE_IMAGE);\r
@@ -366,8 +363,9 @@ namespace OHOS
                 return true;\r
             }\r
         }\r
-        else if (cmdState == ExerciseState::Start)\r
+        if (cmdState == ExerciseState::Start)\r
         {\r
+            PRINT("ExerciseState::Start   [%d]\r\n", cmdState);\r
             // 开启运动\r
             ControlSensor(cmdState);\r
             // 设置APP开启运动\r
index 743c895..acc1ec2 100644 (file)
@@ -87,6 +87,7 @@ namespace OHOS
     /* DeInit:删除组件 */\r
     void TraingCardView::DeInit()\r
     {\r
+        swipe_->RemoveAll();\r
         /*界面*/\r
         if (ControlView != nullptr)\r
         {\r
@@ -186,7 +187,6 @@ namespace OHOS
 \r
         if (swipe_ != nullptr)\r
         {\r
-            swipe_->RemoveAll();\r
             delete swipe_;\r
             swipe_ = nullptr;\r
         }\r
@@ -339,7 +339,7 @@ namespace OHOS
         // 获取训练卡路里判断运动量\r
         momentumFlag = TraingModel::GetInstance()->GetMomentum();\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "momentumFlag %d", momentumFlag);\r
-        \r
+\r
         if (momentumFlag)\r
         {\r
             // 正常结束\r