From b4baa87e10e13f4e45ea079dd902aab7131e3aa0 Mon Sep 17 00:00:00 2001 From: Johan von Forstner Date: Fri, 31 Dec 2021 17:50:45 +0100 Subject: [PATCH] reuse AnyMaps fragment instance when MapFragment is recreated --- .../main/java/net/vonforst/evmap/fragment/MapFragment.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt index ab785173..d7280f5c 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt @@ -155,6 +155,8 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac exitTransition = MaterialFadeThrough() } + private val mapFragmentTag = "map" + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -165,6 +167,10 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac binding.vm = vm val provider = prefs.mapProvider + if (mapFragment == null) { + mapFragment = + requireActivity().supportFragmentManager.findFragmentByTag(mapFragmentTag) as MapFragment? + } if (mapFragment == null || mapFragment!!.priority[0] != provider) { mapFragment = MapFragment() mapFragment!!.priority = arrayOf( @@ -178,7 +184,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac ) requireActivity().supportFragmentManager .beginTransaction() - .replace(R.id.map, mapFragment!!) + .replace(R.id.map, mapFragment!!, mapFragmentTag) .commit() // reset map-related stuff (map provider may have changed)