From 122dabefb09ebaf4a63e2388d8661f4762f16b6d Mon Sep 17 00:00:00 2001 From: Kevin Hester Date: Mon, 8 Feb 2021 12:19:35 +0800 Subject: [PATCH] add back a fixed isViewVisible, @vfurman-gh would you mind reviewing? --- app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 5572d3cb5..486acbfc1 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt @@ -134,6 +134,12 @@ class MapFragment : ScreenFragment("Map"), Logging { var mapView: MapView? = null + /** + * Mapbox native code can crash painfully if you ever call a mapbox view function while the view is not actively being show + */ + private val isViewVisible: Boolean + get() = !(mapView?.isDestroyed ?: true) + override fun onViewCreated(viewIn: View, savedInstanceState: Bundle?) { super.onViewCreated(viewIn, savedInstanceState) @@ -169,7 +175,8 @@ class MapFragment : ScreenFragment("Map"), Logging { // Any times nodes change update our map model.nodeDB.nodes.observe(viewLifecycleOwner, Observer { nodes -> - onNodesChanged(map, nodes.values) + if(isViewVisible) + onNodesChanged(map, nodes.values) }) zoomToNodes(map) }