From 334ee86362da36015cafa7c58e3ed6b9bc41b23a Mon Sep 17 00:00:00 2001 From: andrekir Date: Sun, 19 Mar 2023 08:15:58 -0300 Subject: [PATCH] refactor: clean up map onNodesChanged --- .../com/geeksville/mesh/ui/MapFragment.kt | 47 +++++++------------ 1 file changed, 16 insertions(+), 31 deletions(-) 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 5cefe6bec..ec21209c5 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt @@ -111,7 +111,7 @@ class MapFragment : ScreenFragment("Map Fragment"), Logging { Configuration.getInstance().userAgentValue = BuildConfig.APPLICATION_ID // Required to get online tiles map = viewIn.findViewById(R.id.map) - mPrefs = context!!.getSharedPreferences(prefsName, Context.MODE_PRIVATE) + mPrefs = requireContext().getSharedPreferences(prefsName, Context.MODE_PRIVATE) setupMapProperties() map.setTileSource(loadOnlineTileSourceBase()) @@ -241,7 +241,7 @@ class MapFragment : ScreenFragment("Map Fragment"), Logging { resources.getString(R.string.cancel) ) ) { dialog, _ -> dialog.dismiss() } - activity!!.runOnUiThread { // show it + requireActivity().runOnUiThread { // show it // create alert dialog val alertDialog = alertDialogBuilder.create() alertDialog.show() @@ -537,38 +537,23 @@ class MapFragment : ScreenFragment("Map Fragment"), Logging { private fun onNodesChanged(nodes: Collection) { val nodesWithPosition = nodes.filter { it.validPosition != null } val ic = ContextCompat.getDrawable(requireActivity(), R.drawable.ic_baseline_location_on_24) - - /** - * Using the latest nodedb, generate GeoPoint - */ - // Find all nodes with valid locations - fun getCurrentNodes(): List { - debug("Showing on map: ${nodesWithPosition.size} nodes") - val mrkr = nodesWithPosition.map { node -> - val p = node.position!! - lateinit var marker: MarkerWithLabel - node.user?.let { - val label = it.longName + " " + formatAgo(p.time) - marker = MarkerWithLabel(map, label) - marker.title = "${it.longName} ${node.batteryStr}" - marker.snippet = model.gpsString(p) - model.ourNodeInfo.value?.let { our -> - our.distanceStr(node)?.let { dist -> - marker.subDescription = getString(R.string.map_subDescription).format( - our.bearing(node), - dist - ) - } - } - marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM) - marker.position = GeoPoint(p.latitude, p.longitude) - marker.icon = ic + debug("Showing on map: ${nodesWithPosition.size} nodes") + nodePositions = nodesWithPosition.map { node -> + val (p, u) = Pair(node.position!!, node.user!!) + val marker = MarkerWithLabel(map, "${u.longName} ${formatAgo(p.time)}") + marker.title = "${u.longName} ${node.batteryStr}" + marker.snippet = model.gpsString(p) + model.ourNodeInfo.value?.let { our -> + our.distanceStr(node)?.let { dist -> + marker.subDescription = getString(R.string.map_subDescription) + .format(our.bearing(node), dist) } - marker } - return mrkr + marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM) + marker.position = GeoPoint(p.latitude, p.longitude) + marker.icon = ic + marker } - nodePositions = getCurrentNodes() }