diff --git a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt index 93f9f18..1717bf4 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt @@ -364,12 +364,22 @@ class BleManager private constructor(private val context: Context) { debugLogger.info("WATCHDOG_STARTED timeout=${watchdogTimeoutMs}ms") watchdogJob = Thread({ + debugLogger.info("WATCHDOG_THREAD running") while (watchdogRunning) { - try { Thread.sleep(5000) } catch (_: InterruptedException) { break } - if (!watchdogRunning) break - if (!isConnected.value) continue + try { Thread.sleep(5000) } catch (e: InterruptedException) { + debugLogger.warn("WATCHDOG_THREAD interrupted") + break + } + if (!watchdogRunning) { + debugLogger.info("WATCHDOG_THREAD stopped (flag)") + break + } val silenceMs = System.currentTimeMillis() - lastRxTimestamp + debugLogger.info("WATCHDOG_CHECK silence=${silenceMs}ms connected=${isConnected.value}") + + if (!isConnected.value) continue + if (silenceMs > watchdogTimeoutMs) { // 직접 로그 기록 (handler 블로킹 무관) debugLogger.error("WATCHDOG_TIMEOUT silence=${silenceMs}ms — forcing reconnect")