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 } } }