From 1e34e77fe9fe0d5dbc8ab656fec24268e9282108 Mon Sep 17 00:00:00 2001 From: geeksville Date: Sat, 4 Apr 2020 14:37:13 -0700 Subject: [PATCH] only force refresh of the BLE service table the first time we talk --- .../com/geeksville/mesh/service/RadioInterfaceService.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 ->