diff --git a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt b/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt index f834c4a46..a88861b02 100644 --- a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt @@ -291,13 +291,19 @@ class RadioInterfaceService : Service(), Logging { } } + /// We only force service refresh the _first_ time we connect to the device. Thereafter it is assumed the firmware didn't change + private var hasForcedRefresh = false + private fun onConnect(connRes: Result) { // This callback is invoked after we are connected connRes.getOrThrow() // FIXME, instead just try to reconnect? info("Connected to radio!") - forceServiceRefresh() + if (!hasForcedRefresh) { + hasForcedRefresh = true + forceServiceRefresh() + } // FIXME - no need to discover services more than once - instead use lazy() to use them in future attempts safe!!.asyncDiscoverServices { discRes ->