From ac6013e373305450c23553d3dc930e0c98ff9e74 Mon Sep 17 00:00:00 2001 From: jjangddu Date: Wed, 17 Jun 2026 18:04:29 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=81=B0=20=EB=B3=BC=EB=A5=A8=20?= =?UTF-8?q?=ED=85=8D=EC=8A=A4=ED=8A=B8=EC=9D=98=20currentLevel=20fallback?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0=20(150=20mL=20leak)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 증상: PiezoMonitoring 에서 single scan 후 home → 재진입 시 갑자기 150 mL (또는 50/100/200… 등 50 mL 배수) 가 큰 텍스트에 등장. 원인: 측정 성공 시 line 442-447 가 BV 값을 currentLevel 로 양자화해 SharedPreferences 에 persist (level = (bv/500)*10). 재진입 시 displayMaxVolumeMl 가 remember 라 0 으로 reset 되고, 큰 텍스트의 두 번째 fallback (appState.estimatedVolume = currentLevel/10 * 500) 이 발동 → 직전 측정의 quantized 값이 큰 글씨로 leak. 170 mL 측정 → currentLevel=3 → 재진입 시 150 mL 표시 등. 수정: 큰 볼륨 텍스트의 fallback 분기 (else if estimatedVolume>0) 삭제. displayMaxVolumeMl 가 set 됐을 때만 표시, 아니면 무조건 "— mL". level/urgency 시스템 자체는 그대로 유지 (도넛 차트, InfoCard, 알림 등 다른 곳에서 계속 사용). Co-Authored-By: Claude Opus 4.7 --- .../ui/views/monitoring/PiezoMonitoringView.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt index 8e9ed12..9d6b468 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt @@ -1093,9 +1093,10 @@ fun PiezoMonitoringView(appState: AppState) { } Spacer(modifier = Modifier.height(0.dp)) // 캐릭터-mL 간격 축소 Text( - // Voiding 직후엔 displayMaxVolumeMl=0이고 estimatedVolume도 0 → "0 mL"가 의미 없음 → "— mL"로 + // displayMaxVolumeMl 가 set 됐을 때만 표시. fallback (estimatedVolume) 제거 — + // currentLevel 의 quantized leak (예: 단발 측정 후 home → 재진입 시 + // \"갑자기 150 mL\" 등장) 차단. if (displayMaxVolumeMl > 0) "${"%.0f".format(displayMaxVolumeMl)} mL" - else if (appState.estimatedVolume > 0) "${appState.estimatedVolume} mL" else "— mL", fontSize = volFontSize, fontWeight = FontWeight.ExtraBold,