From f24ed5061b0ce4ef2a69d1fb9ea5328cea530dee Mon Sep 17 00:00:00 2001 From: Caisking Date: Wed, 14 Jan 2026 19:55:50 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E9=AA=91=E8=A1=8C=E8=BD=A8?= =?utf8?q?=E8=BF=B9=E7=9A=84=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/src/TraingEnddataView.cpp | 2 +- .../nativeui/traing/src/TraingModel.cpp | 87 ++++++++++--------- .../src/TraingRecordPresenter.cpp | 4 +- 3 files changed, 49 insertions(+), 44 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp index 6ad1e38b9..a7d78bac5 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp @@ -748,7 +748,7 @@ void TraingEnddataView::OnStart() { if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == true) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载成功"); } else { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败"); } } } diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp index a21bc717a..2950ef2f7 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp @@ -659,31 +659,35 @@ // printf_data(sportdata); return sportdata; } - /* 设置训练数据[为训练记录准备] */ - void TraingModel::SetSportdata(SportData *data) { - if (data != nullptr && sportdata != nullptr) { - sportdata->sportType = data->sportType; - sportdata->sportId = data->sportId; - sportdata->start_date = data->start_date; - sportdata->start_time = data->start_time; - sportdata->end_time = data->end_time; - sportdata->goaldegree = data->goaldegree; - sportdata->duration = data->duration; - sportdata->distance = data->distance; - sportdata->avgheart = data->avgheart; - sportdata->steps = data->steps; - sportdata->intensity = data->intensity; - sportdata->calories = data->calories; - sportdata->apc = data->apc; - sportdata->fpc = data->fpc; - sportdata->spc = data->spc; - sportdata->std = data->std; - sportdata->cdc = data->cdc; - sportdata->starttime = data->starttime; //更新开始时间 - printf_data(data); //打印该运动数据 - IsSpecialSport(sportdata->sportId); // 配置训练特殊性 - } - } +/* 设置训练数据[为训练记录准备] */ +void TraingModel::SetSportdata(SportData *data) { + if (data != nullptr && sportdata != nullptr) { + sportdata->sportType = data->sportType; + sportdata->sportId = data->sportId; + sportdata->start_date = data->start_date; + sportdata->start_time = data->start_time; + sportdata->end_time = data->end_time; + sportdata->goaldegree = data->goaldegree; + sportdata->duration = data->duration; + sportdata->distance = data->distance; + sportdata->avgheart = data->avgheart; + sportdata->steps = data->steps; + sportdata->intensity = data->intensity; + sportdata->calories = data->calories; + sportdata->apc = data->apc; + sportdata->fpc = data->fpc; + sportdata->spc = data->spc; + sportdata->std = data->std; + sportdata->cdc = data->cdc; + sportdata->starttime = data->starttime; //更新开始时间 + printf_data(data); //打印该运动数据 + IsSpecialSport(sportdata->sportId); // 配置训练特殊性 + // 更新sportId_,确保IsNeedGPS()能正确判断是否需要GPS + sportId_ = data->sportId; + sportType_ = data->sportType; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetSportdata: 更新sportId_=%d, sportType_=%d", sportId_, (int)sportType_); + } +} /*获取训练卡路里*/ int TraingModel::GetCal() { return sportdata->calories; } /*获取训练目标*/ @@ -1445,28 +1449,27 @@ uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 return false; } - - if (isspecialsport_) { - // 保存心率表 - if (!SaveHeartTable()) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveHeartRateData is error!"); - // uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 - // return false; - } + // 保存心率表 + if (!SaveHeartTable()) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveHeartRateData is error!"); + // uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 + // return false; + } + // 保存GPS数据 + if (!SaveCanvasData()) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveCanvasData is error!"); + // return false; + } + if (!SaveGPSData()) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGPSData is error!"); + // return false; + } + if (isspecialsport_ ) { // 保存速度表 if (!SavePaceTable()) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSpeedData is error!"); // return false; } - // 保存GPS数据 - if (!SaveCanvasData()) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveCanvasData is error!"); - // return false; - } - if (!SaveGPSData()) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGPSData is error!"); - // return false; - } } // 如果所有操作成功,则恢复训练存储状态 diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp index 5c10254ab..9d3fd4606 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp @@ -139,8 +139,10 @@ namespace OHOS // 选择点击按键的历史数据 int arraynum = sportDataVector.size() - 1; SportData sportData = sportDataVector[arraynum - index]; // 显示是倒序 id同理 - NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGENDDATA); + // 先设置运动数据,确保sportId_被正确更新,然后再进入界面 + // 这样OnStart()中调用IsNeedGPS()时能正确判断 TraingModel::GetInstance()->SetSportdata(&sportData); + NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGENDDATA); return true; } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the sportDataVector is error"); -- 2.17.1