diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategorySettingsFragment.java b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategorySettingsFragment.java
index 9c3ed39df..d4c633b48 100644
--- a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategorySettingsFragment.java
+++ b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategorySettingsFragment.java
@@ -16,8 +16,7 @@ import app.organicmaps.sdk.bookmarks.data.BookmarkCategory;
import app.organicmaps.sdk.bookmarks.data.BookmarkManager;
import app.organicmaps.util.InputUtils;
import app.organicmaps.util.Utils;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-import com.google.android.material.imageview.ShapeableImageView;
+import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import java.util.Objects;
@@ -34,11 +33,15 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
@NonNull
private TextInputEditText mEditDescView;
+ @SuppressWarnings("NullableProblems")
+ @NonNull
+ private TextInputLayout mEditCategoryNameLayout;
+
@SuppressWarnings("NullableProblems")
@NonNull
private TextInputEditText mEditCategoryNameView;
@NonNull
- private ShapeableImageView mSaveView;
+ private MaterialButton mSaveView;
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
@@ -61,8 +64,8 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
private void initViews(@NonNull View root)
{
mEditCategoryNameView = root.findViewById(R.id.edit_list_name_view);
- TextInputLayout clearNameBtn = root.findViewById(R.id.edit_list_name_input);
- clearNameBtn.setEndIconOnClickListener(v -> clearAndFocus(mEditCategoryNameView));
+ mEditCategoryNameLayout = root.findViewById(R.id.edit_list_name_input);
+ mEditCategoryNameLayout.setEndIconOnClickListener(v -> clearAndFocus(mEditCategoryNameView));
mEditCategoryNameView.setText(mCategory.getName());
InputFilter[] f = {new InputFilter.LengthFilter(TEXT_LENGTH_LIMIT)};
mEditCategoryNameView.setFilters(f);
@@ -75,7 +78,15 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2)
{
- clearNameBtn.setEndIconVisible(charSequence.length() > 0);
+ if (charSequence.length() > 0)
+ {
+ mEditCategoryNameLayout.setEndIconVisible(true);
+ }
+ else
+ {
+ mEditCategoryNameLayout.setEndIconVisible(false);
+ mEditCategoryNameLayout.setError(getString(R.string.bookmarks_error_title_empty_list_name));
+ }
}
@Override
@@ -91,16 +102,23 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
private void onEditDoneClicked()
{
final String newCategoryName = getEditableCategoryName();
- if (!validateCategoryName(newCategoryName))
- return;
+ if (BookmarkManager.INSTANCE.isUsedCategoryName(newCategoryName) && !TextUtils.equals(newCategoryName, mCategory.getName())){
+ mEditCategoryNameLayout.setError(getString(R.string.bookmarks_error_title_list_name_already_taken));
+ }
+ else if (mEditCategoryNameView.length() < 1)
+ {
+ mEditCategoryNameLayout.setError(getString(R.string.bookmarks_error_title_empty_list_name));
+ }
+ else
+ {
+ if (isCategoryNameChanged())
+ BookmarkManager.INSTANCE.setCategoryName(mCategory.getId(), newCategoryName);
- if (isCategoryNameChanged())
- BookmarkManager.INSTANCE.setCategoryName(mCategory.getId(), newCategoryName);
+ if (isCategoryDescChanged())
+ BookmarkManager.INSTANCE.setCategoryDescription(mCategory.getId(), getEditableCategoryDesc());
- if (isCategoryDescChanged())
- BookmarkManager.INSTANCE.setCategoryDescription(mCategory.getId(), getEditableCategoryDesc());
-
- requireActivity().finish();
+ requireActivity().finish();
+ }
}
private boolean isCategoryNameChanged()
@@ -109,30 +127,6 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
return !TextUtils.equals(categoryName, mCategory.getName());
}
- private boolean validateCategoryName(@Nullable String name)
- {
- if (TextUtils.isEmpty(name))
- {
- new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
- .setTitle(R.string.bookmarks_error_title_empty_list_name)
- .setMessage(R.string.bookmarks_error_message_empty_list_name)
- .setPositiveButton(R.string.ok, null)
- .show();
- return false;
- }
-
- if (BookmarkManager.INSTANCE.isUsedCategoryName(name) && !TextUtils.equals(name, mCategory.getName()))
- {
- new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
- .setTitle(R.string.bookmarks_error_title_list_name_already_taken)
- .setMessage(R.string.bookmarks_error_message_list_name_already_taken)
- .setPositiveButton(R.string.ok, null)
- .show();
- return false;
- }
- return true;
- }
-
@NonNull
private String getEditableCategoryName()
{
diff --git a/android/app/src/main/res/layout/fragment_bookmark_category_settings.xml b/android/app/src/main/res/layout/fragment_bookmark_category_settings.xml
index 330463c43..d5c897cb9 100644
--- a/android/app/src/main/res/layout/fragment_bookmark_category_settings.xml
+++ b/android/app/src/main/res/layout/fragment_bookmark_category_settings.xml
@@ -12,13 +12,18 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MwmWidget.ToolbarTheme">
-
+ app:icon="@drawable/ic_done"
+ app:iconGravity="textStart"
+ app:iconTint="?iconTint"
+ android:enabled="false"
+ app:iconPadding="0dp"
+ app:iconSize="24dp" />