修复睡眠进度条与实际不一致的bug
authorCaisking <3449750381@qq.com>
Sat, 31 Aug 2024 07:22:46 +0000 (15:22 +0800)
committerCaisking <3449750381@qq.com>
Sat, 31 Aug 2024 07:22:46 +0000 (15:22 +0800)
code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepView.cpp

index 7aa1153..68270ce 100644 (file)
@@ -27,7 +27,6 @@ namespace OHOS
         g_pSleepView = nullptr;
     }
 
-    // 刷新UI数据
     void SleepView::SleepDataRefresh()
     {
         // 获取睡眠数据
@@ -37,7 +36,7 @@ namespace OHOS
         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);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SleepDataRefresh %d %d sleep_goal:%d total_sleep:%d", sleep_hour, sleep_min, sleep_goal, total_sleep);
 
         // 补零操作
         std::string hour_str = (sleep_hour < 10) ? "0" + std::to_string(sleep_hour) : std::to_string(sleep_hour);
@@ -56,9 +55,10 @@ namespace OHOS
             float value = 0.0f;
             if (sleep_goal > 0)
             {
-                value = (static_cast<float>(total_sleep) / (sleep_goal / 60)) * 100.0f;
+                value = static_cast<float>(total_sleep) / sleep_goal; // 计算进度
+                // value = std::clamp(value, 0.0f, 1.0f);                // 确保在 0 到 1 之间
             }
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Progress value: %.2f%%", value);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Progress value: %.2f%%", value * 100); // 显示为百分比
             circleProgress_->SetValue(value);
             circleProgress_->SetCapType(CAP_ROUND);
         }