From: Caisking <3449750381@qq.com> Date: Fri, 30 Aug 2024 09:48:25 +0000 (+0800) Subject: 优化睡眠数据计算。优化数据显示 X-Git-Tag: release_V1.2.70_20241020_135402~557 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=d321a7a71524ee84c14e15a84968accf446bc6e2;p=mirrors%2FFD230.git 优化睡眠数据计算。优化数据显示 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepView.cpp b/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepView.cpp index 4aca60cf4..7aa115352 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepView.cpp @@ -30,9 +30,15 @@ namespace OHOS // 刷新UI数据 void SleepView::SleepDataRefresh() { - int sleep_hour = SleepModel::GetInstance().get_sleep_hour(); - int sleep_min = SleepModel::GetInstance().get_sleep_min(); + // 获取睡眠数据 + SleepModel &sleepModel = SleepModel::GetInstance(); + int sleep_hour = sleepModel.get_sleep_hour(); + int sleep_min = sleepModel.get_sleep_min(); + int total_sleep = sleepModel.get_sleep_total(); + int sleep_goal = sleepModel.get_sleep_goal(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SleepDataRefresh %d %d", sleep_hour, sleep_min); + // 补零操作 std::string hour_str = (sleep_hour < 10) ? "0" + std::to_string(sleep_hour) : std::to_string(sleep_hour); std::string min_str = (sleep_min < 10) ? "0" + std::to_string(sleep_min) : std::to_string(sleep_min); @@ -45,19 +51,25 @@ namespace OHOS time_hour->SetText(hour_str.c_str()); time_minute->SetText(min_str.c_str()); } - float value = (static_cast(SleepModel::GetInstance().get_sleep_total()) / static_cast(SleepModel::GetInstance().get_sleep_goal())) * 100.0f; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "value %d!", value); + + // 计算进度百分比,确保目标睡眠时间不为零 + float value = 0.0f; + if (sleep_goal > 0) + { + value = (static_cast(total_sleep) / (sleep_goal / 60)) * 100.0f; + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Progress value: %.2f%%", value); circleProgress_->SetValue(value); circleProgress_->SetCapType(CAP_ROUND); } // 更新目标时间 - int totaltime = SleepModel::GetInstance().get_sleep_goal(); if (goaltime != nullptr) { - UpdateLabel(goaltime, totaltime, STR_SLEEPMGOAL); + UpdateLabel(goaltime, sleep_goal, STR_SLEEPMGOAL); } + // 刷新视图 RootView::GetInstance()->Invalidate(); }