From: Caisking <3449750381@qq.com> Date: Mon, 23 Sep 2024 12:57:13 +0000 (+0800) Subject: #667 运动结束界面,数据不完整,数据内容不丰富,没有设置目标也会显示目标完成度 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=85581818aa9c63c5fd14271ed02a6d789b05a768;p=mirrors%2FFD230.git #667 运动结束界面,数据不完整,数据内容不丰富,没有设置目标也会显示目标完成度 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h index be75218f1..2ed83144d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h @@ -2,116 +2,121 @@ * @Date: 2024-04-15 10:55:58 * @LastEditors: Caisking 3449750381@qq.com * @LastEditTime: 2024-04-25 10:32:38 - * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h + * @FilePath: + * /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h */ /*** * @Date: 2024-04-15 10:55:58 * @LastEditors: Caisking 3449750381@qq.com * @LastEditTime: 2024-04-16 09:27:11 - * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h + * @FilePath: + * /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataView.h */ #ifndef _TraingEnddata_VIEW_H #define _TraingEnddata_VIEW_H #include "BaseView.h" #include "View.h" -#include -#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/icon_adapter.h" #include "components/ui_button.h" +#include "components/ui_card_page.h" +#include "components/ui_chart.h" #include "components/ui_image_animator.h" +#include "components/ui_image_view.h" +#include "components/ui_label.h" #include "components/ui_label_button_ext.h" -#include "components/ui_chart.h" +#include "components/ui_label_ext.h" #include "components/ui_list.h" -#include "components/icon_adapter.h" -#include "wearable_log.h" +#include "components/ui_view_group.h" #include "ohos_types.h" -#include "components/ui_card_page.h" +#include "wearable_log.h" +#include +#include "TraingEnddataPresenter.h" +#include "traing/Training_UiConfig.h" #include "traing/include/TraingModel.h" #include "uicomponents/UIComponents.h" -#include "traing/Training_UiConfig.h" -#include "TraingEnddataPresenter.h" -namespace OHOS -{ +namespace OHOS { #define BUTTONBACK "button1" - class TraingEnddataPresenter; - class TraingEnddataView : public View - { +class TraingEnddataPresenter; +class TraingEnddataView : public View { - public: - TraingEnddataView(); - virtual ~TraingEnddataView(); - static TraingEnddataView *GetInstance(void); +public: + TraingEnddataView(); + virtual ~TraingEnddataView(); + static TraingEnddataView *GetInstance(void); - void OnStart() override; - void OnSetUpView() override; - void OnTearDownView() override; - void OnStop() override; - void InitView(); - void DeInit(); + void OnStart() override; + void OnSetUpView() override; + void OnTearDownView() override; + void OnStop() override; + void InitView(); + void DeInit(); - void PreLoad(void); + void PreLoad(void); - void InitData(void); - void InitializeImageViews(void); - void InitializeLabels(void); - void SetLabelsTextColor(const std::vector &labels, OHOS::ColorType color); - void AddLabelsToScrollView(const std::vector &labels); - void InitializeExitControls(void); + void InitData(void); + void InitializeImageViews(void); + void InitializeLabels(void); + void SetLabelsTextColor(const std::vector &labels, + OHOS::ColorType color); + void AddLabelsToScrollView(const std::vector &labels); + void InitializeExitControls(void); - void BonusdataView(); - void ExitView(); + void BonusdataView(); + void ExitView(); - private: - UIView::OnDragListener *draglistener{nullptr}; - TraingEnddataView(TraingEnddataView &&) = delete; - TraingEnddataView &operator=(TraingEnddataView &&) = delete; +private: + UIView::OnDragListener *draglistener{nullptr}; + TraingEnddataView(TraingEnddataView &&) = delete; + TraingEnddataView &operator=(TraingEnddataView &&) = delete; - UIViewGroup *container_ = nullptr; - UIScrollView *scrollView_ = nullptr; + UIViewGroup *container_ = nullptr; + UIScrollView *scrollView_ = nullptr; - UILabelExt *labelutime = nullptr; // u训练时间 - UILabelExt *labelutag = nullptr; // u训练完成度 - UILabelExt *labelumile = nullptr; // u训练距离 - UILabelExt *labeluheart = nullptr; // u训练平均心率 - UILabelExt *labelustrong = nullptr; // u训练强度 - UILabelExt *labelusteps = nullptr; // u训练步数 - UILabelExt *labeluavpace = nullptr; // u训练平均配速 - UILabelExt *labelufreq = nullptr; // u训练步频 - UILabelExt *labelustride = nullptr; // u训练步幅 + UILabelExt *labelutime = nullptr; // u训练时间 + UILabelExt *labelutag = nullptr; // u训练完成度 + UILabelExt *labelumile = nullptr; // u训练距离 + UILabelExt *labeluheart = nullptr; // u训练平均心率 + UILabelExt *labelustrong = nullptr; // u训练强度 + UILabelExt *labelusteps = nullptr; // u训练步数 + UILabelExt *labeluavpace = nullptr; // u训练平均配速 + UILabelExt *labelufreq = nullptr; // u训练步频 + UILabelExt *labelustride = nullptr; // u训练步幅 + UILabelExt *labelucalorie = nullptr; // u训练卡路里 - UILabelExt *labeltype = nullptr; // 训练类型 - UILabelExt *labelsport = nullptr; // 训练项 - UILabelExt *labelduration = nullptr; // 训练时间 - UILabelExt *labeltag = nullptr; // 训练目标完成度 - UILabelExt *labeltime = nullptr; // 训练时长 - UILabelExt *labelmile = nullptr; // 训练距离 - UILabelExt *labelheart = nullptr; // 训练平均心率 - UILabelExt *labelstrong = nullptr; // 训练强度 - UILabelExt *labelsteps = nullptr; // 训练步数 - UILabelExt *labelavpace = nullptr; // 训练平均配速 - UILabelExt *labelfreq = nullptr; // 训练步频 - UILabelExt *labelstride = nullptr; // 训练步幅 + UILabelExt *labeltype = nullptr; // 训练类型 + UILabelExt *labelsport = nullptr; // 训练项 + UILabelExt *labelduration = nullptr; // 训练时间 + UILabelExt *labeltag = nullptr; // 训练目标完成度 + UILabelExt *labeltime = nullptr; // 训练时长 + UILabelExt *labelmile = nullptr; // 训练距离 + UILabelExt *labelheart = nullptr; // 训练平均心率 + UILabelExt *labelstrong = nullptr; // 训练强度 + UILabelExt *labelsteps = nullptr; // 训练步数 + UILabelExt *labelavpace = nullptr; // 训练平均配速 + UILabelExt *labelfreq = nullptr; // 训练步频 + UILabelExt *labelstride = nullptr; // 训练步幅 + UILabelExt *labelcalories = nullptr; // 训练卡路里 - UILabelExt *exitLabel = nullptr; // APP提醒 - UILabelButtonExt *exitButton = nullptr; // 返回按键 + UILabelExt *exitLabel = nullptr; // APP提醒 + UILabelButtonExt *exitButton = nullptr; // 返回按键 - UIImageView *imageIcon = nullptr; - UIImageView *imageLine2 = nullptr; - UIImageView *imageLine3 = nullptr; - UIImageView *imageLine4 = nullptr; - UIImageView *imageLine5 = nullptr; - UIImageView *imageLine6 = nullptr; - UIImageView *imageLine7 = nullptr; - UIImageView *imageLine8 = nullptr; - UIImageView *imageLine9 = nullptr; - UIImageView *imageLine10 = nullptr; + UIImageView *imageIcon = nullptr; + UIImageView *imageLine2 = nullptr; + UIImageView *imageLine3 = nullptr; + UIImageView *imageLine4 = nullptr; + UIImageView *imageLine5 = nullptr; + UIImageView *imageLine6 = nullptr; + UIImageView *imageLine7 = nullptr; + UIImageView *imageLine8 = nullptr; + UIImageView *imageLine9 = nullptr; + UIImageView *imageLine10 = nullptr; + UIImageView *imageLine11 = nullptr; + UIImageView *imageLine12 = nullptr; - bool viewiInitStatus{false}; - }; + bool viewiInitStatus{false}; +}; } // namespace OHOS #endif // TraingEnddata_PRESENTER_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp index ded48ee29..fd7666fd1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp @@ -1,524 +1,626 @@ #include "traing/include/TraingEnddataView.h" -#include "common/image_cache_manager.h" -#include "components/ui_label_ext.h" -#include "ui_resource_string.h" #include "UiConfig.h" -#include "ui_resource_image.h" -#include +#include "common/image_cache_manager.h" #include "components/ui_button.h" +#include "components/ui_label_ext.h" +#include "traing/Training_UiConfig.h" #include "traing/include/TraingModel.h" +#include "ui_resource_image.h" +#include "ui_resource_string.h" #include "uicomponents/UIComponents.h" -#include "traing/Training_UiConfig.h" -#include // 包含数学函数库,用于四舍五入 -#include // 包含字符串处理库,用于使用 std::to_string +#include // 包含数学函数库,用于四舍五入 +#include +#include // 用于 std::ostringstream +#include // 包含字符串处理库,用于使用 std::to_string +#include /*测试打印函数*/ -#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 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 -{ +namespace OHOS { - static const int startY_Unit = 252; - static const int startY_Value = 292; - static const int labelHeight = 40; - static const int labelInterval = 130; - ColorType textColor = Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f); +static const int startY_Unit = 252; +static const int startY_Value = 292; +static const int labelHeight = 40; +static const int labelInterval = 130; +ColorType textColor = Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f); - static const int initialY = 132; - static const int lineHeight = 130; - static const int iconHeight = 80; - static const int verticalOffset = 2; - static const int baseY = 214; +static const int initialY = 132; +static const int lineHeight = 130; +static const int iconHeight = 80; +static const int verticalOffset = 2; +static const int baseY = 214; - static TraingEnddataView *g_pTraingEnddataView{nullptr}; +static TraingEnddataView *g_pTraingEnddataView{nullptr}; - TraingEnddataView::TraingEnddataView() - { - g_pTraingEnddataView = this; - } +TraingEnddataView::TraingEnddataView() { g_pTraingEnddataView = this; } - TraingEnddataView::~TraingEnddataView() - { - // DeInit(); - UIViewGroup *tmpGroup = dynamic_cast(container_); - UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup); +TraingEnddataView::~TraingEnddataView() { + // DeInit(); + scrollView_->RemoveAll(); - g_pTraingEnddataView = nullptr; - } + UIViewGroup *tmpGroup = dynamic_cast(container_); + UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup); - TraingEnddataView *TraingEnddataView::GetInstance() - { + g_pTraingEnddataView = nullptr; +} - return g_pTraingEnddataView; - } +TraingEnddataView *TraingEnddataView::GetInstance() { - // 初始化图像 - void TraingEnddataView ::InitializeImageViews() - { - // 初始化主图标 - InitImageView(imageIcon, 80, initialY, 54, iconHeight, "image", WALKING_54_IMAGE); - - InitImageView(imageLine2, 97, baseY, 80, 20, "image2", LINE_IMAGE); // imageLine2 - 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 - 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); -#endif - } - void TraingEnddataView ::InitializeLabels(void) - { - /*title and sport*/ - InitRollLabel(labeltype, 83, 50, 300, 35, "label1", STR_EXERCISE_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitLabel(labelsport, 147, 140, 240, 35, "label6", "健走", DEFAULT_VECTOR_FONT_FILENAME, 30); - InitLabel(labelduration, 146, 179, 240, 40, "label7", "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28); - - // 初始化单位Label - InitRollLabel(labelutag, 146, startY_Unit + labelInterval * 0, 240, 40, "label8", STR_GOAL_ACCOMPLISHMENT_DEGREE, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(labelutime, 146, startY_Unit + labelInterval * 1, 240, 40, "label9", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(labeluheart, 146, startY_Unit + labelInterval * 2, 240, 40, "label11", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(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); - labeluheart->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", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40); - labeltime->SetTextColor(Color::Red()); - InitLabel(labelheart, 146, startY_Value + 2 * labelInterval, 240, 60, "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelheart->SetTextColor(Color::Yellow()); - 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(labeluheart); - scrollView_->Add(labelustrong); - - scrollView_->Add(labeltag); - scrollView_->Add(labelduration); - scrollView_->Add(labelheart); - scrollView_->Add(labelstrong); - -#if UI_UPDATA - InitRollLabel(labelumile, 146, startY_Unit + labelInterval * 2, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(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() - { + return g_pTraingEnddataView; +} + +// 初始化图像 +void TraingEnddataView ::InitializeImageViews() { + // 初始化主图标 + InitImageView(imageIcon, 80, initialY, 54, iconHeight, "image", + WALKING_54_IMAGE); + + InitImageView(imageLine2, 97, baseY, 80, 20, "image2", + LINE_IMAGE); // imageLine2 + 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 + + bool isincludeTag = TraingModel::GetInstance()->GetSportTag(); + if (isincludeTag) { + InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image7", + LINE_IMAGE); + scrollView_->Add(imageLine6); + } + + scrollView_->Add(imageLine2); + scrollView_->Add(imageLine3); + scrollView_->Add(imageLine4); + scrollView_->Add(imageLine5); + + scrollView_->Add(imageIcon); +} +/* + InitView:初始化界面 + + 普通运动: + 时长,平均心率,训练强度,卡路里,目标完成度 + 算法支持运动: + 时长,平均心率,训练强度,卡路里,目标完成度 + 距离,步数,平均配速,步幅,步频, + + 蓝色:距离、平均配速 + 黄色:训练时长 + 橙色:平均心率、训练强度 + 绿色:步数,步幅,步频,平均配速,卡路里,目标完成度 +*/ +void TraingEnddataView ::InitializeLabels() { + + /*title and sport*/ + InitRollLabel(labeltype, 83, 50, 300, 35, "label1", STR_EXERCISE_LIST, + DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(labelsport, 147, 140, 240, 35, "label6", "健走", + DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(labelduration, 146, 179, 240, 40, "label7", "13:00:22-15:00:12", + DEFAULT_VECTOR_FONT_FILENAME, 28); + // 初始化Label + //时长 + InitRollLabel(labelutime, 146, startY_Unit + labelInterval * 0, 240, 40, + "label8", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME, + 30); + InitLabel(labeltime, 146, startY_Value + 0 * labelInterval, 240, 60, + "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40); + labeltime->SetTextColor(Color::Yellow()); + //平均心率 + InitRollLabel(labeluheart, 146, startY_Unit + labelInterval * 1, 240, 40, + "label9", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME, + 30); + InitLabel(labelheart, 146, startY_Value + 1 * labelInterval, 240, 60, + "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelheart->SetTextColor(Color::Orange()); + // 训练强度 + InitRollLabel(labelustrong, 146, startY_Unit + labelInterval * 2, 240, 40, + "label11", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME, + 30); + InitLabel(labelstrong, 146, startY_Value + 2 * labelInterval, 240, 60, + "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30); + labelstrong->SetTextColor(Color::Orange()); + //卡路里 + InitRollLabel(labelucalorie, 146, startY_Unit + labelInterval * 3, 240, 40, + "label2", STR_CALORIE_SETTING, DEFAULT_VECTOR_FONT_FILENAME, + 30); + InitLabel(labelcalories, 146, startY_Value + 3 * labelInterval, 240, 60, + "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelcalories->SetTextColor(Color::Green()); + + //目标完成度 + bool isincludeTag = TraingModel::GetInstance()->GetSportTag(); + if (isincludeTag) { + InitRollLabel(labelutag, 146, startY_Unit + labelInterval * 4, 240, 40, + "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE, + DEFAULT_VECTOR_FONT_FILENAME, 30); + labelutag->SetTextColor(textColor); + InitLabel(labeltag, 146, startY_Value + 4 * labelInterval, 240, 60, + "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); + labeltag->SetTextColor(Color::Green()); + scrollView_->Add(labelutag); + scrollView_->Add(labeltag); + } + + // 设置文本颜色 + labelduration->SetTextColor(textColor); + labelutime->SetTextColor(textColor); + labeluheart->SetTextColor(textColor); + labelustrong->SetTextColor(textColor); + labelucalorie->SetTextColor(textColor); + + scrollView_->Add(labeltype); + scrollView_->Add(labelsport); + scrollView_->Add(labeltime); + + scrollView_->Add(labelutime); + scrollView_->Add(labeluheart); + scrollView_->Add(labelustrong); + scrollView_->Add(labelucalorie); + + scrollView_->Add(labelduration); + scrollView_->Add(labelheart); + scrollView_->Add(labelstrong); + scrollView_->Add(labelcalories); +} +// 增加额外配置 +void TraingEnddataView::BonusdataView() { + if (!TraingModel::GetInstance()->GetIsSpecial()) + return; + + bool isincludeTag = TraingModel::GetInstance()->GetSportTag(); + int tagflge = isincludeTag ? 1 : 0; + + // 初始化线条 + + InitImageView(imageLine8, 97, baseY + (4 + tagflge) * lineHeight, 80, 20, + "image8", LINE_IMAGE); // imageLine8 + InitImageView(imageLine9, 97, baseY + (5 + tagflge) * lineHeight, 80, 20, + "image9", LINE_IMAGE); // imageLine9 + InitImageView(imageLine10, 97, baseY + (6 + tagflge) * lineHeight, 80, 20, + "image10", LINE_IMAGE); // imageLine10 + InitImageView(imageLine11, 97, baseY + (7 + tagflge) * lineHeight, 80, 20, + "image11", LINE_IMAGE); + InitImageView(imageLine12, 97, baseY + (8 + tagflge) * lineHeight, 80, 20, + "image7", LINE_IMAGE); + + scrollView_->Add(imageLine8); + scrollView_->Add(imageLine9); + scrollView_->Add(imageLine10); + scrollView_->Add(imageLine11); + scrollView_->Add(imageLine12); + + // 初始化标签 + // 距离 + InitRollLabel(labelumile, 146, startY_Unit + labelInterval * (4 + tagflge), + 240, 40, "label10", STR_RANGE_MILE, + DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(labelmile, 146, startY_Value + (4 + tagflge) * labelInterval, 240, + 60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelumile->SetTextColor(textColor); + labelmile->SetTextColor(Color::Blue()); + + // 步数 + InitRollLabel(labelusteps, 146, startY_Unit + labelInterval * (5 + tagflge), + 240, 40, "label12", STR_STEP_NUMBER, + DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(labelsteps, 146, startY_Value + (5 + tagflge) * labelInterval, 240, + 60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelusteps->SetTextColor(textColor); + labelsteps->SetTextColor(Color::Green()); + + // 平均配速 + InitRollLabel(labeluavpace, 146, startY_Unit + labelInterval * (6 + tagflge), + 240, 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME, + 30); + InitLabel(labelavpace, 146, startY_Value + (6 + tagflge) * labelInterval, 240, + 60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40); + labeluavpace->SetTextColor(textColor); + labelavpace->SetTextColor(Color::Green()); + + // 步幅 + InitRollLabel(labelustride, 146, startY_Unit + labelInterval * (7 + tagflge), + 240, 40, "label2", STR_STEP_LENGTH, + DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(labelstride, 146, startY_Value + (7 + tagflge) * labelInterval, 240, + 60, "label17", "77", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelustride->SetTextColor(textColor); + labelstride->SetTextColor(Color::Green()); + + // 步频 + InitRollLabel(labelufreq, 146, startY_Unit + labelInterval * (8 + tagflge), + 240, 40, "label2", STR_STEP_FREQUENCY, + DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(labelfreq, 146, startY_Value + (8 + tagflge) * labelInterval, 240, + 60, "label17", "154", DEFAULT_VECTOR_FONT_FILENAME, 40); + labelufreq->SetTextColor(textColor); + labelfreq->SetTextColor(Color::Green()); + + scrollView_->Add(labelumile); + scrollView_->Add(labelmile); + scrollView_->Add(labelusteps); + scrollView_->Add(labelsteps); + scrollView_->Add(labeluavpace); + scrollView_->Add(labelavpace); + scrollView_->Add(labelustride); + scrollView_->Add(labelstride); + scrollView_->Add(labelufreq); + scrollView_->Add(labelfreq); +} +// 配置退出相关位置 +void TraingEnddataView::ExitView() { + + bool isincludeTag = TraingModel::GetInstance()->GetSportTag(); + int tagflge = isincludeTag ? 1 : 0; + + if (TraingModel::GetInstance()->GetIsSpecial()) { + // 初始化退出(最后 要根据前方配置设置位置) + // 是否为特殊运动 + // 是否包含目标 + InitRollLabel(exitLabel, 80, + (startY_Value + labelInterval * (8 + tagflge) + 120), 300, 40, + "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitButtonExt(exitButton, 42, + (startY_Value + labelInterval * (8 + tagflge) + 220), 380, + 100, BUTTONBACK, STR_CLOSE, 30); + } else { + InitRollLabel(exitLabel, 80, + (startY_Value + labelInterval * (3 + tagflge) + 120), 300, 40, + "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitButtonExt(exitButton, 42, + (startY_Value + labelInterval * (3 + tagflge) + 220), 380, + 100, BUTTONBACK, STR_CLOSE, 30); + } + exitLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f)); + scrollView_->Add(exitLabel); + exitButton->SetOnClickListener(presenter_); + scrollView_->Add(exitButton); +} +void TraingEnddataView ::InitView() { - scrollView_ = new UIScrollView(); + scrollView_ = new UIScrollView(); - scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - scrollView_->SetScrollBlankSize(50); - // scrollView_->SetReboundSize(35); - scrollView_->SetHorizontalScrollState(false); - scrollView_->RequestFocus(); - scrollView_->SetRotateFactor(1.0); - scrollView_->SetMaxScrollDistance(1000); - scrollView_->SetDragACCLevel(5); - scrollView_->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/ - scrollView_->SetTouchable(true); - scrollView_->SetDraggable(true); + scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), + Screen::GetInstance().GetHeight()); + scrollView_->SetScrollBlankSize(100); + scrollView_->SetReboundSize(50); + scrollView_->SetHorizontalScrollState(false); + scrollView_->RequestFocus(); + scrollView_->SetRotateFactor(1.0); + scrollView_->SetMaxScrollDistance(1000); + scrollView_->SetDragACCLevel(5); + scrollView_->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/ + scrollView_->SetTouchable(true); + scrollView_->SetDraggable(true); - /*初始化线条*/ - InitializeImageViews(); + /*初始化线条*/ + InitializeImageViews(); - /*初始化label*/ - InitializeLabels(); + /*初始化label*/ + InitializeLabels(); - BonusdataView(); // 配置额外数据 + BonusdataView(); // 配置额外数据 - ExitView(); // 配置退出组件 + ExitView(); // 配置退出组件 - container_->Add(scrollView_); - } - // 增加额外配置 - void TraingEnddataView::BonusdataView() + container_->Add(scrollView_); +} + +/* DeInit:删除组件 */ +void TraingEnddataView::DeInit() { + scrollView_->RemoveAll(); + + /*单位label*/ + delete labelutime; + labelutime = nullptr; + delete labelutag; + labelutag = nullptr; + delete labelusteps; + labelusteps = nullptr; + delete labelumile; + labelumile = nullptr; + delete labeluheart; + labeluheart = nullptr; + delete labelustrong; + labelustrong = nullptr; + delete labeluavpace; + labeluavpace = nullptr; + delete labelufreq; + labelufreq = nullptr; + delete labelustride; + labelustride = nullptr; + + /*值label*/ + delete labeltype; + labeltype = nullptr; + delete labelsport; + labelsport = nullptr; + delete labelduration; + labelduration = nullptr; + delete labeltag; + labeltag = nullptr; + delete labeltime; + labeltime = nullptr; + delete labelmile; + labelmile = nullptr; + delete labelheart; + labelheart = nullptr; + delete labelstrong; + labelstrong = nullptr; + delete labelsteps; + labelsteps = nullptr; + delete labelavpace; + labelavpace = nullptr; + delete labelfreq; + labelfreq = nullptr; + delete labelstride; + labelstride = nullptr; + + /*图片label*/ + delete imageIcon; + imageIcon = nullptr; + delete imageLine2; + imageLine2 = nullptr; + delete imageLine3; + imageLine3 = nullptr; + delete imageLine4; + imageLine4 = nullptr; + delete imageLine5; + imageLine5 = nullptr; + delete imageLine6; + imageLine6 = nullptr; + delete imageLine8; + imageLine8 = nullptr; + delete imageLine9; + imageLine9 = nullptr; + delete imageLine10; + imageLine10 = nullptr; + + /*退出相关*/ + delete exitButton; + exitButton = nullptr; + delete exitLabel; + exitLabel = nullptr; + + delete scrollView_; + scrollView_ = nullptr; +} + +void TraingEnddataView::PreLoad(void) { + if (!viewiInitStatus) { + InitView(); + viewiInitStatus = true; + } +} + +void TraingEnddataView::InitData() { + SportData *enddata = TraingModel::GetInstance()->GetSportdata(); + + if (enddata == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, + "Enddata is nullptr. Exiting InitData()...\r\n"); + return; + } + + // 训练图标Icon + std::string imageStr = + TraingModel::GetInstance()->GetSportType(enddata->sportType); + if (!imageStr.empty()) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "imageIcon %s\r\n", + imageStr.c_str()); + if (imageIcon) // 检查 imageIcon 是否为空 { - 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 - InitImageView(imageLine10, 97, baseY + 8 * lineHeight, 80, 20, "image10", LINE_IMAGE); // imageLine10 - scrollView_->Add(imageLine8); - scrollView_->Add(imageLine9); - scrollView_->Add(imageLine10); - /*label*/ - InitRollLabel(labeluavpace, 146, startY_Unit + labelInterval * 6, 240, 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(labelufreq, 146, startY_Unit + labelInterval * 7, 240, 40, "label2", STR_STEP_FREQUENCY, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(labelustride, 146, startY_Unit + labelInterval * 8, 240, 40, "label2", STR_STEP_LENGTH, DEFAULT_VECTOR_FONT_FILENAME, 30); - labeluavpace->SetTextColor(textColor); - labelufreq->SetTextColor(textColor); - labelustride->SetTextColor(textColor); - scrollView_->Add(labeluavpace); - scrollView_->Add(labelufreq); - scrollView_->Add(labelustride); - - InitLabel(labelavpace, 146, startY_Value + 6 * labelInterval, 240, 60, "label17", "5.45", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelavpace->SetTextColor(Color::Blue()); - InitLabel(labelfreq, 146, startY_Value + 7 * labelInterval, 240, 60, "label17", "154", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelfreq->SetTextColor(Color::Green()); - InitLabel(labelstride, 146, startY_Value + 8 * labelInterval, 240, 60, "label17", "77", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelstride->SetTextColor(Color::Green()); - scrollView_->Add(labelavpace); - scrollView_->Add(labelfreq); - scrollView_->Add(labelstride); -#else - InitRollLabel(labelumile, 146, startY_Unit + labelInterval * 4, 240, 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME, 30); - InitRollLabel(labelusteps, 146, startY_Unit + labelInterval * 5, 240, 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME, 30); - labelumile->SetTextColor(textColor); - labelusteps->SetTextColor(textColor); - - InitLabel(labelmile, 146, startY_Value + 4 * labelInterval, 240, 60, "label15", "8,301", DEFAULT_VECTOR_FONT_FILENAME, 40); - labelmile->SetTextColor(Color::Blue()); - InitLabel(labelsteps, 146, startY_Value + 5 * 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); - - 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); -#endif + imageIcon->SetSrc(imageStr.c_str()); } - // 配置退出相关位置 - void TraingEnddataView::ExitView() + } else { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, + "Failed to get image string. Skipping imageIcon update.\r\n"); + } + + // 训练类 + UIResourceTextId typeId = + TraingModel::GetInstance()->GetSportTypeId(enddata->sportType); + if (labeltype) // 检查 labeltype 是否为空 + { + labeltype->SetTextId(typeId); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport Type ID set: %d\r\n", + typeId); // 打印运动类型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; + 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) + "%"; + if (labeltag) // 检查 labeltag 是否为空 { - if (TraingModel::GetInstance()->GetIsSpecial()) - { - // 初始化退出(最后 要根据前方配置设置位置) - InitRollLabel(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 - { - InitRollLabel(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); - exitButton->SetOnClickListener(presenter_); - scrollView_->Add(exitButton); + labeltag->SetText(tagStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Goal degree set: %s\r\n", + tagStr.c_str()); // 打印运动目标 } - /* DeInit:删除组件 */ - void TraingEnddataView::DeInit() + } else { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, + "Enddata tag is null. Skipping labeltag update.\r\n"); + } + + // 运动时长 + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration of the sport: %d\r\n", + enddata->duration); + std::string timeStr = TraingModel::GetInstance()->GetTrainingTime(); + 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); + 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); + 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); + 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(); + if (labelstrong) // 检查 labelstrong 是否为空 + { + labelstrong->SetTextId(intensityid); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Intensity ID set: %d\r\n", + intensityid); // 打印训练强度ID + } + //卡路里 + std::string calStr = std::to_string(enddata->calories); + if (labelcalories) // 检查 labelcal 是否为空 + { + labelcalories->SetText(calStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Calories set: %s\r\n", + calStr.c_str()); // 打印卡路里 + } + + //特殊配置 + if (TraingModel::GetInstance()->GetIsSpecial()) { + // 平均配速 + // 需要计算一下 是秒 需要显示 分钟''秒'' + int totalSeconds = enddata->apc; // 总秒数 + int minutes = totalSeconds / 60; // 计算分钟 + int seconds = totalSeconds % 60; // 计算剩余秒数 + // 格式化为字符串 + std::ostringstream oss; + oss << minutes << "'" << seconds << "\""; // 生成 "X'Y\"" 格式的字符串 + std::string avpaceStr = oss.str(); // 得到字符串 + if (labelavpace) // 检查标签是否为空 { - scrollView_->RemoveAll(); - - /*单位label*/ - delete labelutime; - labelutime = nullptr; - delete labelutag; - labelutag = nullptr; - delete labelusteps; - labelusteps = nullptr; - delete labelumile; - labelumile = nullptr; - delete labeluheart; - labeluheart = nullptr; - delete labelustrong; - labelustrong = nullptr; - delete labeluavpace; - labeluavpace = nullptr; - delete labelufreq; - labelufreq = nullptr; - delete labelustride; - labelustride = nullptr; - - /*值label*/ - delete labeltype; - labeltype = nullptr; - delete labelsport; - labelsport = nullptr; - delete labelduration; - labelduration = nullptr; - delete labeltag; - labeltag = nullptr; - delete labeltime; - labeltime = nullptr; - delete labelmile; - labelmile = nullptr; - delete labelheart; - labelheart = nullptr; - delete labelstrong; - labelstrong = nullptr; - delete labelsteps; - labelsteps = nullptr; - delete labelavpace; - labelavpace = nullptr; - delete labelfreq; - labelfreq = nullptr; - delete labelstride; - labelstride = nullptr; - - /*图片label*/ - delete imageIcon; - imageIcon = nullptr; - delete imageLine2; - imageLine2 = nullptr; - delete imageLine3; - imageLine3 = nullptr; - delete imageLine4; - imageLine4 = nullptr; - delete imageLine5; - imageLine5 = nullptr; - delete imageLine6; - imageLine6 = nullptr; - delete imageLine8; - imageLine8 = nullptr; - delete imageLine9; - imageLine9 = nullptr; - delete imageLine10; - imageLine10 = nullptr; - - /*退出相关*/ - delete exitButton; - exitButton = nullptr; - delete exitLabel; - exitLabel = nullptr; - - delete scrollView_; - scrollView_ = nullptr; + labelavpace->SetText(avpaceStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Average pace set: %s\r\n", + avpaceStr.c_str()); // 打印平均配速 } - void TraingEnddataView::PreLoad(void) + // 步频 + std::string freqStr = std::to_string(enddata->cdc); + if (labelfreq) // 检查 labelfreq 是否为空 { - if (!viewiInitStatus) - { - InitView(); - viewiInitStatus = true; - } + labelfreq->SetText(freqStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Cadence set: %s\r\n", + freqStr.c_str()); // 打印步频 } - void TraingEnddataView::InitData() + // 步幅 + std::string strideStr = std::to_string(enddata->std); + if (labelstride) // 检查 labelstride 是否为空 { - SportData *enddata = TraingModel::GetInstance()->GetSportdata(); - - if (enddata == nullptr) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Enddata is nullptr. Exiting InitData()...\r\n"); - return; - } - - // 训练图标Icon - std::string imageStr = TraingModel::GetInstance()->GetSportType(enddata->sportType); - if (!imageStr.empty()) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "imageIcon %s\r\n", imageStr.c_str()); - if (imageIcon) // 检查 imageIcon 是否为空 - { - imageIcon->SetSrc(imageStr.c_str()); - } - } - else - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Failed to get image string. Skipping imageIcon update.\r\n"); - } - - // 训练类 - UIResourceTextId typeId = TraingModel::GetInstance()->GetSportTypeId(enddata->sportType); - if (labeltype) // 检查 labeltype 是否为空 - { - labeltype->SetTextId(typeId); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Sport Type ID set: %d\r\n", typeId); // 打印运动类型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; - 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) + "%"; - if (labeltag) // 检查 labeltag 是否为空 - { - labeltag->SetText(tagStr.c_str()); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Goal degree set: %s\r\n", tagStr.c_str()); // 打印运动目标 - } - } - else - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Enddata tag is null. Skipping labeltag update.\r\n"); - } - - // 运动时长 - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Duration of the sport: %d\r\n", enddata->duration); - std::string timeStr = TraingModel::GetInstance()->GetTrainingTime(); - 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); - 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); - 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); - 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(); - 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); - 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); - 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); - 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"); + labelstride->SetText(strideStr.c_str()); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n", + strideStr.c_str()); // 打印步幅 } - // 设置按键监听 - static void SetKeyActListener() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener"); - // 增加按键监听 - RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingEnddataPresenter::GetInstance(); - RootView::GetInstance()->SetOnKeyActListener(keyactListener); - } - void TraingEnddataView::OnStart() - { - View::OnStart(); + } - container_ = new UIViewGroup(); - container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, + "TraingEnddataView data initialization complete.\r\n"); +} +// 设置按键监听 +static void SetKeyActListener() { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener"); + // 增加按键监听 + RootView::OnKeyActListener *keyactListener = + (RootView::OnKeyActListener *)OHOS::TraingEnddataPresenter::GetInstance(); + RootView::GetInstance()->SetOnKeyActListener(keyactListener); +} +void TraingEnddataView::OnStart() { + View::OnStart(); - PreLoad(); - InitData(); // 刷新数据 + container_ = new UIViewGroup(); + container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), + Screen::GetInstance().GetHeight()); - SetContainerView(container_); + PreLoad(); + InitData(); // 刷新数据 - container_->SetDraggable(true); - container_->SetTouchable(true); - container_->SetOnDragListener(presenter_); + SetContainerView(container_); - SetKeyActListener(); - } + container_->SetDraggable(true); + container_->SetTouchable(true); + container_->SetOnDragListener(presenter_); - void TraingEnddataView::OnSetUpView() - { + SetKeyActListener(); +} - View::OnSetUpView(); - Draw(); - } +void TraingEnddataView::OnSetUpView() { - void TraingEnddataView::OnTearDownView() - { - View::OnTearDownView(); - return; - } + View::OnSetUpView(); + Draw(); +} - void TraingEnddataView::OnStop() - { - View::OnStop(); - RootView::GetInstance()->ClearOnKeyActListener(); - if (container_ != nullptr) - { - container_->RemoveAll(); - delete container_; - container_ = nullptr; - } - return; - } +void TraingEnddataView::OnTearDownView() { + View::OnTearDownView(); + return; +} +void TraingEnddataView::OnStop() { + View::OnStop(); + RootView::GetInstance()->ClearOnKeyActListener(); + if (container_ != nullptr) { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } + return; } + +} // namespace OHOS