diff --git a/android/src/com/mapswithme/maps/downloader/MapManager.java b/android/src/com/mapswithme/maps/downloader/MapManager.java index 71a5cf3970..a039a60dfa 100644 --- a/android/src/com/mapswithme/maps/downloader/MapManager.java +++ b/android/src/com/mapswithme/maps/downloader/MapManager.java @@ -84,7 +84,17 @@ public final class MapManager Statistics.INSTANCE.trackEvent(event, Statistics.params().add(Statistics.EventParam.TYPE, text)); } - public static void showError(final Activity activity, final StorageCallbackData errorData, @Nullable final Utils.Proc dialogClickListener) + public static void showError(final Activity activity, final StorageCallbackData errorData, + @Nullable final Utils.Proc dialogClickListener) + { + if (!nativeIsAutoretryFailed()) + return; + + showErrorDialog(activity, errorData, dialogClickListener); + } + + public static void showErrorDialog(final Activity activity, final StorageCallbackData errorData, + @Nullable final Utils.Proc dialogClickListener) { if (sCurrentErrorDialog != null) { @@ -93,9 +103,6 @@ public final class MapManager return; } - if (!nativeIsAutoretryFailed()) - return; - @StringRes int text; switch (errorData.errorCode) { @@ -114,7 +121,16 @@ public final class MapManager AlertDialog dlg = new AlertDialog.Builder(activity) .setTitle(R.string.country_status_download_failed) .setMessage(text) - .setNegativeButton(android.R.string.cancel, null) + .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) + { + sCurrentErrorDialog = null; + if (dialogClickListener != null) + dialogClickListener.invoke(false); + } + }) .setPositiveButton(R.string.downloader_retry, new DialogInterface.OnClickListener() { @Override @@ -132,16 +148,8 @@ public final class MapManager } }); } - }).setOnDismissListener(new DialogInterface.OnDismissListener() - { - @Override - public void onDismiss(DialogInterface dialog) - { - sCurrentErrorDialog = null; - if (dialogClickListener != null) - dialogClickListener.invoke(false); - } }).create(); + dlg.setCanceledOnTouchOutside(false); dlg.show(); sCurrentErrorDialog = new WeakReference<>(dlg); } diff --git a/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java b/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java index 2b2991cf2e..f3c38fbe4b 100644 --- a/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java +++ b/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java @@ -94,7 +94,7 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment text = String.valueOf(item.errorCode); } Statistics.INSTANCE.trackDownloaderDialogError(mTotalSizeMb, text); - MapManager.showError(getActivity(), item, new Utils.Proc() + MapManager.showErrorDialog(getActivity(), item, new Utils.Proc() { @Override public void invoke(@NonNull Boolean result)