From 7bcc51863f5ab9a5009c34edfe351a6545f02597 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Sun, 8 Feb 2026 11:40:12 -0600 Subject: [PATCH] fix: Defer setting connected state until after nodeDB load (#4505) Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com> --- .../java/com/geeksville/mesh/service/MeshConfigFlowManager.kt | 4 ++-- .../java/com/geeksville/mesh/service/MeshConnectionManager.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshConfigFlowManager.kt b/app/src/main/java/com/geeksville/mesh/service/MeshConfigFlowManager.kt index 2885fc3d9..3107a93f7 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshConfigFlowManager.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshConfigFlowManager.kt @@ -85,8 +85,6 @@ constructor( } else { myNodeInfo = newMyNodeInfo Logger.i { "myNodeInfo committed successfully" } - connectionStateHolder.setState(ConnectionState.Connected) - serviceBroadcasts.broadcastConnection() connectionManager.onRadioConfigLoaded() } @@ -123,6 +121,8 @@ constructor( } nodeManager.isNodeDbReady.value = true nodeManager.allowNodeDbWrites.value = true + connectionStateHolder.setState(ConnectionState.Connected) + serviceBroadcasts.broadcastConnection() connectionManager.onNodeDbReady() } } diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshConnectionManager.kt b/app/src/main/java/com/geeksville/mesh/service/MeshConnectionManager.kt index 54cd877c0..d14a723d2 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshConnectionManager.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshConnectionManager.kt @@ -118,7 +118,7 @@ constructor( } private fun onConnectionChanged(c: ConnectionState) { - if (connectionStateHolder.connectionState.value == c) return + if (connectionStateHolder.connectionState.value == c && c !is ConnectionState.Connected) return Logger.d { "onConnectionChanged: ${connectionStateHolder.connectionState.value} -> $c" } sleepTimeout?.cancel()