From 9d2af8e237e800c40803944a3ca19e0177de68c3 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Tue, 23 Apr 2024 17:48:32 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E8=AE=AD=E7=BB=83=E6=97=B6?= =?utf8?q?=E9=95=BF=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/applist/src/ApplistModel.cpp | 2 +- .../nativeui/message/src/MessagePresenter.cpp | 7 +++++- .../nativeui/traing/include/TraingModel.h | 4 +-- .../nativeui/traing/src/TraingEnddataView.cpp | 10 +++++--- .../nativeui/traing/src/TraingModel.cpp | 25 ++++++++++++++----- .../training_card/src/TraingCardPresenter.cpp | 13 +++++++--- 6 files changed, 45 insertions(+), 16 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp index 76f8d921e..79d6c138c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp @@ -45,10 +45,10 @@ namespace OHOS {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, "亮度调节", nullptr}, {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, "省电模式", nullptr}, {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, "消息通知", nullptr}, - {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", nullptr}, #ifdef SUPPORT_ALIPAY_SEC {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝", nullptr}, #endif + {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", nullptr}, #if 0 {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "语言切换", nullptr}, {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, "体温", nullptr}, diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp index 80810d0d9..cc6ec2e4b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp @@ -65,7 +65,12 @@ namespace OHOS if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY())))) { - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + NativeAbility::GetInstance().Back(); + } + // 向下回到主界面 + if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM) + { + NativeAbility::GetInstance().EnterSlice(VIEW_MAIN); } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index 32ef59e1e..696b61449 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -166,7 +166,7 @@ namespace OHOS { uint64 starttime; // 开始时间时间戳 uint64 endtime; // 结束时间时间戳 - uint64 duration; // 训练时长 + int duration; // 训练时长 int goaldegree; // 目标完成度 int calories; // 训练卡路里 int steps; // 训练步数 @@ -261,7 +261,7 @@ namespace OHOS /*解析时间戳*/ std::string AnalysisTimestamp(uint64_t timestamp); /*获取运动总时长*/ - uint32_t GetTrainingTime(); + std::string GetTrainingTime(); /*设置训练目标类型以及训练目标*/ void SetSportTag(ExerciseTag tagtpye, int tag); /*获取训练目标*/ 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 b7f715130..3826bb4bd 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp @@ -128,7 +128,7 @@ namespace OHOS scrollView_->Add(labelsteps); // 初始化button - TraingModel::GetInstance()->InitButtonExt(buttonexit, 42, 1319 - 338, 380, 100, BUTTONBACK, STR_OFF, 30); + TraingModel::GetInstance()->InitButtonExt(buttonexit, 42, 1111, 380, 100, BUTTONBACK, STR_OFF, 30); buttonexit->SetOnClickListener(static_cast(TraingEnddataPresenter::GetInstance())); scrollView_->Add(buttonexit); } @@ -303,8 +303,8 @@ namespace OHOS labeltag->SetText(tagStr.c_str()); } // 运动时长 - uint64_t time = TraingModel::GetInstance()->GetTrainingTime(); - std::string timeStr = TraingModel::GetInstance()->AnalysisTimestamp(time); + PRINT("duration:%d\r\n", enddata->duration); + std::string timeStr = TraingModel::GetInstance()->GetTrainingTime(); labeltime->SetText(timeStr.c_str()); // 运动距离 @@ -316,6 +316,10 @@ namespace OHOS std::string heartStr = std::to_string(enddata->avgheart); labelheart->SetText(heartStr.c_str()); + // 步数 + std::string stepStr = std::to_string(enddata->steps); + labelsteps->SetText(stepStr.c_str()); + // 训练强度 UIResourceTextId intensityid = TraingModel::GetInstance()->GetIntensity(); labelstrong->SetTextId(intensityid); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index 25616880f..ddf76ba75 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -505,7 +505,7 @@ namespace OHOS sportdata->avgheart = CalculateAverageHeartRate(cyweeInfo->hrs); // 处理平均心率 } // sportdata->duration = cyweeInfo->duration; - PRINT("normal sportdata->calories[%d],sportdata->duration[%d],sportdata->heart[%d] \r\n", sportdata->calories, sportdata->duration, sportdata->heart); + PRINT("normal sportdata->calories[%d],sportdata->heart[%d] \r\n", sportdata->calories, sportdata->heart); switch (type) { case ExerciseClass::OUTDOOR: @@ -637,9 +637,17 @@ namespace OHOS } } // 获取训练时长时间戳 - uint32_t TraingModel::GetTrainingTime() + std::string TraingModel::GetTrainingTime() { - return (sportdata->endtime - sportdata->starttime); + int hour = sportdata->duration / NUM_TIME_HOUR; + int min = (sportdata->duration % NUM_TIME_HOUR) / NUM_TIME_MIN; + int sec = (sportdata->duration % NUM_TIME_HOUR) % NUM_TIME_MIN; + + std::ostringstream oss; + oss << std::setfill('0') << std::setw(2) << hour << ":" << std::setw(2) << min << ":" << std::setw(2) << sec; + + std::string triningtime = oss.str(); + return triningtime; } /*解析时间戳 返回例如:13:00:22*/ std::string TraingModel::AnalysisTimestamp(uint64_t timestamp) @@ -736,7 +744,6 @@ namespace OHOS break; } } - /*获取对应的训练目标的值*/ int TraingModel::GetSportTagData() { if (sportTag_) @@ -745,7 +752,7 @@ namespace OHOS switch (sportdata->sportTagType) { case ExerciseTag::Duration: - return sportdata->duration; + return int(sportdata->duration / 60); // 时间是秒需要转换为目标的分钟 break; case ExerciseTag::Calories: return sportdata->calories; @@ -761,6 +768,7 @@ namespace OHOS } } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Not set Sport_Tag!"); + return 0; // 添加默认返回值 } /*获取训练目标完成百分比*/ int TraingModel::GetGoaldegree() @@ -805,7 +813,7 @@ namespace OHOS data.tgt = static_cast(sportdata->sportTagType); data.tg = static_cast(sportdata->tag); data.pg = static_cast(sportdata->goaldegree); - data.du = static_cast(sportdata->duration); + data.du = static_cast((sportdata->duration) * 60); data.ca = static_cast(sportdata->calories); data.di = static_cast(sportdata->distance); data.hr = static_cast(sportdata->avgheart); @@ -855,6 +863,11 @@ namespace OHOS { g_motionTimes = 0; } + if (g_motionTimes != 0) + { + sportdata->duration = g_motionTimes; // 训练时长 + PRINT("duration:[%d] g_motionTimes[%d]\r\n", sportdata->duration, g_motionTimes); + } int hour = g_motionTimes / NUM_TIME_HOUR; int min = (g_motionTimes % NUM_TIME_HOUR) / NUM_TIME_MIN; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp index c656205ee..e4f30477c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -21,6 +21,7 @@ extern "C" void custom_VibratorFunc(OHOS::VibratorType vibratorType); #define MAXSPORTID 176 #define DEFAULT_DASH "--" +#define DATATEST 0 extern "C" { @@ -183,7 +184,7 @@ namespace OHOS { distanceStr = DEFAULT_DASH; } - std::string durationStr = std::to_string(sportdata->duration); + //std::string durationStr = std::to_string(sportdata->duration); std::string heartStr = (sportdata->heart != 0) ? std::to_string(sportdata->heart) : DEFAULT_DASH; std::string stepsStr = (sportdata->steps != 0) ? std::to_string(sportdata->steps) : DEFAULT_DASH; std::string calorieStr = (sportdata->calories != 0) ? std::to_string(sportdata->calories) : DEFAULT_DASH; @@ -251,14 +252,19 @@ namespace OHOS { TraingModel::GetInstance()->SetSportState(ExerciseState::End); ControlSensor(ExerciseState::End); +#ifdef DATATEST + NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA); +#else if (TraingModel::GetInstance()->GetMomentum()) { NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA); } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE); + // 训练量不足进入训练记录界面 + NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_RECORD); } +#endif } // 返回按键 if (strcmp(view.GetViewId(), BUTTONBACK) == 0) @@ -325,7 +331,8 @@ namespace OHOS } else { - NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE); + // 训练量不足进入训练记录界面 + NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_RECORD); } return true; } -- 2.17.1