同步训练结果UI更新 748/1
authorCaisking <3449750381@qq.com>
Wed, 21 Aug 2024 02:50:34 +0000 (10:50 +0800)
committerCaisking <3449750381@qq.com>
Wed, 21 Aug 2024 02:50:34 +0000 (10:50 +0800)
code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartRateView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp

index 974f2c6..3207362 100644 (file)
@@ -540,16 +540,16 @@ enum UIResourceTextId : uint16_t {
     STR_30_MIN = 527,\r
     STR_SET_COUNT_DOWN_NOTE = 528,\r
     STR_COUNTDOWN_ENDS = 529,\r
-    STR_MAXIMUM_TIME_REACH = 530,\r
+    STR_MAXIMUM_TIME_REACH_NOTE = 530,\r
     STR_STOPWATCH_STOP_NOTE = 531,\r
     STR_TMCHBR = 532,\r
-    STR_MAXIMUM_TIME_REACH_NOTE = 533,\r
+    STR_MAXIMUM_TIME_REACH = 533,\r
     STR_MAX_ID = 534,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
-    LANGUAGE_ID_EN,\r
     LANGUAGE_ID_ZH,\r
+    LANGUAGE_ID_EN,\r
     LANGUAGE_ID_MAX\r
 }; // UITextLanguageTextId\r
 }\r
index e2623c8..6bbe95e 100644 (file)
@@ -120,10 +120,12 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Update_data_Chart fail %d", serialIndex);
             return;
         }
-
+        
+        /*设置单个项*/
         heartdata[serialIndex].x = serialIndex;
         heartdata[serialIndex].y = HealthService::GetInstance()->GetHourlyHeartRate(serialIndex);
 
+        /*重新添加*/
         heartSerial->AddPoints(heartdata, 24);
         heartSerial->SetLineColor(Color::Red());
         heartSerial->SetFillColor(Color::Red());
index 258c3a6..c87e5f9 100644 (file)
@@ -428,28 +428,6 @@ namespace OHOS
     }\r
     void HeartRateView::Update_data_Chart(int serialIndex)\r
     {\r
-#if HEART_DATA_TEST\r
-        Point tmp[NUM_2];\r
-        if (chart == nullptr || index >= HEART_AVE_NUM || serialIndex >= HEART_AVE_NUM)\r
-        {\r
-            return;\r
-        }\r
-        heartSerial[serialIndex] = new UIChartDataSerial();\r
-        heartdata[serialIndex].x = serialIndex;\r
-        heartdata[serialIndex].y = HealthService::GetInstance()->GetHourlyHeartRate(serialIndex);\r
-\r
-        tmp[0].x = tmp[1].x = heartdata[serialIndex].x;\r
-        tmp[0].y = tmp[1].y = heartdata[serialIndex].y;\r
-\r
-        heartSerial[serialIndex]->SetMaxDataCount(HEART_AVE_NUM); // 设置最大显示的像素点\r
-        heartSerial[serialIndex]->AddPoints(tmp, NUM_2);\r
-        heartSerial[serialIndex]->SetLineColor(Color::Red());\r
-        heartSerial[serialIndex]->SetFillColor(Color::Red());\r
-        heartSerial[serialIndex]->EnableGradient(true);\r
-\r
-        heartchart->AddDataSerial(heartSerial[serialIndex]);\r
-        heartchart->Invalidate();\r
-#else\r
         if (heartchart == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Update_data_Chart fail %d", serialIndex);\r
@@ -469,7 +447,6 @@ namespace OHOS
 \r
         heartchart->AddDataSerial(heartSerial);\r
         heartchart->Invalidate();\r
-#endif\r
     }\r
     void HeartRateView::InsertTopAndBottomRateImage(void)\r
     {\r
index f8962be..bba4ab8 100644 (file)
@@ -18,6 +18,7 @@
 #define PRINT_LINE_INFO() WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File: %s, Line: %d\r\n", __FILE__, __LINE__)
 #define PRINT_FUNCTION_LINE() WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Function: %s, Line: %d\r\n", __FUNCTION__, __LINE__)
 
+#define UI_UPDATA 0
 namespace OHOS
 {
 
@@ -42,7 +43,10 @@ namespace OHOS
 
     TraingEnddataView::~TraingEnddataView()
     {
-        DeInit();
+        // DeInit();
+        UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+        UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
         g_pTraingEnddataView = nullptr;
     }
 
@@ -62,16 +66,18 @@ namespace OHOS
         InitImageView(imageLine3, 97, baseY + lineHeight, 80, 20, "image3", LINE_IMAGE);     // imageLine3
         InitImageView(imageLine4, 97, baseY + 2 * lineHeight, 80, 20, "image4", LINE_IMAGE); // imageLine4
         InitImageView(imageLine5, 97, baseY + 3 * lineHeight, 80, 20, "image5", LINE_IMAGE); // imageLine5
-        InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image6", LINE_IMAGE); // imageLine6
-        InitImageView(imageLine7, 97, baseY + 5 * lineHeight, 80, 20, "image7", LINE_IMAGE); // imageLine7
-
         scrollView_->Add(imageLine2);
         scrollView_->Add(imageLine3);
         scrollView_->Add(imageLine4);
         scrollView_->Add(imageLine5);
+        scrollView_->Add(imageIcon);
+
+#if UI_UPDATA
+        InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image6", LINE_IMAGE); // imageLine6
+        InitImageView(imageLine7, 97, baseY + 5 * lineHeight, 80, 20, "image7", LINE_IMAGE); // imageLine7
         scrollView_->Add(imageLine6);
         scrollView_->Add(imageLine7);
-        scrollView_->Add(imageIcon);
+#endif
     }
     void TraingEnddataView ::InitializeLabels(void)
     {
@@ -83,50 +89,55 @@ namespace OHOS
         // 初始化单位Label
         InitLabelExt(labelutag, 146, startY_Unit + labelInterval * 0, 240, 40, "label8", STR_GOAL_ACCOMPLISHMENT_DEGREE, DEFAULT_VECTOR_FONT_FILENAME, 30);
         InitLabelExt(labelutime, 146, startY_Unit + labelInterval * 1, 240, 40, "label9", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME, 30);
-        InitLabelExt(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30);
-        InitLabelExt(labeluheart, 146, startY_Unit + labelInterval * 3, 240, 40, "label11", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME, 30);
-        InitLabelExt(labelusteps, 146, startY_Unit + labelInterval * 4, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30);
-        InitLabelExt(labelustrong, 146, startY_Unit + labelInterval * 5, 240, 40, "label2", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        InitLabelExt(labeluheart, 146, startY_Unit + labelInterval * 2, 240, 40, "label11", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        InitLabelExt(labelustrong, 146, startY_Unit + labelInterval * 3, 240, 40, "label2", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME, 30);
 
         // 设置文本颜色
         labelduration->SetTextColor(textColor);
         labelutag->SetTextColor(textColor);
         labelutime->SetTextColor(textColor);
-        labelumile->SetTextColor(textColor);
         labeluheart->SetTextColor(textColor);
-        labelusteps->SetTextColor(textColor);
         labelustrong->SetTextColor(textColor);
 
         // 初始化值
         InitLabel(labeltag, 146, startY_Value + 0 * labelInterval, 240, 60, "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
         labeltag->SetTextColor(Color::Green());
         InitLabel(labeltime, 146, startY_Value + 1 * labelInterval, 240, 60, "label14", "05:45:46", DEFAULT_VECTOR_FONT_FILENAME, 40);
-        labeltime->SetTextColor(Color::Orange());
-        InitLabel(labelmile, 146, startY_Value + 2 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40);
-        labelmile->SetTextColor(Color::Blue());
-        InitLabel(labelheart, 146, startY_Value + 3 * labelInterval, 240, 60, "label16", "144", DEFAULT_VECTOR_FONT_FILENAME, 40);
+        labeltime->SetTextColor(Color::Red());
+        InitLabel(labelheart, 146, startY_Value + 2 * labelInterval, 240, 60, "label16", "144", DEFAULT_VECTOR_FONT_FILENAME, 40);
         labelheart->SetTextColor(Color::Yellow());
-        InitLabel(labelsteps, 146, startY_Value + 4 * labelInterval, 240, 60, "label16", "5000", DEFAULT_VECTOR_FONT_FILENAME, 40);
-        labelsteps->SetTextColor(Color::Green());
-        InitLabel(labelstrong, 146, startY_Value + 5 * labelInterval, 240, 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
-        labelstrong->SetTextColor(Color::Orange());
+        InitLabel(labelstrong, 146, startY_Value + 3 * labelInterval, 240, 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
+        labelstrong->SetTextColor(Color::Red());
 
         scrollView_->Add(labeltype);
         scrollView_->Add(labelsport);
         scrollView_->Add(labeltime);
         scrollView_->Add(labelutag);
         scrollView_->Add(labelutime);
-        scrollView_->Add(labelumile);
         scrollView_->Add(labeluheart);
         scrollView_->Add(labelustrong);
-        scrollView_->Add(labelusteps);
 
         scrollView_->Add(labeltag);
         scrollView_->Add(labelduration);
-        scrollView_->Add(labelmile);
         scrollView_->Add(labelheart);
         scrollView_->Add(labelstrong);
+
+#if UI_UPDATA
+        InitLabelExt(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        InitLabelExt(labelusteps, 146, startY_Unit + labelInterval * 4, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        labelumile->SetTextColor(textColor);
+        labelusteps->SetTextColor(textColor);
+
+        InitLabel(labelmile, 146, startY_Value + 2 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40);
+        labelmile->SetTextColor(Color::Blue());
+        InitLabel(labelsteps, 146, startY_Value + 4 * labelInterval, 240, 60, "label16", "5000", DEFAULT_VECTOR_FONT_FILENAME, 40);
+        labelsteps->SetTextColor(Color::Green());
+
+        scrollView_->Add(labelumile);
+        scrollView_->Add(labelusteps);
+        scrollView_->Add(labelmile);
         scrollView_->Add(labelsteps);
+#endif
     }
     /* InitView:初始化界面*/
     void TraingEnddataView ::InitView()
@@ -158,7 +169,7 @@ namespace OHOS
     {
         if (!TraingModel::GetInstance()->GetIsSpecial())
             return;
-
+#if UI_UPDATA
         /*线条*/
         InitImageView(imageLine8, 97, baseY + 6 * lineHeight, 80, 20, "image8", LINE_IMAGE);   // imageLine8
         InitImageView(imageLine9, 97, baseY + 7 * lineHeight, 80, 20, "image9", LINE_IMAGE);   // imageLine9
@@ -186,6 +197,22 @@ namespace OHOS
         scrollView_->Add(labelavpace);
         scrollView_->Add(labelfreq);
         scrollView_->Add(labelstride);
+#else
+        InitLabelExt(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        InitLabelExt(labelusteps, 146, startY_Unit + labelInterval * 4, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        labelumile->SetTextColor(textColor);
+        labelusteps->SetTextColor(textColor);
+
+        InitLabel(labelsteps, 146, startY_Value + 4 * labelInterval, 240, 60, "label16", "5000", DEFAULT_VECTOR_FONT_FILENAME, 40);
+        labelsteps->SetTextColor(Color::Green());
+        InitLabel(labelmile, 146, startY_Value + 5 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40);
+        labelmile->SetTextColor(Color::Blue());
+
+        scrollView_->Add(labelumile);
+        scrollView_->Add(labelusteps);
+        scrollView_->Add(labelmile);
+        scrollView_->Add(labelsteps);
+#endif
     }
     // 配置退出相关位置
     void TraingEnddataView::ExitView()
@@ -193,13 +220,13 @@ namespace OHOS
         if (TraingModel::GetInstance()->GetIsSpecial())
         {
             // 初始化退出(最后 要根据前方配置设置位置)
-            InitLabelExt(exitLabel, 80, 1404, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
-            InitButtonExt(exitButton, 42, 1484, 380, 100, BUTTONBACK, STR_CLOSE, 30);
+            InitLabelExt(exitLabel, 80, 1033, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+            InitButtonExt(exitButton, 42, 1083, 380, 100, BUTTONBACK, STR_CLOSE, 30);
         }
         else
         {
-            InitLabelExt(exitLabel, 80, 1024, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
-            InitButtonExt(exitButton, 42, 1111, 380, 100, BUTTONBACK, STR_CLOSE, 30);
+            InitLabelExt(exitLabel, 80, 773, 300, 40, "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+            InitButtonExt(exitButton, 42, 823, 380, 100, BUTTONBACK, STR_CLOSE, 30);
         }
         exitLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
         scrollView_->Add(exitLabel);
@@ -311,7 +338,10 @@ namespace OHOS
         if (!imageStr.empty())
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "imageIcon %s\r\n", imageStr.c_str());
-            imageIcon->SetSrc(imageStr.c_str());
+            if (imageIcon) // 检查 imageIcon 是否为空
+            {
+                imageIcon->SetSrc(imageStr.c_str());
+            }
         }
         else
         {
@@ -320,26 +350,38 @@ namespace OHOS
 
         // 训练类
         UIResourceTextId typeId = TraingModel::GetInstance()->GetSportTypeId(enddata->sportType);
-        labeltype->SetTextId(typeId);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport Type ID set: %d\r\n", typeId); // 打印运动类型ID
+        if (labeltype) // 检查 labeltype 是否为空
+        {
+            labeltype->SetTextId(typeId);
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport Type ID set: %d\r\n", typeId); // 打印运动类型ID
+        }
 
         // 运动项目
-        labelsport->SetTextId(enddata->sportId);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport ID set: %d\r\n", enddata->sportId); // 打印运动项目ID
+        if (labelsport) // 检查 labelsport 是否为空
+        {
+            labelsport->SetTextId(enddata->sportId);
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport ID set: %d\r\n", enddata->sportId); // 打印运动项目ID
+        }
 
         // 运动开始结束时间
         std::string startTimeStr = enddata->start_time;
         std::string endTimeStr = enddata->end_time;
         std::string durationStr = startTimeStr + "-" + endTimeStr;
-        labelduration->SetText(durationStr.c_str());
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration set: %s\r\n", durationStr.c_str()); // 打印运动时间段
+        if (labelduration) // 检查 labelduration 是否为空
+        {
+            labelduration->SetText(durationStr.c_str());
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration set: %s\r\n", durationStr.c_str()); // 打印运动时间段
+        }
 
         // 运动目标
         if (enddata->goaldegree)
         {
             std::string tagStr = std::to_string(enddata->goaldegree) + "%";
-            labeltag->SetText(tagStr.c_str());
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Goal degree set: %s\r\n", tagStr.c_str()); // 打印运动目标
+            if (labeltag) // 检查 labeltag 是否为空
+            {
+                labeltag->SetText(tagStr.c_str());
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Goal degree set: %s\r\n", tagStr.c_str()); // 打印运动目标
+            }
         }
         else
         {
@@ -349,45 +391,69 @@ namespace OHOS
         // 运动时长
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration of the sport: %d\r\n", enddata->duration);
         std::string timeStr = TraingModel::GetInstance()->GetTrainingTime();
-        labeltime->SetText(timeStr.c_str());
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training time set: %s\r\n", timeStr.c_str()); // 打印训练时间
+        if (labeltime) // 检查 labeltime 是否为空
+        {
+            labeltime->SetText(timeStr.c_str());
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Training time set: %s\r\n", timeStr.c_str()); // 打印训练时间
+        }
 
         // 运动距离
         std::string mileStr = std::to_string(enddata->distance);
-        labelmile->SetText(mileStr.c_str());
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Distance set: %s\r\n", mileStr.c_str()); // 打印运动距离
+        if (labelmile) // 检查 labelmile 是否为空
+        {
+            labelmile->SetText(mileStr.c_str());
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Distance set: %s\r\n", mileStr.c_str()); // 打印运动距离
+        }
 
         // 平均心率
         std::string heartStr = std::to_string(enddata->avgheart);
-        labelheart->SetText(heartStr.c_str());
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average heart rate set: %s\r\n", heartStr.c_str()); // 打印平均心率
+        if (labelheart) // 检查 labelheart 是否为空
+        {
+            labelheart->SetText(heartStr.c_str());
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average heart rate set: %s\r\n", heartStr.c_str()); // 打印平均心率
+        }
 
         // 步数
         std::string stepStr = std::to_string(enddata->steps);
-        labelsteps->SetText(stepStr.c_str());
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Steps set: %s\r\n", stepStr.c_str()); // 打印步数
+        if (labelsteps) // 检查 labelsteps 是否为空
+        {
+            labelsteps->SetText(stepStr.c_str());
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Steps set: %s\r\n", stepStr.c_str()); // 打印步数
+        }
 
         // 训练强度
         UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity();
-        labelstrong->SetTextId(intensityid);
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Intensity ID set: %d\r\n", intensityid); // 打印训练强度ID
+        if (labelstrong) // 检查 labelstrong 是否为空
+        {
+            labelstrong->SetTextId(intensityid);
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Intensity ID set: %d\r\n", intensityid); // 打印训练强度ID
+        }
 
         if (TraingModel::GetInstance()->GetIsSpecial())
         {
             // 平均配速
             std::string avpaceStr = std::to_string(enddata->apc);
-            labelavpace->SetText(avpaceStr.c_str());
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average pace set: %s\r\n", avpaceStr.c_str()); // 打印平均配速
+            if (labelavpace) // 检查 labelavpace 是否为空
+            {
+                labelavpace->SetText(avpaceStr.c_str());
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average pace set: %s\r\n", avpaceStr.c_str()); // 打印平均配速
+            }
 
             // 步频
             std::string freqStr = std::to_string(enddata->cdc);
-            labelfreq->SetText(freqStr.c_str());
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Cadence set: %s\r\n", freqStr.c_str()); // 打印步频
+            if (labelfreq) // 检查 labelfreq 是否为空
+            {
+                labelfreq->SetText(freqStr.c_str());
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Cadence set: %s\r\n", freqStr.c_str()); // 打印步频
+            }
 
             // 步幅
             std::string strideStr = std::to_string(enddata->std);
-            labelstride->SetText(strideStr.c_str());
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n", strideStr.c_str()); // 打印步幅
+            if (labelstride) // 检查 labelstride 是否为空
+            {
+                labelstride->SetText(strideStr.c_str());
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n", strideStr.c_str()); // 打印步幅
+            }
         }
 
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingEnddataView data initialization complete.\r\n");