From c87d0adc61945cd5a5893a1c58bf67f906380466 Mon Sep 17 00:00:00 2001 From: Ludovic Goix Date: Wed, 2 Sep 2020 20:16:41 -0400 Subject: [PATCH] Connect to a device without updating any change #119 --- app/src/main/java/com/geeksville/mesh/MainActivity.kt | 5 ++--- .../java/com/geeksville/mesh/service/BluetoothInterface.kt | 2 +- app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt | 2 ++ 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index de99050b..cdf67670 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -583,6 +583,8 @@ class MainActivity : AppCompatActivity(), Logging, try { // Pull down our real node ID - This must be done AFTER reading the nodedb because we need the DB to find our nodeinof object model.nodeDB.myId.value = service.myId + val ourNodeInfo = model.nodeDB.ourNodeInfo + model.ownerName.value = ourNodeInfo?.user?.longName } catch (ex: Exception) { warn("Ignoring failure to get myId, service is probably just uninited... ${ex.message}") } @@ -595,9 +597,6 @@ class MainActivity : AppCompatActivity(), Logging, debug("connchange ${model.isConnected.value}") if (connected == MeshService.ConnectionState.CONNECTED) { - // everytime the radio reconnects, we slam in our current owner data, the radio is smart enough to only broadcast if needed - model.setOwner() - model.meshService?.let { service -> debug("Getting latest radioconfig from service") model.radioConfig.value = diff --git a/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt b/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt index 6aa08193..5f4d2bb4 100644 --- a/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt +++ b/app/src/main/java/com/geeksville/mesh/service/BluetoothInterface.kt @@ -349,7 +349,7 @@ class BluetoothInterface(val service: RadioInterfaceService, val address: String } service.onDisconnect(false) // assume we will fail - delay(1000) // Give some nasty time for buggy BLE stacks to shutdown (500ms was not enough) + delay(1500) // Give some nasty time for buggy BLE stacks to shutdown (500ms was not enough) reconnectJob = null // Any new reconnect requests after this will be allowed to run warn("Attempting reconnect") if (safe != null) // check again, because we just slept for 1sec, and someone might have closed our interface diff --git a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt index af726936..83e5f503 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt @@ -542,6 +542,8 @@ class SettingsFragment : ScreenFragment("Settings"), Logging { // Only let user edit their name or set software update while connected to a radio model.isConnected.observe(viewLifecycleOwner, Observer { connected -> usernameView.isEnabled = connected == MeshService.ConnectionState.CONNECTED + if(connected == MeshService.ConnectionState.DISCONNECTED) + model.ownerName.value = "" initNodeInfo() })