Browse Source

prevent crash on async callback

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 4 years ago
parent
commit
005dfa9397

+ 18 - 13
app/src/main/java/com/nextcloud/talk/controllers/LocationPickerController.kt

@@ -277,21 +277,26 @@ class LocationPickerController(args: Bundle) :
             DelayedMapListener(
                 object : MapListener {
                     override fun onScroll(paramScrollEvent: ScrollEvent): Boolean {
-                        when {
-                            moveToCurrentLocationWasClicked -> {
-                                setLocationDescription(isGpsLocation = true, isGeocodedResult = false)
-                                moveToCurrentLocationWasClicked = false
-                            }
-                            receivedChosenGeocodingResult -> {
-                                binding.shareLocation.isClickable = true
-                                setLocationDescription(isGpsLocation = false, isGeocodedResult = true)
-                                receivedChosenGeocodingResult = false
-                            }
-                            else -> {
-                                binding.shareLocation.isClickable = true
-                                setLocationDescription(isGpsLocation = false, isGeocodedResult = false)
+                        try {
+                            when {
+                                moveToCurrentLocationWasClicked -> {
+                                    setLocationDescription(isGpsLocation = true, isGeocodedResult = false)
+                                    moveToCurrentLocationWasClicked = false
+                                }
+                                receivedChosenGeocodingResult -> {
+                                    binding.shareLocation.isClickable = true
+                                    setLocationDescription(isGpsLocation = false, isGeocodedResult = true)
+                                    receivedChosenGeocodingResult = false
+                                }
+                                else -> {
+                                    binding.shareLocation.isClickable = true
+                                    setLocationDescription(isGpsLocation = false, isGeocodedResult = false)
+                                }
                             }
+                        } catch (e: NullPointerException) {
+                            Log.d(TAG, "UI already closed")
                         }
+
                         readyToShareLocation = true
                         return true
                     }