From 65e4dc5a2ff0aba71264da47698b118f53cfaa27 Mon Sep 17 00:00:00 2001 From: WaterRain <109326062+CATMIAOZHI@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:25:36 +0000 Subject: [PATCH] fix: Ollama pct parsing use Float then Int for decimal percentages toIntOrNull() returns null for 35.1, causing 0% display. toFloatOrNull()?.toInt() handles decimal percentages correctly. --- .../com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt | 4 ++-- .../com/rainy/token/ui/widget/OpenCodeGoWidgetProvider.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt b/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt index 1b1b149..460a519 100644 --- a/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt +++ b/app/src/main/java/com/rainy/token/ui/servicedetail/ServiceDetailScreen.kt @@ -438,7 +438,7 @@ private fun OllamaUsageCard(state: State) { Spacer(modifier = Modifier.height(12.dp)) UsageWindowRow( label = "5 小时", - pct = extras["session.pct"]?.toIntOrNull(), + pct = extras["session.pct"]?.toFloatOrNull()?.toInt(), resetInSec = extras["session.resetAt"]?.toLongOrNull()?.let { (it - System.currentTimeMillis()) / 1000 }?.takeIf { it > 0 } ) Spacer(modifier = Modifier.height(14.dp)) @@ -446,7 +446,7 @@ private fun OllamaUsageCard(state: State) { Spacer(modifier = Modifier.height(14.dp)) UsageWindowRow( label = "每周", - pct = extras["weekly.pct"]?.toIntOrNull(), + pct = extras["weekly.pct"]?.toFloatOrNull()?.toInt(), resetInSec = extras["weekly.resetAt"]?.toLongOrNull()?.let { (it - System.currentTimeMillis()) / 1000 }?.takeIf { it > 0 } ) } diff --git a/app/src/main/java/com/rainy/token/ui/widget/OpenCodeGoWidgetProvider.kt b/app/src/main/java/com/rainy/token/ui/widget/OpenCodeGoWidgetProvider.kt index 0e354f9..81e7e6a 100644 --- a/app/src/main/java/com/rainy/token/ui/widget/OpenCodeGoWidgetProvider.kt +++ b/app/src/main/java/com/rainy/token/ui/widget/OpenCodeGoWidgetProvider.kt @@ -184,10 +184,10 @@ class OpenCodeGoWidgetProvider : AppWidgetProvider() { ServiceType.OLLAMA -> { setRowLabel(views, "5h", "每周", "Plan") populateRow(views, R.id.row1_pct, R.id.row1_bar, R.id.row1_reset, - pct = extras["session.pct"]?.toIntOrNull(), + pct = extras["session.pct"]?.toFloatOrNull()?.toInt(), resetSec = extras["session.resetAt"]?.toLongOrNull()?.let { (it - System.currentTimeMillis()) / 1000 }?.takeIf { it > 0 }) populateRow(views, R.id.row2_pct, R.id.row2_bar, R.id.row2_reset, - pct = extras["weekly.pct"]?.toIntOrNull(), + pct = extras["weekly.pct"]?.toFloatOrNull()?.toInt(), resetSec = extras["weekly.resetAt"]?.toLongOrNull()?.let { (it - System.currentTimeMillis()) / 1000 }?.takeIf { it > 0 }) // Plan 信息放在第三行 val plan = extras["plan"] ?: "—"