From 468e43afc421fd6c1aade30f9c370541d709992c Mon Sep 17 00:00:00 2001 From: geeksville Date: Thu, 9 Apr 2020 12:22:41 -0700 Subject: [PATCH] fixes after testing on real hardware --- .../java/com/geeksville/mesh/MainActivity.kt | 24 ++++++++++--------- .../com/geeksville/mesh/ui/MapFragment.kt | 2 +- .../geeksville/mesh/ui/SettingsFragment.kt | 3 +++ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index efcb88dc6..54cb0af84 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -387,17 +387,22 @@ class MainActivity : AppCompatActivity(), Logging, // everytime the radio reconnects, we slam in our current owner data, the radio is smart enough to only broadcast if needed model.setOwner(this) - val m = model.meshService!! - // Pull down our real node ID - model.nodeDB.myId.value = m.myId + model.meshService?.let { service -> + debug("Getting latest radioconfig from service") + model.radioConfig.value = + MeshProtos.RadioConfig.parseFrom(model.meshService!!.radioConfig) + + // Pull down our real node ID + model.nodeDB.myId.value = service.myId - // Update our nodeinfos based on data from the device - val nodes = m.nodes.map { - it.user?.id!! to it - }.toMap() + // Update our nodeinfos based on data from the device + val nodes = service.nodes.map { + it.user?.id!! to it + }.toMap() - model.nodeDB.nodes.value = nodes + model.nodeDB.nodes.value = nodes + } } } @@ -478,9 +483,6 @@ class MainActivity : AppCompatActivity(), Logging, override fun onConnected(service: com.geeksville.mesh.IMeshService) = exceptionReporter { model.meshService = service - debug("Getting latest radioconfig from service") - model.radioConfig.value = MeshProtos.RadioConfig.parseFrom(service.radioConfig) - // We don't start listening for packets until after we are connected to the service registerMeshReceiver() diff --git a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt index 5063a6045..0b972cb1c 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt @@ -92,7 +92,7 @@ class MapFragment : ScreenFragment("Map"), Logging { val bounds = LatLngBounds.Builder() // Add all positions - bounds.includes(nodes.map { it.position!! } + bounds.includes(nodesWithPosition.map { it.position!! } .map { LatLng(it.latitude, it.longitude) }) CameraUpdateFactory.newLatLngBounds(bounds.build(), 150) 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 779c5fb88..2dce31330 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/SettingsFragment.kt @@ -193,6 +193,9 @@ class BTScanModel(app: Application) : AndroidViewModel(app), Logging { context, it.macAddress ) + + // Force the GUI to redraw + devices.value = devices.value } } }