diff --git a/app/src/main/java/com/medithings/vesiscan/ui/components/FirmwareWarningBanner.kt b/app/src/main/java/com/medithings/vesiscan/ui/components/FirmwareWarningBanner.kt index d00d3a7..2204273 100644 --- a/app/src/main/java/com/medithings/vesiscan/ui/components/FirmwareWarningBanner.kt +++ b/app/src/main/java/com/medithings/vesiscan/ui/components/FirmwareWarningBanner.kt @@ -69,8 +69,11 @@ fun FirmwareWarningBanner(bleManager: BleManager, modifier: Modifier = Modifier) } } @Suppress("UNUSED_EXPRESSION") tick - // 최근 5초 내 BLE 데이터 수신 있으면 기기 alive — "기기 응답 없음" false positive 차단. - val deviceAlive = lastRxAt > 0 && (System.currentTimeMillis() - lastRxAt) < 5_000 + // 최근 12초 내 BLE 데이터 수신 있으면 기기 alive — "기기 응답 없음" false positive 차단. + // 2026-07-03: 5→12초 완화. 기기를 흔들 때 BLE 안테나 wobbling 으로 3~5초 응답 스톨 시 + // 재연결 → firmwareVersion reset → 8초 후 timedOut → 배너 flap 현상. + // Watchdog 15초 timeout 이 진짜 disconnect 판정하므로 12초까지는 조용히 대기. + val deviceAlive = lastRxAt > 0 && (System.currentTimeMillis() - lastRxAt) < 12_000 val outdated = bleManager.isFirmwareOutdated val showTimedOut = timedOut && !deviceAlive