[android] Fixed error dialog during autoupdate maps after whatsnew screens

This commit is contained in:
Александр Зацепин 2017-08-30 19:24:07 +03:00 committed by Vladimir Byko-Ianko
parent e86e1922f6
commit 5945d5d737
2 changed files with 23 additions and 15 deletions

View file

@ -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<Boolean> dialogClickListener)
public static void showError(final Activity activity, final StorageCallbackData errorData,
@Nullable final Utils.Proc<Boolean> dialogClickListener)
{
if (!nativeIsAutoretryFailed())
return;
showErrorDialog(activity, errorData, dialogClickListener);
}
public static void showErrorDialog(final Activity activity, final StorageCallbackData errorData,
@Nullable final Utils.Proc<Boolean> 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);
}

View file

@ -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<Boolean>()
MapManager.showErrorDialog(getActivity(), item, new Utils.Proc<Boolean>()
{
@Override
public void invoke(@NonNull Boolean result)