From 03910b3a43dddb9d7d8875ec7d80018ef5b4641c Mon Sep 17 00:00:00 2001 From: Roman Tsisyk Date: Thu, 13 Oct 2022 08:20:57 +0300 Subject: [PATCH] [android] Switch to use the stock AlertDialog everywhere Remove our own implementation of AlertDialog, all useless wrappers and abstract factories. Swtch to `androidx.appcompat.app.AlertDialog`. This patch also sets `MwmTheme.AlertDialog` theme to all AlertDialogs and replaces old-style Java callbacks with lambdas. Signed-off-by: Roman Tsisyk --- .../maps/DownloadResourcesLegacyActivity.java | 101 ++-- .../src/com/mapswithme/maps/MapFragment.java | 16 +- .../src/com/mapswithme/maps/MwmActivity.java | 80 +-- .../com/mapswithme/maps/SplashActivity.java | 15 +- .../bookmarks/BookmarkCategoriesFragment.java | 7 +- .../BookmarkCategorySettingsFragment.java | 16 +- .../bookmarks/BookmarksSharingHelper.java | 26 +- .../maps/bookmarks/CategoryValidator.java | 1 - .../mapswithme/maps/dialog/AlertDialog.java | 510 ------------------ .../maps/dialog/AlertDialogCallback.java | 31 -- .../maps/dialog/DefaultDialogFactory.java | 13 - .../mapswithme/maps/dialog/DialogFactory.java | 9 - .../mapswithme/maps/dialog/DialogUtils.java | 138 ----- .../maps/dialog/EditTextDialogFragment.java | 3 +- .../dialog/ResolveDialogViewStrategy.java | 12 - .../ResolveFragmentManagerStrategy.java | 15 - .../maps/downloader/DownloaderAdapter.java | 11 +- .../maps/downloader/MapManager.java | 59 +- .../maps/editor/EditorFragment.java | 27 +- .../maps/editor/EditorHostFragment.java | 36 +- .../editor/HoursMinutesPickerFragment.java | 42 +- .../maps/editor/OsmLoginFragment.java | 8 +- .../maps/editor/ProfileFragment.java | 8 +- .../com/mapswithme/maps/help/FaqFragment.java | 8 +- .../maps/location/LocationHelper.java | 4 +- .../widget/TrafficButtonController.java | 23 +- .../BaseRoutingErrorDialogFragment.java | 6 +- .../maps/routing/RoutingController.java | 23 +- .../maps/settings/SettingsPrefsFragment.java | 16 +- .../maps/settings/StoragePathFragment.java | 14 +- .../BookmarkColorDialogFragment.java | 10 +- android/src/com/mapswithme/util/Utils.java | 33 +- 32 files changed, 246 insertions(+), 1075 deletions(-) delete mode 100644 android/src/com/mapswithme/maps/dialog/AlertDialog.java delete mode 100644 android/src/com/mapswithme/maps/dialog/AlertDialogCallback.java delete mode 100644 android/src/com/mapswithme/maps/dialog/DefaultDialogFactory.java delete mode 100644 android/src/com/mapswithme/maps/dialog/DialogFactory.java delete mode 100644 android/src/com/mapswithme/maps/dialog/DialogUtils.java delete mode 100644 android/src/com/mapswithme/maps/dialog/ResolveDialogViewStrategy.java delete mode 100644 android/src/com/mapswithme/maps/dialog/ResolveFragmentManagerStrategy.java diff --git a/android/src/com/mapswithme/maps/DownloadResourcesLegacyActivity.java b/android/src/com/mapswithme/maps/DownloadResourcesLegacyActivity.java index 54ebea65bc..f8e2dcd37b 100644 --- a/android/src/com/mapswithme/maps/DownloadResourcesLegacyActivity.java +++ b/android/src/com/mapswithme/maps/DownloadResourcesLegacyActivity.java @@ -16,11 +16,10 @@ import androidx.annotation.CallSuper; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import androidx.appcompat.app.AlertDialog; import com.mapswithme.maps.api.ParsedMwmRequest; import com.mapswithme.maps.base.BaseMwmFragmentActivity; -import com.mapswithme.maps.dialog.AlertDialog; -import com.mapswithme.maps.dialog.AlertDialogCallback; import com.mapswithme.maps.downloader.CountryItem; import com.mapswithme.maps.downloader.MapManager; import com.mapswithme.maps.intent.Factory; @@ -38,13 +37,10 @@ import com.mapswithme.util.log.Logger; import java.util.List; @SuppressLint("StringFormatMatches") -public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity implements AlertDialogCallback +public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity { private static final String TAG = DownloadResourcesLegacyActivity.class.getSimpleName(); - private static final String ERROR_LOADING_DIALOG_TAG = "error_loading_dialog"; - private static final int ERROR_LOADING_DIALOG_REQ_CODE = 234; - private static final int REQ_CODE_API_RESULT = 10; public static final String EXTRA_COUNTRY = "country"; @@ -342,40 +338,6 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity imp showMap(); } - private static @StringRes int getErrorMessage(int res) - { - switch (res) - { - case ERR_NOT_ENOUGH_FREE_SPACE: - return R.string.not_enough_free_space_on_sdcard; - case ERR_STORAGE_DISCONNECTED: - return R.string.disconnect_usb_cable; - case ERR_DOWNLOAD_ERROR: - return (ConnectionState.INSTANCE.isConnected() ? R.string.download_has_failed - : R.string.common_check_internet_connection_dialog); - default: - assert(res == ERR_DISK_ERROR); - return R.string.disk_error; - } - } - - @StringRes - private static int getErrorTitle(int res) - { - switch (res) - { - case ERR_NOT_ENOUGH_FREE_SPACE: - return R.string.routing_not_enough_space; - case ERR_STORAGE_DISCONNECTED: - return R.string.disconnect_usb_cable_title; - case ERR_DOWNLOAD_ERROR: - return R.string.connection_failure; - default: - assert(res == ERR_DISK_ERROR); - return R.string.disk_error_title; - } - } - public void showMap() { if (!mAreResourcesDownloaded) @@ -470,33 +432,42 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity imp private void showErrorDialog(int result) { - AlertDialog dialog = new AlertDialog.Builder() - .setTitleId(getErrorTitle(result)) - .setMessageId(getErrorMessage(result)) - .setPositiveBtnId(R.string.try_again) - .setReqCode(ERROR_LOADING_DIALOG_REQ_CODE) - .setFragManagerStrategyType(AlertDialog.FragManagerStrategyType.ACTIVITY_FRAGMENT_MANAGER) - .build(); - dialog.show(this, ERROR_LOADING_DIALOG_TAG); - } + @StringRes final int titleId; + @StringRes final int messageId; - @Override - public void onAlertDialogPositiveClick(int requestCode, int which) - { - setAction(TRY_AGAIN); - onTryAgainClicked(); - } + switch (result) + { + case ERR_NOT_ENOUGH_FREE_SPACE: + titleId = R.string.routing_not_enough_space; + messageId = R.string.not_enough_free_space_on_sdcard; + break; + case ERR_STORAGE_DISCONNECTED: + titleId = R.string.disconnect_usb_cable_title; + messageId = R.string.disconnect_usb_cable; + break; + case ERR_DOWNLOAD_ERROR: + titleId = R.string.connection_failure; + messageId = (ConnectionState.INSTANCE.isConnected() ? R.string.download_has_failed + : R.string.common_check_internet_connection_dialog); + break; + case ERR_DISK_ERROR: + titleId = R.string.disk_error_title; + messageId = R.string.disk_error; + break; + default: + throw new AssertionError("Unexpected result code = " + result); + } - @Override - public void onAlertDialogNegativeClick(int requestCode, int which) - { - // no op - } - - @Override - public void onAlertDialogCancel(int requestCode) - { - setAction(PAUSE); + new AlertDialog.Builder(this, R.style.MwmTheme_AlertDialog) + .setTitle(titleId) + .setMessage(messageId) + .setCancelable(true) + .setOnCancelListener((dialog) -> setAction(PAUSE)) + .setPositiveButton(R.string.try_again, (dialog, which) -> { + setAction(TRY_AGAIN); + onTryAgainClicked(); + }) + .show(); } private static native int nativeGetBytesToDownload(); diff --git a/android/src/com/mapswithme/maps/MapFragment.java b/android/src/com/mapswithme/maps/MapFragment.java index 7f728fed31..8bb5b120ad 100644 --- a/android/src/com/mapswithme/maps/MapFragment.java +++ b/android/src/com/mapswithme/maps/MapFragment.java @@ -1,7 +1,6 @@ package com.mapswithme.maps; import android.content.Context; -import android.content.DialogInterface; import android.graphics.Rect; import android.os.Bundle; import android.util.DisplayMetrics; @@ -16,6 +15,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; + import com.mapswithme.maps.base.BaseMwmFragment; import com.mapswithme.maps.location.LocationHelper; import com.mapswithme.util.Config; @@ -160,17 +160,11 @@ public class MapFragment extends BaseMwmFragment private void reportUnsupported() { - new AlertDialog.Builder(requireActivity()) - .setMessage(getString(R.string.unsupported_phone)) + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setMessage(R.string.unsupported_phone) .setCancelable(false) - .setPositiveButton(getString(R.string.close), new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dlg, int which) - { - requireActivity().moveTaskToBack(true); - } - }).show(); + .setPositiveButton(R.string.close, (dlg, which) -> requireActivity().moveTaskToBack(true)) + .show(); } @Override diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 829329e046..beff607c2d 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -5,7 +5,6 @@ import static com.mapswithme.maps.widget.placepage.PlacePageButtons.PLACEPAGE_MO import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.location.Location; import android.net.Uri; @@ -27,7 +26,6 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentFactory; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -45,8 +43,6 @@ import com.mapswithme.maps.bookmarks.data.BookmarkInfo; import com.mapswithme.maps.bookmarks.data.BookmarkManager; import com.mapswithme.maps.bookmarks.data.MapObject; import com.mapswithme.maps.bookmarks.data.Track; -import com.mapswithme.maps.dialog.AlertDialogCallback; -import com.mapswithme.maps.dialog.DialogUtils; import com.mapswithme.maps.downloader.DownloaderActivity; import com.mapswithme.maps.downloader.DownloaderFragment; import com.mapswithme.maps.downloader.MapManager; @@ -117,7 +113,7 @@ public class MwmActivity extends BaseMwmFragmentActivity BookmarkManager.BookmarksLoadingListener, FloatingSearchToolbarController.SearchToolbarListener, PlacePageController.SlideListener, - AlertDialogCallback, RoutingModeListener, + RoutingModeListener, AppBackgroundTracker.OnTransitionListener, NoConnectionListener, MenuBottomSheetFragment.MenuBottomSheetInterfaceWithHeader, @@ -323,10 +319,10 @@ public class MwmActivity extends BaseMwmFragmentActivity return; } - new AlertDialog.Builder(MwmActivity.this) + new AlertDialog.Builder(MwmActivity.this, R.style.MwmTheme_AlertDialog) .setMessage(R.string.unknown_current_position) .setCancelable(true) - .setPositiveButton(android.R.string.ok, null) + .setPositiveButton(R.string.ok, null) .show(); } @@ -445,11 +441,11 @@ public class MwmActivity extends BaseMwmFragmentActivity @Override public void onNoConnectionError() { - DialogInterface.OnClickListener listener = (dialog, which) -> { - }; - DialogUtils.showAlertDialog(this, R.string.common_check_internet_connection_dialog_title, - R.string.common_check_internet_connection_dialog, - R.string.ok, listener); + new AlertDialog.Builder(this, R.style.MwmTheme_AlertDialog) + .setTitle(R.string.common_check_internet_connection_dialog_title) + .setMessage(R.string.common_check_internet_connection_dialog) + .setPositiveButton(R.string.ok, null) + .show(); } private void initViews(boolean isLaunchByDeeplink) @@ -503,7 +499,12 @@ public class MwmActivity extends BaseMwmFragmentActivity if (Framework.nativeIsDownloadedMapAtScreenCenter()) startActivity(new Intent(MwmActivity.this, FeatureCategoryActivity.class)); else - DialogUtils.showAlertDialog(MwmActivity.this, R.string.message_invalid_feature_position); + { + new AlertDialog.Builder(this, R.style.MwmTheme_AlertDialog) + .setTitle(R.string.message_invalid_feature_position) + .setPositiveButton(R.string.ok, null) + .show(); + } break; case NONE: throw new IllegalStateException("Unexpected mPositionChooserMode"); @@ -920,15 +921,12 @@ public class MwmActivity extends BaseMwmFragmentActivity return; } - com.mapswithme.maps.dialog.AlertDialog dialog = new com.mapswithme.maps.dialog.AlertDialog.Builder() - .setTitleId(R.string.downloader_update_maps) - .setMessageId(R.string.isolines_activation_error_dialog) - .setPositiveBtnId(R.string.ok) - .setNegativeBtnId(R.string.cancel) - .setFragManagerStrategyType(com.mapswithme.maps.dialog.AlertDialog.FragManagerStrategyType.ACTIVITY_FRAGMENT_MANAGER) - .setReqCode(REQ_CODE_ISOLINES_ERROR) - .build(); - dialog.show(this, ISOLINES_ERROR_DIALOG_TAG); + new AlertDialog.Builder(this, R.style.MwmTheme_AlertDialog) + .setTitle(R.string.downloader_update_maps) + .setMessage(R.string.isolines_activation_error_dialog) + .setPositiveButton(R.string.ok, (dialog, which) -> startActivity(new Intent(this, DownloaderActivity.class))) + .setNegativeButton(R.string.cancel, null) + .show(); } @Override @@ -1589,17 +1587,12 @@ public class MwmActivity extends BaseMwmFragmentActivity @Override public void onDrivingOptionsBuildError() { - com.mapswithme.maps.dialog.AlertDialog dialog = - new com.mapswithme.maps.dialog.AlertDialog.Builder() - .setTitleId(R.string.unable_to_calc_alert_title) - .setMessageId(R.string.unable_to_calc_alert_subtitle) - .setPositiveBtnId(R.string.settings) - .setNegativeBtnId(R.string.cancel) - .setReqCode(REQ_CODE_ERROR_DRIVING_OPTIONS_DIALOG) - .setFragManagerStrategyType(com.mapswithme.maps.dialog.AlertDialog - .FragManagerStrategyType.ACTIVITY_FRAGMENT_MANAGER) - .build(); - dialog.show(this, ERROR_DRIVING_OPTIONS_DIALOG_TAG); + new AlertDialog.Builder(this, R.style.MwmTheme_AlertDialog) + .setTitle(R.string.unable_to_calc_alert_title) + .setMessage(R.string.unable_to_calc_alert_subtitle) + .setPositiveButton(R.string.settings, (dialog, which) -> DrivingOptionsActivity.start(this)) + .setNegativeButton(R.string.cancel, null) + .show(); } @@ -1681,27 +1674,6 @@ public class MwmActivity extends BaseMwmFragmentActivity // Do nothing } - @Override - public void onAlertDialogPositiveClick(int requestCode, int which) - { - if (requestCode == REQ_CODE_ERROR_DRIVING_OPTIONS_DIALOG) - DrivingOptionsActivity.start(this); - else if (requestCode == REQ_CODE_ISOLINES_ERROR) - startActivity(new Intent(this, DownloaderActivity.class)); - } - - @Override - public void onAlertDialogNegativeClick(int requestCode, int which) - { - // Do nothing - } - - @Override - public void onAlertDialogCancel(int requestCode) - { - // Do nothing - } - @Override public void onBookmarksFileLoaded(boolean success) { diff --git a/android/src/com/mapswithme/maps/SplashActivity.java b/android/src/com/mapswithme/maps/SplashActivity.java index 0c34e10f1a..9fcf23bd8d 100644 --- a/android/src/com/mapswithme/maps/SplashActivity.java +++ b/android/src/com/mapswithme/maps/SplashActivity.java @@ -5,7 +5,6 @@ import static android.Manifest.permission.ACCESS_FINE_LOCATION; import android.app.Activity; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; @@ -133,20 +132,12 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity private void showFatalErrorDialog(@StringRes int titleId, @StringRes int messageId) { mCanceled = true; - AlertDialog dialog = new AlertDialog.Builder(this) + new AlertDialog.Builder(this, R.style.MwmTheme_AlertDialog) .setTitle(titleId) .setMessage(messageId) - .setNegativeButton(R.string.ok, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - SplashActivity.this.finish(); - } - }) + .setNegativeButton(R.string.ok, (dialog, which) -> SplashActivity.this.finish()) .setCancelable(false) - .create(); - dialog.show(); + .show(); } @Override diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java index 787a6bc76f..fc82a7cae8 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java @@ -25,7 +25,6 @@ import com.mapswithme.maps.base.DataChangedListener; import com.mapswithme.maps.bookmarks.data.BookmarkCategory; import com.mapswithme.maps.bookmarks.data.BookmarkManager; import com.mapswithme.maps.bookmarks.data.BookmarkSharingResult; -import com.mapswithme.maps.dialog.DialogUtils; import com.mapswithme.maps.dialog.EditTextDialogFragment; import com.mapswithme.maps.widget.PlaceholderView; import com.mapswithme.maps.widget.recycler.DividerItemDecorationWithPadding; @@ -296,7 +295,11 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment instance.onPositiveClicked(which)); - if (negativeButtonId != INVALID_ID) - builder.setNegativeButton(negativeButtonId, - (dialog, which) -> instance.onNegativeClicked(which)); - - return builder.show(); - } - } - - private static class ConfirmationDialogStrategy implements ResolveDialogViewStrategy - { - @NonNull - @Override - public Dialog createView(@NonNull AlertDialog fragment, @NonNull Bundle args) - { - AppCompatDialog appCompatDialog = new AppCompatDialog(fragment.requireContext()); - LayoutInflater inflater = LayoutInflater.from(fragment.requireContext()); - View root = inflater.inflate(fragment.getLayoutId(), null, false); - - TextView declineBtn = root.findViewById(R.id.decline_btn); - int declineBtnTextId = args.getInt(ARG_NEGATIVE_BUTTON_ID); - if (declineBtnTextId != INVALID_ID) - { - declineBtn.setText(args.getInt(ARG_NEGATIVE_BUTTON_ID)); - declineBtn.setOnClickListener( - v -> fragment.onNegativeClicked(DialogInterface.BUTTON_NEGATIVE)); - } - else - { - UiUtils.hide(declineBtn); - } - - TextView acceptBtn = root.findViewById(R.id.accept_btn); - acceptBtn.setText(args.getInt(ARG_POSITIVE_BUTTON_ID)); - acceptBtn.setOnClickListener( - v -> fragment.onPositiveClicked(DialogInterface.BUTTON_POSITIVE)); - - TextView descriptionView = root.findViewById(R.id.description); - descriptionView.setText(args.getInt(ARG_MESSAGE_ID)); - - TextView titleView = root.findViewById(R.id.title); - titleView.setText(args.getInt(ARG_TITLE_ID)); - - ImageView imageView = root.findViewById(R.id.image); - int imageResId = args.getInt(ARG_IMAGE_RES_ID); - boolean hasImage = imageResId != INVALID_ID; - - imageView.setImageDrawable(hasImage ? fragment.getResources().getDrawable(imageResId) - : null); - - int negativeBtnTextColor = args.getInt(ARG_NEGATIVE_BTN_TEXT_COLOR_RES_ID); - boolean hasNegativeBtnCustomColor = negativeBtnTextColor != INVALID_ID; - - if (hasNegativeBtnCustomColor) - declineBtn.setTextColor(fragment.getResources().getColor(negativeBtnTextColor)); - - UiUtils.showIf(hasImage, imageView); - appCompatDialog.setContentView(root); - return appCompatDialog; - } - } - - public enum FragManagerStrategyType - { - DEFAULT(new ChildFragmentManagerStrategy()), - ACTIVITY_FRAGMENT_MANAGER(new ActivityFragmentManagerStrategy()); - - @NonNull - private final ResolveFragmentManagerStrategy mStrategy; - - FragManagerStrategyType(@NonNull ResolveFragmentManagerStrategy strategy) - { - mStrategy = strategy; - } - - @NonNull - public ResolveFragmentManagerStrategy getValue() - { - return mStrategy; - } - } - - public enum DialogViewStrategyType - { - DEFAULT(new AlertDialogStrategy()), - CONFIRMATION_DIALOG(new ConfirmationDialogStrategy()); - - @NonNull - private final ResolveDialogViewStrategy mStrategy; - - DialogViewStrategyType(@NonNull ResolveDialogViewStrategy strategy) - { - mStrategy = strategy; - } - - @NonNull - private ResolveDialogViewStrategy getValue() - { - return mStrategy; - } - } -} diff --git a/android/src/com/mapswithme/maps/dialog/AlertDialogCallback.java b/android/src/com/mapswithme/maps/dialog/AlertDialogCallback.java deleted file mode 100644 index 98e16e1a19..0000000000 --- a/android/src/com/mapswithme/maps/dialog/AlertDialogCallback.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.mapswithme.maps.dialog; - -public interface AlertDialogCallback -{ - /** - * - * @param requestCode the code that the dialog was launched with. - * @param which indicates which button was pressed, for details see - * {@link android.content.DialogInterface} - * - * @see android.content.DialogInterface.OnClickListener - */ - void onAlertDialogPositiveClick(int requestCode, int which); - - /** - * - * @param requestCode the code that the dialog was launched with. - * @param which indicates which button was pressed, for details see - * {@link android.content.DialogInterface} - * - * @see android.content.DialogInterface.OnClickListener - */ - void onAlertDialogNegativeClick(int requestCode, int which); - - /** - * Called when the dialog is cancelled. - * - * @param requestCode the code that the dialog was launched with. - */ - void onAlertDialogCancel(int requestCode); -} diff --git a/android/src/com/mapswithme/maps/dialog/DefaultDialogFactory.java b/android/src/com/mapswithme/maps/dialog/DefaultDialogFactory.java deleted file mode 100644 index 4dc7400b47..0000000000 --- a/android/src/com/mapswithme/maps/dialog/DefaultDialogFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mapswithme.maps.dialog; - -import androidx.annotation.NonNull; - -class DefaultDialogFactory implements DialogFactory -{ - @NonNull - @Override - public AlertDialog createDialog() - { - return new AlertDialog(); - } -} diff --git a/android/src/com/mapswithme/maps/dialog/DialogFactory.java b/android/src/com/mapswithme/maps/dialog/DialogFactory.java deleted file mode 100644 index bcb0dc1c17..0000000000 --- a/android/src/com/mapswithme/maps/dialog/DialogFactory.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.mapswithme.maps.dialog; - -import androidx.annotation.NonNull; - -public interface DialogFactory -{ - @NonNull - AlertDialog createDialog(); -} diff --git a/android/src/com/mapswithme/maps/dialog/DialogUtils.java b/android/src/com/mapswithme/maps/dialog/DialogUtils.java deleted file mode 100644 index b3b8aac17c..0000000000 --- a/android/src/com/mapswithme/maps/dialog/DialogUtils.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.mapswithme.maps.dialog; - -import android.app.ProgressDialog; -import android.content.Context; -import android.content.DialogInterface; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; - -import com.mapswithme.maps.R; - -public class DialogUtils -{ - private DialogUtils() - { - } - - @NonNull - private static AlertDialog.Builder buildAlertDialog(@NonNull Context context, @StringRes int titleId) - { - return new AlertDialog.Builder(context) - .setCancelable(false) - .setTitle(titleId) - .setPositiveButton(R.string.ok, (dlg, which) -> dlg.dismiss()); - } - - @NonNull - static AlertDialog.Builder buildAlertDialog(@NonNull Context context, @StringRes int titleId, - @StringRes int msgId) - { - return buildAlertDialog(context, titleId) - .setMessage(msgId); - } - - @NonNull - private static AlertDialog.Builder buildAlertDialog(@NonNull Context context, @StringRes int titleId, - @NonNull CharSequence msg, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener - posClickListener, - @StringRes int negBtn, - @Nullable DialogInterface.OnClickListener - negClickListener) - { - return buildAlertDialog(context, titleId, msg, posBtn, posClickListener) - .setNegativeButton(negBtn, negClickListener); - } - - @NonNull - private static AlertDialog.Builder buildAlertDialog(@NonNull Context context, @StringRes int titleId, - @NonNull CharSequence msg, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener - posClickListener) - { - return buildAlertDialog(context, titleId) - .setMessage(msg) - .setPositiveButton(posBtn, posClickListener); - } - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId, - @StringRes int msgId) - { - buildAlertDialog(context, titleId, msgId).show(); - } - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId) - { - buildAlertDialog(context, titleId).show(); - } - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId, - @StringRes int msgId, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener posClickListener, - @StringRes int negBtn) - { - buildAlertDialog(context, titleId, context.getString(msgId), posBtn, posClickListener, negBtn, - null).show(); - } - - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId, - @NonNull CharSequence msg, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener posClickListener, - @StringRes int negBtn) - { - buildAlertDialog(context, titleId, msg, posBtn, posClickListener, negBtn, null).show(); - } - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId, - @NonNull CharSequence msg, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener posClickListener, - @StringRes int negBtn, - @Nullable DialogInterface.OnClickListener negClickListener) - { - buildAlertDialog(context, titleId, msg, posBtn, posClickListener, negBtn, negClickListener).show(); - } - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId, - @StringRes int msgId, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener posClickListener, - @StringRes int negBtn, - @Nullable DialogInterface.OnClickListener negClickListener) - { - buildAlertDialog(context, titleId, context.getString(msgId), posBtn, posClickListener, negBtn, - negClickListener).show(); - } - - public static void showAlertDialog(@NonNull Context context, @StringRes int titleId, - @StringRes int msgId, @StringRes int posBtn, - @NonNull DialogInterface.OnClickListener posClickListener) - { - buildAlertDialog(context, titleId, context.getString(msgId), posBtn, posClickListener).show(); - } - - - @NonNull - public static ProgressDialog createModalProgressDialog(@NonNull Context context, @StringRes int msg) - { - ProgressDialog progress = new ProgressDialog(context, R.style.MwmTheme_AlertDialog); - progress.setMessage(context.getString(msg)); - progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); - progress.setIndeterminate(true); - progress.setCancelable(false); - return progress; - } - - @NonNull - public static ProgressDialog createModalProgressDialog(@NonNull Context context, @StringRes int msg, - int whichButton, @StringRes int buttonText, - @Nullable DialogInterface.OnClickListener - clickListener) - { - ProgressDialog progress = createModalProgressDialog(context, msg); - progress.setButton(whichButton, context.getString(buttonText), clickListener); - return progress; - } -} diff --git a/android/src/com/mapswithme/maps/dialog/EditTextDialogFragment.java b/android/src/com/mapswithme/maps/dialog/EditTextDialogFragment.java index 4ff22e0381..401ad8b9f5 100644 --- a/android/src/com/mapswithme/maps/dialog/EditTextDialogFragment.java +++ b/android/src/com/mapswithme/maps/dialog/EditTextDialogFragment.java @@ -119,7 +119,7 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment negativeButtonText = args.getString(ARG_NEGATIVE_BUTTON); } - AlertDialog editTextDialog = new AlertDialog.Builder(requireActivity()) + AlertDialog editTextDialog = new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) .setView(buildView()) .setNegativeButton(negativeButtonText, null) .setPositiveButton(positiveButtonText, (dialog, which) -> { @@ -134,7 +134,6 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment this.validateInput(requireActivity(), mInitialText); }); - // Setup validation on input edit. mEtInput.addTextChangedListener(new StringUtils.SimpleTextWatcher() { diff --git a/android/src/com/mapswithme/maps/dialog/ResolveDialogViewStrategy.java b/android/src/com/mapswithme/maps/dialog/ResolveDialogViewStrategy.java deleted file mode 100644 index f83f623295..0000000000 --- a/android/src/com/mapswithme/maps/dialog/ResolveDialogViewStrategy.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.mapswithme.maps.dialog; - -import android.app.Dialog; -import android.os.Bundle; - -import androidx.annotation.NonNull; - -public interface ResolveDialogViewStrategy -{ - @NonNull - Dialog createView(@NonNull AlertDialog dialog, @NonNull Bundle args); -} diff --git a/android/src/com/mapswithme/maps/dialog/ResolveFragmentManagerStrategy.java b/android/src/com/mapswithme/maps/dialog/ResolveFragmentManagerStrategy.java deleted file mode 100644 index 68c76adfef..0000000000 --- a/android/src/com/mapswithme/maps/dialog/ResolveFragmentManagerStrategy.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.mapswithme.maps.dialog; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -public interface ResolveFragmentManagerStrategy -{ - @NonNull - FragmentManager resolve(@NonNull Fragment baseFragment); - - @NonNull - FragmentManager resolve(@NonNull FragmentActivity activity); -} diff --git a/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java b/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java index 829b10181f..f8516a7b8b 100644 --- a/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java +++ b/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java @@ -100,10 +100,10 @@ class DownloaderAdapter extends RecyclerView.Adapter deleteNode(item, adapter)).show(); + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.ok, (dialog, which) -> deleteNode(item, adapter)) + .show(); } private void onCancelActionSelected(CountryItem item, DownloaderAdapter adapter) diff --git a/android/src/com/mapswithme/maps/downloader/MapManager.java b/android/src/com/mapswithme/maps/downloader/MapManager.java index ffa12e7096..1e2cfa6600 100644 --- a/android/src/com/mapswithme/maps/downloader/MapManager.java +++ b/android/src/com/mapswithme/maps/downloader/MapManager.java @@ -89,30 +89,20 @@ public final class MapManager throw new IllegalArgumentException("Given error can not be displayed: " + errorData.errorCode); } - AlertDialog dlg = new AlertDialog.Builder(activity) - .setTitle(R.string.country_status_download_failed) - .setMessage(text) - .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 - public void onClick(DialogInterface dialog, int which) - { - Application app = activity.getApplication(); - RetryFailedDownloadConfirmationListener listener - = new ExpandRetryConfirmationListener(app, dialogClickListener); - warn3gAndRetry(activity, errorData.countryId, listener); - } - }).create(); + final AlertDialog dlg = new AlertDialog.Builder(activity, R.style.MwmTheme_AlertDialog) + .setTitle(R.string.country_status_download_failed) + .setMessage(text) + .setNegativeButton(R.string.cancel, (dialog, which) -> { + sCurrentErrorDialog = null; + if (dialogClickListener != null) + dialogClickListener.invoke(false); + }) + .setPositiveButton(R.string.downloader_retry, (dialog, which) -> { + Application app = activity.getApplication(); + RetryFailedDownloadConfirmationListener listener + = new ExpandRetryConfirmationListener(app, dialogClickListener); + warn3gAndRetry(activity, errorData.countryId, listener); + }).create(); dlg.setCanceledOnTouchOutside(false); dlg.show(); sCurrentErrorDialog = new WeakReference<>(dlg); @@ -120,7 +110,7 @@ public final class MapManager private static void notifyNoSpaceInternal(Activity activity) { - new AlertDialog.Builder(activity) + new AlertDialog.Builder(activity, R.style.MwmTheme_AlertDialog) .setTitle(R.string.downloader_no_space_title) .setMessage(R.string.downloader_no_space_message) .setPositiveButton(android.R.string.ok, null) @@ -171,18 +161,13 @@ public final class MapManager return false; } - new AlertDialog.Builder(activity) - .setMessage(String.format("%1$s\n\n%2$s", activity.getString(R.string.download_over_mobile_header), - activity.getString(R.string.download_over_mobile_message))) - .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dlg, int which) - { - nativeEnableDownloadOn3g(); - onAcceptListener.run(); - } + new AlertDialog.Builder(activity, R.style.MwmTheme_AlertDialog) + .setTitle(R.string.download_over_mobile_header) + .setMessage(R.string.download_over_mobile_message) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.ok, (dlg, which) -> { + nativeEnableDownloadOn3g(); + onAcceptListener.run(); }).show(); return true; diff --git a/android/src/com/mapswithme/maps/editor/EditorFragment.java b/android/src/com/mapswithme/maps/editor/EditorFragment.java index 223ff7bc30..a54ce89391 100644 --- a/android/src/com/mapswithme/maps/editor/EditorFragment.java +++ b/android/src/com/mapswithme/maps/editor/EditorFragment.java @@ -6,7 +6,6 @@ import android.net.Uri; import android.os.Bundle; import android.text.InputType; import android.text.TextUtils; -import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -636,8 +635,8 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe private void rollback(@Editor.FeatureStatus int status) { - int title; - int message; + @StringRes final int title; + @StringRes final int message; if (status == Editor.CREATED) { title = R.string.editor_remove_place_button; @@ -649,19 +648,15 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe message = R.string.editor_reset_edits_message; } - new AlertDialog.Builder(requireActivity()).setTitle(message) - .setPositiveButton(getString(title).toUpperCase(), new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - Editor.nativeRollbackMapObject(); - Framework.nativePokeSearchInViewport(); - mParent.onBackPressed(); - } - }) - .setNegativeButton(getString(R.string.cancel).toUpperCase(), null) - .show(); + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setTitle(message) + .setPositiveButton(title, (dialog, which) -> { + Editor.nativeRollbackMapObject(); + Framework.nativePokeSearchInViewport(); + mParent.onBackPressed(); + }) + .setNegativeButton(R.string.cancel, null) + .show(); } private void placeDoesntExist() diff --git a/android/src/com/mapswithme/maps/editor/EditorHostFragment.java b/android/src/com/mapswithme/maps/editor/EditorHostFragment.java index 25eabf7634..461cc0ff5e 100644 --- a/android/src/com/mapswithme/maps/editor/EditorHostFragment.java +++ b/android/src/com/mapswithme/maps/editor/EditorHostFragment.java @@ -2,7 +2,6 @@ package com.mapswithme.maps.editor; import android.app.Activity; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; @@ -21,7 +20,6 @@ import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmToolbarFragment; import com.mapswithme.maps.base.OnBackPressListener; -import com.mapswithme.maps.dialog.DialogUtils; import com.mapswithme.maps.editor.data.Language; import com.mapswithme.maps.editor.data.LocalizedName; import com.mapswithme.maps.editor.data.LocalizedStreet; @@ -356,7 +354,10 @@ public class EditorHostFragment extends BaseMwmToolbarFragment private void processNoFeatures() { - DialogUtils.showAlertDialog(requireActivity(), R.string.downloader_no_space_title); + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setTitle(R.string.downloader_no_space_title) + .setPositiveButton(R.string.ok, null) + .show(); } private void processEditedFeatures() @@ -388,32 +389,27 @@ public class EditorHostFragment extends BaseMwmToolbarFragment private void showMistakeDialog(@StringRes int resId) { - new AlertDialog.Builder(requireActivity()) + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) .setMessage(resId) - .setPositiveButton(android.R.string.ok, null) + .setPositiveButton(R.string.ok, null) .show(); } private void showNoobDialog() { - new AlertDialog.Builder(requireActivity()) - .setTitle(R.string.editor_share_to_all_dialog_title) - .setMessage(getString(R.string.editor_share_to_all_dialog_message_1) - + " " + getString(R.string.editor_share_to_all_dialog_message_2)) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dlg, int which) - { + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setTitle(R.string.editor_share_to_all_dialog_title) + .setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + + " " + getString(R.string.editor_share_to_all_dialog_message_2)) + .setPositiveButton(android.R.string.ok, (dlg, which) -> { MwmApplication.prefs(requireContext()).edit() - .putBoolean(NOOB_ALERT_SHOWN, true) - .apply(); + .putBoolean(NOOB_ALERT_SHOWN, true) + .apply(); saveNote(); saveMapObjectEdits(); - } - }) - .setNegativeButton(android.R.string.cancel, null) - .show(); + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); } public void setStreet(LocalizedStreet street) diff --git a/android/src/com/mapswithme/maps/editor/HoursMinutesPickerFragment.java b/android/src/com/mapswithme/maps/editor/HoursMinutesPickerFragment.java index 63175cb18d..20d3fd22ec 100644 --- a/android/src/com/mapswithme/maps/editor/HoursMinutesPickerFragment.java +++ b/android/src/com/mapswithme/maps/editor/HoursMinutesPickerFragment.java @@ -75,36 +75,30 @@ public class HoursMinutesPickerFragment extends BaseMwmDialogFragment //noinspection ConstantConditions mTabs.getTabAt(mSelectedTab).select(); - @StyleRes - final int theme = ThemeUtils.isNightTheme(requireContext()) ? - R.style.MwmMain_DialogFragment_TimePicker_Night : - R.style.MwmMain_DialogFragment_TimePicker; + @StyleRes final int theme = ThemeUtils.isNightTheme(requireContext()) ? + R.style.MwmMain_DialogFragment_TimePicker_Night : + R.style.MwmMain_DialogFragment_TimePicker; final AlertDialog dialog = new AlertDialog.Builder(requireActivity(), theme) - .setView(root) - .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(android.R.string.ok, null) - .setCancelable(true) - .create(); + .setView(root) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.ok, null) + .setCancelable(true) + .create(); dialog.setOnShowListener(dialogInterface -> { mOkButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); - mOkButton.setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) + mOkButton.setOnClickListener(v -> { + if (mSelectedTab == TAB_FROM) { - if (mSelectedTab == TAB_FROM) - { - //noinspection ConstantConditions - mTabs.getTabAt(TAB_TO).select(); - return; - } - - saveHoursMinutes(); - dismiss(); - if (getParentFragment() instanceof OnPickListener) - ((OnPickListener) getParentFragment()).onHoursMinutesPicked(mFrom, mTo, mId); + //noinspection ConstantConditions + mTabs.getTabAt(TAB_TO).select(); + return; } + + saveHoursMinutes(); + dismiss(); + if (getParentFragment() instanceof OnPickListener) + ((OnPickListener) getParentFragment()).onHoursMinutesPicked(mFrom, mTo, mId); }); refreshPicker(); }); diff --git a/android/src/com/mapswithme/maps/editor/OsmLoginFragment.java b/android/src/com/mapswithme/maps/editor/OsmLoginFragment.java index e99e3dfd77..658d35d285 100644 --- a/android/src/com/mapswithme/maps/editor/OsmLoginFragment.java +++ b/android/src/com/mapswithme/maps/editor/OsmLoginFragment.java @@ -14,6 +14,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.Size; import androidx.appcompat.app.AlertDialog; + import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmToolbarFragment; import com.mapswithme.util.Constants; @@ -98,9 +99,10 @@ public class OsmLoginFragment extends BaseMwmToolbarFragment private void onAuthFail() { - new AlertDialog.Builder(requireActivity()).setTitle(R.string.editor_login_error_dialog) - .setPositiveButton(android.R.string.ok, null) - .show(); + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setTitle(R.string.editor_login_error_dialog) + .setPositiveButton(R.string.ok, null) + .show(); } private void onAuthSuccess(@Size(2) String[] auth, String username) diff --git a/android/src/com/mapswithme/maps/editor/ProfileFragment.java b/android/src/com/mapswithme/maps/editor/ProfileFragment.java index 756ee5b5bd..90a04e29e1 100644 --- a/android/src/com/mapswithme/maps/editor/ProfileFragment.java +++ b/android/src/com/mapswithme/maps/editor/ProfileFragment.java @@ -12,6 +12,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; + import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseMwmToolbarFragment; import com.mapswithme.util.Constants; @@ -83,15 +84,14 @@ public class ProfileFragment extends BaseMwmToolbarFragment private void logout() { - new AlertDialog.Builder(requireContext()) + new AlertDialog.Builder(requireContext(), R.style.MwmTheme_AlertDialog) .setMessage(R.string.are_you_sure) - .setPositiveButton(android.R.string.ok, (dialog, which) -> + .setPositiveButton(R.string.ok, (dialog, which) -> { OsmOAuth.clearAuthorization(requireContext()); refreshViews(); }) - .setNegativeButton(android.R.string.no, null) - .create() + .setNegativeButton(R.string.no, null) .show(); } diff --git a/android/src/com/mapswithme/maps/help/FaqFragment.java b/android/src/com/mapswithme/maps/help/FaqFragment.java index 2a31ebd967..1728ce8d8d 100644 --- a/android/src/com/mapswithme/maps/help/FaqFragment.java +++ b/android/src/com/mapswithme/maps/help/FaqFragment.java @@ -64,12 +64,12 @@ public class FaqFragment extends BaseMwmFragment }; TextView feedback = root.findViewById(R.id.feedback); - feedback.setOnClickListener(v -> new AlertDialog.Builder(requireActivity()) + feedback.setOnClickListener(v -> new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) .setTitle(R.string.feedback) .setNegativeButton(R.string.cancel, null) - .setItems(new CharSequence[] { getString(R.string.feedback_general), - getString(R.string.report_a_bug) }, - mDialogClickListener).show()); + .setItems(new CharSequence[]{getString(R.string.feedback_general), getString(R.string.report_a_bug)}, + mDialogClickListener) + .show()); return root; } diff --git a/android/src/com/mapswithme/maps/location/LocationHelper.java b/android/src/com/mapswithme/maps/location/LocationHelper.java index 4b11ff780a..95639b228f 100644 --- a/android/src/com/mapswithme/maps/location/LocationHelper.java +++ b/android/src/com/mapswithme/maps/location/LocationHelper.java @@ -331,7 +331,7 @@ public enum LocationHelper implements Initializable, AppBackgroundTrack return; final AppCompatActivity activity = mUiCallback.requireActivity(); - AlertDialog.Builder builder = new AlertDialog.Builder(activity) + AlertDialog.Builder builder = new AlertDialog.Builder(activity, R.style.MwmTheme_AlertDialog) .setTitle(R.string.enable_location_services) .setMessage(R.string.location_is_disabled_long_text) .setOnDismissListener(dialog -> mErrorDialog = null) @@ -361,7 +361,7 @@ public enum LocationHelper implements Initializable, AppBackgroundTrack return; final AppCompatActivity activity = mUiCallback.requireActivity(); - mErrorDialog = new AlertDialog.Builder(activity) + mErrorDialog = new AlertDialog.Builder(activity, R.style.MwmTheme_AlertDialog) .setTitle(R.string.current_location_unknown_title) .setMessage(R.string.current_location_unknown_message) .setOnDismissListener(dialog -> mErrorDialog = null) diff --git a/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java b/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java index b22d4ae4ed..f7c494c411 100644 --- a/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java +++ b/android/src/com/mapswithme/maps/maplayer/traffic/widget/TrafficButtonController.java @@ -2,7 +2,6 @@ package com.mapswithme.maps.maplayer.traffic.widget; import android.app.Activity; import android.app.Dialog; -import android.content.DialogInterface; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -111,26 +110,12 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback if (mDialog != null && mDialog.isShowing()) return; - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity) + mDialog = new AlertDialog.Builder(mActivity, R.style.MwmTheme_AlertDialog) .setMessage(R.string.common_check_internet_connection_dialog) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - TrafficManager.INSTANCE.setEnabled(false); - } - }) + .setPositiveButton(R.string.ok, (dialog, which) -> TrafficManager.INSTANCE.setEnabled(false)) .setCancelable(true) - .setOnCancelListener(new DialogInterface.OnCancelListener() - { - @Override - public void onCancel(DialogInterface dialog) - { - TrafficManager.INSTANCE.setEnabled(false); - } - }); - mDialog = builder.show(); + .setOnCancelListener(dialog -> TrafficManager.INSTANCE.setEnabled(false)) + .show(); } public void destroy() diff --git a/android/src/com/mapswithme/maps/routing/BaseRoutingErrorDialogFragment.java b/android/src/com/mapswithme/maps/routing/BaseRoutingErrorDialogFragment.java index 10e92cf77e..10b02e2f21 100644 --- a/android/src/com/mapswithme/maps/routing/BaseRoutingErrorDialogFragment.java +++ b/android/src/com/mapswithme/maps/routing/BaseRoutingErrorDialogFragment.java @@ -58,9 +58,9 @@ abstract class BaseRoutingErrorDialogFragment extends BaseMwmDialogFragment public Dialog onCreateDialog(Bundle savedInstanceState) { parseArguments(); - AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity()) - .setCancelable(true) - .setNegativeButton(android.R.string.cancel, null); + AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setCancelable(true) + .setNegativeButton(android.R.string.cancel, null); beforeDialogCreated(builder); return createDialog(builder); } diff --git a/android/src/com/mapswithme/maps/routing/RoutingController.java b/android/src/com/mapswithme/maps/routing/RoutingController.java index 22dce08f72..07dfb5683d 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingController.java @@ -15,6 +15,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.core.util.Pair; import androidx.fragment.app.FragmentActivity; + import com.mapswithme.maps.Framework; import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.R; @@ -342,20 +343,16 @@ public class RoutingController implements Initializable R.string.dialog_routing_disclaimer_beware }) builder.append(MwmApplication.from(activity.getApplicationContext()).getString(resId)).append("\n\n"); - new AlertDialog.Builder(activity) + new AlertDialog.Builder(activity, R.style.MwmTheme_AlertDialog) .setTitle(R.string.dialog_routing_disclaimer_title) .setMessage(builder.toString()) .setCancelable(false) .setNegativeButton(R.string.decline, null) - .setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dlg, int which) - { - Config.acceptRoutingDisclaimer(); - prepare(startPoint, endPoint, fromApi); - } - }).show(); + .setPositiveButton(R.string.accept, (dlg, which) -> { + Config.acceptRoutingDisclaimer(); + prepare(startPoint, endPoint, fromApi); + }) + .show(); } public void restoreRoute() @@ -542,9 +539,9 @@ public class RoutingController implements Initializable return; final AlertDialog.Builder builder = new AlertDialog.Builder(mContainer.requireActivity()) - .setMessage(R.string.p2p_reroute_from_current) - .setCancelable(false) - .setNegativeButton(R.string.cancel, null); + .setMessage(R.string.p2p_reroute_from_current) + .setCancelable(false) + .setNegativeButton(R.string.cancel, null); TextView titleView = (TextView)View.inflate(mContainer.requireActivity(), R.layout.dialog_suggest_reroute_title, null); titleView.setText(R.string.p2p_only_from_current); diff --git a/android/src/com/mapswithme/maps/settings/SettingsPrefsFragment.java b/android/src/com/mapswithme/maps/settings/SettingsPrefsFragment.java index 6364127880..6472365bde 100644 --- a/android/src/com/mapswithme/maps/settings/SettingsPrefsFragment.java +++ b/android/src/com/mapswithme/maps/settings/SettingsPrefsFragment.java @@ -693,15 +693,17 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment public boolean onPreferenceClick(Preference preference) { if (MapManager.nativeIsDownloading()) - new AlertDialog.Builder(requireActivity()) - .setTitle(getString(R.string.downloading_is_active)) - .setMessage(getString(R.string.cant_change_this_setting)) - .setPositiveButton(getString(R.string.ok), null) + { + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setTitle(R.string.downloading_is_active) + .setMessage(R.string.cant_change_this_setting) + .setPositiveButton(R.string.ok, null) .show(); + } else -// getSettingsActivity().switchToFragment(StoragePathFragment.class, R.string.maps_storage); - getSettingsActivity().stackFragment(StoragePathFragment.class, - getString(R.string.maps_storage), null); + { + getSettingsActivity().stackFragment(StoragePathFragment.class, getString(R.string.maps_storage), null); + } return true; } diff --git a/android/src/com/mapswithme/maps/settings/StoragePathFragment.java b/android/src/com/mapswithme/maps/settings/StoragePathFragment.java index cdc7926185..dce311ff53 100644 --- a/android/src/com/mapswithme/maps/settings/StoragePathFragment.java +++ b/android/src/com/mapswithme/maps/settings/StoragePathFragment.java @@ -11,10 +11,10 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; + import com.mapswithme.maps.Framework; import com.mapswithme.maps.R; import com.mapswithme.maps.base.OnBackPressListener; -import com.mapswithme.maps.dialog.DialogUtils; import com.mapswithme.util.Config; import com.mapswithme.util.StorageUtils; import com.mapswithme.util.Utils; @@ -93,7 +93,7 @@ public class StoragePathFragment extends BaseSettingsFragment final String oldPath = storages.get(currentIndex).mPath; final String newPath = storages.get(newIndex).mPath; - new AlertDialog.Builder(requireActivity()) + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) .setCancelable(false) .setTitle(R.string.move_maps) .setPositiveButton(R.string.ok, (dlg, which) -> moveStorage(newPath, oldPath)) @@ -107,7 +107,11 @@ public class StoragePathFragment extends BaseSettingsFragment */ private void moveStorage(@NonNull final String newPath, @NonNull final String oldPath) { - final ProgressDialog dialog = DialogUtils.createModalProgressDialog(requireActivity(), R.string.wait_several_minutes); + final ProgressDialog dialog = new ProgressDialog(requireActivity(), R.style.MwmTheme_AlertDialog); + dialog.setMessage(getString(R.string.wait_several_minutes)); + dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); + dialog.setIndeterminate(true); + dialog.setCancelable(false); dialog.show(); ThreadPool.getStorage().execute(() -> { @@ -119,10 +123,10 @@ public class StoragePathFragment extends BaseSettingsFragment if (!result) { - new AlertDialog.Builder(requireActivity()) + new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) .setTitle(R.string.move_maps_error) .setPositiveButton(R.string.report_a_bug, - (dlg, which) -> Utils.sendBugReport(requireActivity(), "Error moving map files")) + (dlg, which) -> Utils.sendBugReport(requireActivity(), "Error moving map files")) .show(); } Framework.nativeChangeWritableDir(newPath); diff --git a/android/src/com/mapswithme/maps/widget/placepage/BookmarkColorDialogFragment.java b/android/src/com/mapswithme/maps/widget/placepage/BookmarkColorDialogFragment.java index e7b73713bc..6504377840 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/BookmarkColorDialogFragment.java +++ b/android/src/com/mapswithme/maps/widget/placepage/BookmarkColorDialogFragment.java @@ -40,11 +40,11 @@ public class BookmarkColorDialogFragment extends BaseMwmDialogFragment if (getArguments() != null) mIconColor = getArguments().getInt(ICON_TYPE); - return new AlertDialog.Builder(requireActivity()) - .setView(buildView()) - .setTitle(R.string.bookmark_color) - .setNegativeButton(getString(R.string.cancel), null) - .create(); + return new AlertDialog.Builder(requireActivity(), R.style.MwmTheme_AlertDialog) + .setView(buildView()) + .setTitle(R.string.bookmark_color) + .setNegativeButton(R.string.cancel, null) + .create(); } public void setOnColorSetListener(OnBookmarkColorChangeListener listener) diff --git a/android/src/com/mapswithme/util/Utils.java b/android/src/com/mapswithme/util/Utils.java index 862e39e458..1a23f8ac5a 100644 --- a/android/src/com/mapswithme/util/Utils.java +++ b/android/src/com/mapswithme/util/Utils.java @@ -5,7 +5,6 @@ import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ClipData; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; @@ -32,6 +31,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.app.NavUtils; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; + import com.google.android.material.snackbar.Snackbar; import com.mapswithme.maps.BuildConfig; import com.mapswithme.maps.MwmApplication; @@ -389,26 +389,17 @@ public class Utils } final Holder holder = new Holder(); - new AlertDialog.Builder(context) - .setMessage(message) - .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(R.string.downloader_retry, new DialogInterface.OnClickListener() - { - @Override - public void onClick(DialogInterface dialog, int which) - { - holder.accepted = true; - checkConnection(context, message, onCheckPassedCallback); - } - }).setOnDismissListener(new DialogInterface.OnDismissListener() - { - @Override - public void onDismiss(DialogInterface dialog) - { - if (!holder.accepted) - onCheckPassedCallback.invoke(false); - } - }).show(); + new AlertDialog.Builder(context, R.style.MwmTheme_AlertDialog) + .setMessage(message) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.downloader_retry, (dialog, which) -> { + holder.accepted = true; + checkConnection(context, message, onCheckPassedCallback); + }).setOnDismissListener(dialog -> { + if (!holder.accepted) + onCheckPassedCallback.invoke(false); + }) + .show(); } public static boolean isAppInstalled(@NonNull Context context, @NonNull String packageName)