diff --git a/android/src/app/organicmaps/MwmActivity.java b/android/src/app/organicmaps/MwmActivity.java index 3892a75f71..4832850435 100644 --- a/android/src/app/organicmaps/MwmActivity.java +++ b/android/src/app/organicmaps/MwmActivity.java @@ -1028,6 +1028,7 @@ public class MwmActivity extends BaseMwmFragmentActivity if (mOnmapDownloader != null) mOnmapDownloader.onPause(); mNavigationController.onActivityPaused(this); + LocationHelper.INSTANCE.closeLocationDialog(); super.onPause(); } diff --git a/android/src/app/organicmaps/location/LocationHelper.java b/android/src/app/organicmaps/location/LocationHelper.java index 5bb18285fc..5de1bbbd28 100644 --- a/android/src/app/organicmaps/location/LocationHelper.java +++ b/android/src/app/organicmaps/location/LocationHelper.java @@ -161,6 +161,13 @@ public enum LocationHelper implements Initializable, AppBackgroundTrack } } + public void closeLocationDialog() + { + if (mErrorDialog != null && mErrorDialog.isShowing()) + mErrorDialog.dismiss(); + mErrorDialog = null; + } + void notifyCompassUpdated(double north) { mSavedNorth = north; @@ -179,8 +186,7 @@ public enum LocationHelper implements Initializable, AppBackgroundTrack if (mSavedLocation == null) throw new IllegalStateException("No saved location"); - if (mErrorDialog != null && mErrorDialog.isShowing()) - mErrorDialog.dismiss(); + closeLocationDialog(); for (LocationListener listener : mListeners) listener.onLocationUpdated(mSavedLocation); @@ -250,8 +256,7 @@ public enum LocationHelper implements Initializable, AppBackgroundTrack } // Cancel our dialog in favor of system dialog. - if (mErrorDialog != null && mErrorDialog.isShowing()) - mErrorDialog.dismiss(); + closeLocationDialog(); // Launch system permission resolution dialog. IntentSenderRequest intentSenderRequest = new IntentSenderRequest.Builder(pendingIntent.getIntentSender())