From 186f7a091afea761162086bf338fa445bef3ead4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Mon, 29 Dec 2025 18:05:29 +0100 Subject: [PATCH] [android] Add a new alert dialog when we remove the last list Signed-off-by: Jean-Baptiste --- .../bookmarks/BookmarkCategoriesFragment.java | 26 ++++++++++++++----- android/app/src/main/res/values/strings.xml | 1 + 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesFragment.java b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesFragment.java index 03245eaee..da1cd2433 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesFragment.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesFragment.java @@ -197,10 +197,8 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment onShareActionSelected(mSelectedCategory, KmlFileType.Text))); items.add(new MenuBottomSheetItem(R.string.export_file_gpx, R.drawable.ic_file_gpx, () -> onShareActionSelected(mSelectedCategory, KmlFileType.Gpx))); - // Disallow deleting the last category - if (getAdapter().getBookmarkCategories().size() > 1) - items.add(new MenuBottomSheetItem(R.string.delete, R.drawable.ic_delete, - () -> onDeleteActionSelected(mSelectedCategory))); + items.add(new MenuBottomSheetItem(R.string.delete, R.drawable.ic_delete, + () -> onDeleteActionSelected(mSelectedCategory))); } return items; } @@ -297,8 +295,24 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment 1)) + { + BookmarkManager.INSTANCE.deleteCategory(category.getId()); + getAdapter().notifyDataSetChanged(); + } + else + { + new MaterialAlertDialogBuilder(requireActivity()) + .setMessage(R.string.unable_to_delete_list) + .setPositiveButton(android.R.string.yes, ((dialog, which) -> { + onAddButtonClick(); + BookmarkManager.INSTANCE.deleteCategory(category.getId()); + getAdapter().notifyDataSetChanged(); + })) + .setNegativeButton(android.R.string.no,(dialog, which) -> dialog.dismiss()) + .show(); + } } private void onSettingsActionSelected(@NonNull BookmarkCategory category) diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index aa092818d..3151c0aef 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -973,4 +973,5 @@ Override the default map download server used for map downloads. Leave empty to use CoMaps default server. Not set Please enter a URL starting with http:// or https:// + The app cannot work without at least one list. Do you want to remove it and create a new one?