fix: 큰 볼륨 텍스트의 currentLevel fallback 제거 (150 mL leak)
증상: 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 <noreply@anthropic.com>
This commit is contained in:
+3
-2
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user