From c81654d769f107d20bbc066669cdf2d1e3d46d09 Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Mon, 24 Jan 2022 16:07:11 +0300 Subject: [PATCH] Fix native crash (need more testing). --- .../im/vector/app/features/location/LocationData.kt | 2 +- .../app/features/location/LocationPreviewFragment.kt | 7 +++++++ .../app/features/location/LocationSharingFragment.kt | 11 +++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/location/LocationData.kt b/vector/src/main/java/im/vector/app/features/location/LocationData.kt index 3233e8f721..c3ff09ebcd 100644 --- a/vector/src/main/java/im/vector/app/features/location/LocationData.kt +++ b/vector/src/main/java/im/vector/app/features/location/LocationData.kt @@ -43,7 +43,7 @@ data class LocationData( val latitude = geoParts?.firstOrNull() val geoTailParts = geoParts?.getOrNull(1)?.split(";") val longitude = geoTailParts?.firstOrNull() - val uncertainty = geoTailParts?.getOrNull(1) + val uncertainty = geoTailParts?.getOrNull(1)?.replace("u=", "") return if (latitude != null && longitude != null) { LocationData( diff --git a/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt b/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt index f3914fbc2c..60c78ec520 100644 --- a/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt +++ b/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt @@ -49,6 +49,11 @@ class LocationPreviewFragment @Inject constructor( } } + override fun onPause() { + views.mapView.onPause() + super.onPause() + } + override fun getMenuRes() = R.menu.menu_location_preview override fun onOptionsItemSelected(item: MenuItem): Boolean { @@ -67,6 +72,8 @@ class LocationPreviewFragment @Inject constructor( } private fun onMapReady() { + if (!isAdded) return + val location = args.initialLocationData ?: return val userId = args.locationOwnerId diff --git a/vector/src/main/java/im/vector/app/features/location/LocationSharingFragment.kt b/vector/src/main/java/im/vector/app/features/location/LocationSharingFragment.kt index d3ccbf914e..122ad7fbd6 100644 --- a/vector/src/main/java/im/vector/app/features/location/LocationSharingFragment.kt +++ b/vector/src/main/java/im/vector/app/features/location/LocationSharingFragment.kt @@ -69,12 +69,19 @@ class LocationSharingFragment @Inject constructor( } } - override fun onDestroyView() { - super.onDestroyView() + override fun onPause() { + views.mapView.onPause() + super.onPause() + } + + override fun onDestroy() { + super.onDestroy() locationTracker.stop() } private fun onMapReady() { + if (!isAdded) return + locationPinProvider.create(session.myUserId) { views.mapView.addPinToMap( pinId = USER_PIN_NAME,