[android] Use error in textfield instead alert dialog

Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
Jean-Baptiste
2026-01-01 07:37:37 +01:00
parent 008a785564
commit 1ba0c14ce5
2 changed files with 24 additions and 17 deletions

View File

@@ -16,8 +16,8 @@ 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.button.MaterialButton;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import java.util.Objects;
@@ -38,7 +38,7 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
@NonNull
private TextInputEditText mEditCategoryNameView;
@NonNull
private ShapeableImageView mSaveView;
private MaterialButton mSaveView;
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
@@ -75,7 +75,19 @@ 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)
{
clearNameBtn.setEndIconVisible(true);
mSaveView.setEnabled(true);
mSaveView.setAlpha(1f);
}
else
{
clearNameBtn.setEndIconVisible(false);
mSaveView.setEnabled(false);
mSaveView.setAlpha(0.5f);
clearNameBtn.setError(getString(R.string.bookmarks_error_title_empty_list_name));
}
}
@Override
@@ -111,16 +123,6 @@ public class BookmarkCategorySettingsFragment extends BaseMwmToolbarFragment
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)

View File

@@ -12,13 +12,18 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MwmWidget.ToolbarTheme">
<com.google.android.material.imageview.ShapeableImageView
<com.google.android.material.button.MaterialButton
android:id="@+id/save"
android:layout_width="?actionBarSize"
style="@style/Widget.Material3.Button.IconButton"
android:layout_width="?actionBarSize"
android:layout_height="?actionBarSize"
android:scaleType="centerInside"
android:layout_gravity="end|center_vertical"
app:srcCompat="@drawable/ic_done"/>
app:icon="@drawable/ic_done"
app:iconGravity="textStart"
app:iconTint="?iconTint"
android:enabled="false"
app:iconPadding="0dp"
app:iconSize="24dp" />
</com.google.android.material.appbar.MaterialToolbar>
<androidx.core.widget.NestedScrollView
android:scrollbars="none"