From 44ab6e7536d982efd583a9af5e4609b43eb4793c Mon Sep 17 00:00:00 2001 From: gaoxiaoxiong <745570899@qq.com> Date: Tue, 24 Mar 2026 15:19:01 +0800 Subject: [PATCH] bugfix: Fix the issue of incorrect connectionState status --- .../src/main/java/io/livekit/android/room/RTCEngine.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt b/livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt index c3576151..e485aca3 100644 --- a/livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt +++ b/livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt @@ -313,7 +313,14 @@ internal constructor( if (newState.isConnected()) { connectionState = ConnectionState.CONNECTED } else if (newState.isDisconnected()) { - connectionState = ConnectionState.DISCONNECTED + // Only transition to DISCONNECTED when not already in a reconnection + // intermediate state (RESUMING/RECONNECTING). In those states the + // reconnect flow owns connectionState; overwriting it here would + // silently swallow the disconnect and prevent the app from being notified. + val current = connectionState + if (current != ConnectionState.RESUMING && current != ConnectionState.RECONNECTING) { + connectionState = ConnectionState.DISCONNECTED + } } }