心率:心率动画的关闭
authorCaisking <3449750381@qq.com>
Thu, 19 Sep 2024 09:55:45 +0000 (17:55 +0800)
committerCaisking <3449750381@qq.com>
Thu, 19 Sep 2024 09:55:45 +0000 (17:55 +0800)
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartChartView.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateCardView.cpp

index ae4c969..ab9809f 100644 (file)
@@ -49,8 +49,9 @@ public:
   void OnTearDownView() override;
   void OnStart() override;
   static HeartChartView *GetInstance(void);
-
   UIImageAnimatorView *GetImageAnimator(void);
+  void HeartbeatImageAnimatorStart();
+  void HeartbeatImageAnimatorStop();
 
   bool HeartViewInit();
   void InitChartView(void);
@@ -85,7 +86,7 @@ private:
   UILabelExt *lastheart_{nullptr};
   UILabelExt *minheart_{nullptr};
   UILabelExt *maxheart_{nullptr};
-  
+
   UILabelExt *maxheart_dynamic_{nullptr};
   UILabelExt *maxheart_dynamic_3_{nullptr};
   UILabelExt *maxheart_dynamic_2_{nullptr};
index 6584bba..9989389 100644 (file)
@@ -197,9 +197,9 @@ HeartChartView::~HeartChartView() {
   delete heartIconView_;
   heartIconView_ = nullptr;
 
-  // imageAnimator->Stop();
-  // delete imageAnimator;
-  // imageAnimator = nullptr;
+  imageAnimator->Stop();
+  delete imageAnimator;
+  imageAnimator = nullptr;
 
   heartchart->ClearDataSerial();
   delete heartSerial;
@@ -213,6 +213,13 @@ HeartChartView *HeartChartView::GetInstance(void) { return g_pHeartCheckView; }
 
 /* 更新显示数据 */
 void HeartChartView::UpdateShowHeart() {
+
+  if (displayheart_ == nullptr) {
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                  "HeartChartView::UpdateShowHeart is error");
+    return;
+  }
+
   // 获取当前心率
   uint16_t heart_ = HeartModel::GetInstance()->GetShowHeartdata();
   std::string heartrateStr =
@@ -222,28 +229,6 @@ void HeartChartView::UpdateShowHeart() {
   if (displayheart_ != nullptr) {
     displayheart_->SetText(heartrateStr.c_str());
   }
-
-  // 获取最大心率
-  uint16_t heartmax_ = HeartModel::GetInstance()->GetShowMaxHeartdata();
-  std::string heartmaxStr =
-      (heartmax_ == 0) ? "--"
-                       : (heartmax_ < 50 ? "--" : std::to_string(heartmax_));
-
-  // 更新最大心率显示
-  if (maxheart_ != nullptr) {
-    maxheart_->SetText(heartmaxStr.c_str());
-  }
-
-  // 获取最小心率
-  uint16_t heartmin_ = HeartModel::GetInstance()->GetShowMinHeartdata();
-  std::string heartminStr =
-      (heartmin_ == 0) ? "--"
-                       : (heartmin_ < 50 ? "--" : std::to_string(heartmin_));
-
-  // 更新最小心率显示
-  if (minheart_ != nullptr) {
-    minheart_->SetText(heartminStr.c_str());
-  }
 }
 void HeartChartView::Update_data_Chart(int serialIndex) {
   if (heartchart == nullptr) {
@@ -270,6 +255,10 @@ void HeartChartView::Update_data_Chart(int serialIndex) {
 
   //更新为刚刚检测
   SetLastHeart();
+
+  //更新最大最小值
+  SetDataTopAndBottom();
+
 }
 void HeartChartView::CleanAllDataView() {
   if (heartchart == nullptr || maxheart_ == nullptr || minheart_ == nullptr) {
@@ -358,7 +347,7 @@ void HeartChartView::HeartImageAnimator() {
                                      HEARTBEAT_DELAY);
   imageAnimator->SetRepeat(true);
   container_->Add(imageAnimator);
-  imageAnimator->Start();
+  // imageAnimator->Start();
 }
 /*初始化心率曲线*/
 void HeartChartView::InitChartView(void) {
@@ -540,6 +529,18 @@ void HeartChartView::SetLastHeart() {
   std::string lastStr = HeartModel::GetInstance()->GetCheckString();
   lastheart_->SetText(lastStr.c_str());
 }
+
+void HeartChartView::HeartbeatImageAnimatorStart() {
+  if (imageAnimator != nullptr) {
+    imageAnimator->Start();
+  }
+}
+
+void HeartChartView::HeartbeatImageAnimatorStop() {
+  if (imageAnimator != nullptr) {
+    imageAnimator->Stop();
+  }
+}
 /*初始化检测界面*/
 bool HeartChartView::HeartViewInit() {
 
@@ -559,12 +560,14 @@ UIViewGroup *HeartChartView::GetchartGroup() {
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
                   "HeartChartView::InitHeartView fail");
   }
-  // HeartImageAnimator(); 暂时屏蔽
+  HeartImageAnimator(); //暂时屏蔽
   InitChartView();
   // UpdateChartConfig(); 屏蔽动态适配
   SetDataChart();
   SetLastHeart();
   SetDataTopAndBottom();
+  HeartbeatImageAnimatorStart();
+
   return container_;
 }
 void HeartChartView::OnStart() {
@@ -586,6 +589,7 @@ void HeartChartView::OnStart() {
   SetDataChart();
   SetLastHeart();
   SetDataTopAndBottom();
+  HeartbeatImageAnimatorStart();
 
   SetContainerView(container_);
   container_->SetDraggable(true);
index aa044d2..06499a2 100644 (file)
@@ -354,7 +354,9 @@ void HeartModel::RefreshHeartRateScreen(uint16_t perSec, uint16_t rest,
   }\r
   /*applist心率刷新心率数据*/\r
   if (HeartChartView::GetInstance() != nullptr) {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartChartView::GetInstance() start");\r
     HeartChartView::GetInstance()->UpdateShowHeart();\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartChartView::GetInstance() end");\r
   }\r
 }\r
 /* ---------------------------------- 状态检测\r
@@ -605,6 +607,7 @@ void HeartModel::UpHeartdata(uint16_t heart) {
                 "[heart data update displayheart %d displayheart_max %d "\r
                 "displayheart_min %d]",\r
                 displayheart, displayheart_max, displayheart_min);\r
+                \r
   GraphicService::GetInstance()->PostGraphicEvent(\r
       std::bind(&HeartModel::RefreshHeartRateScreen, HeartModel::GetInstance(),\r
                 displayheart, 0, displayheart_max, displayheart_min));\r
index b85a869..3f54128 100644 (file)
@@ -22,6 +22,9 @@ void HeartRateCardView::ClearAll(void) {
   if (viewiInitStatus == true) {
     RemoveAll();
     if (heartRateGroupView != nullptr) {
+      heartRateCardView->HeartbeatImageAnimatorStop();
+      delete heartRateCardView;
+      heartRateCardView = nullptr;
       delete heartRateGroupView;
       heartRateGroupView = nullptr;
     }