diff --git a/app/src/main/java/com/medithings/vesiscan/ble/BleManager.kt b/app/src/main/java/com/medithings/vesiscan/ble/BleManager.kt index 90cbaca..bb74285 100644 --- a/app/src/main/java/com/medithings/vesiscan/ble/BleManager.kt +++ b/app/src/main/java/com/medithings/vesiscan/ble/BleManager.kt @@ -1155,7 +1155,14 @@ class BleManager private constructor(private val context: Context) { } private fun processReceivedData(data: ByteArray) { - lastRxTimestamp = System.currentTimeMillis() + val now = System.currentTimeMillis() + lastRxTimestamp = now + // 2026-07-07 fix: lastBleRxAt 을 processReceivedData 진입점에서 무조건 갱신. + // 이전에는 reb: (piezo 측정) 응답 케이스에만 세팅 → auto scan 꺼진 도넛차트 + // idle 상태 (mim 폴링만) 에서는 rim 응답이 매초 오는데도 lastBleRxAt = 0. + // FirmwareWarningBanner 의 deviceAlive 판정이 false → 어떤 이유로 timedOut=true + // 되면 "기기 응답 없음" false-positive 배너 노출. + lastBleRxAt.value = now // Raw BLE capture (디버그 — 사용자가 토글로 enable 했을 때만 writes) com.medithings.vesiscan.services.RawBleLogger.write(data) val prefix = String(data, 0, minOf(4, data.size), Charsets.US_ASCII)