diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/CategoryValidator.java b/android/app/src/main/java/app/organicmaps/bookmarks/CategoryValidator.java index 67dea45ce0..37c1ec598f 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/CategoryValidator.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/CategoryValidator.java @@ -9,19 +9,19 @@ import androidx.annotation.Nullable; import app.organicmaps.R; import app.organicmaps.bookmarks.data.BookmarkManager; import app.organicmaps.dialog.EditTextDialogFragment; -import app.organicmaps.util.Option; class CategoryValidator implements EditTextDialogFragment.Validator { + @Nullable @Override - public Option validate(@NonNull Activity activity, @Nullable String text) + public String validate(@NonNull Activity activity, @Nullable String text) { if (TextUtils.isEmpty(text)) - return new Option<>(activity.getString(R.string.bookmarks_error_title_empty_list_name)); + return activity.getString(R.string.bookmarks_error_title_empty_list_name); if (BookmarkManager.INSTANCE.isUsedCategoryName(text)) - return new Option<>(activity.getString(R.string.bookmarks_error_title_list_name_already_taken)); + return activity.getString(R.string.bookmarks_error_title_list_name_already_taken); - return Option.empty(); + return null; } } diff --git a/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java b/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java index aa7a7ac2a8..d317e955c0 100644 --- a/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java +++ b/android/app/src/main/java/app/organicmaps/dialog/EditTextDialogFragment.java @@ -24,7 +24,6 @@ import com.google.android.material.textfield.TextInputEditText; import app.organicmaps.R; import app.organicmaps.base.BaseMwmDialogFragment; import app.organicmaps.util.InputUtils; -import app.organicmaps.util.Option; import app.organicmaps.util.StringUtils; public class EditTextDialogFragment extends BaseMwmDialogFragment @@ -56,7 +55,8 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment // Interface of dialog input validator. public interface Validator { - Option validate(@NonNull Activity activity, @Nullable String text); + @Nullable + String validate(@NonNull Activity activity, @Nullable String text); } public static EditTextDialogFragment show(@Nullable String title, @Nullable String initialText, @@ -154,9 +154,9 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment { if (mPositiveButton != null && mInputValidator != null) { - Option maybeError = mInputValidator.validate(activity, input); - mPositiveButton.setEnabled(!maybeError.hasValue()); - mEtInputLayout.getEditText().setError(maybeError.getOrElse(null)); + final String maybeError = mInputValidator.validate(activity, input); + mPositiveButton.setEnabled(maybeError == null); + mEtInputLayout.getEditText().setError(maybeError); } } diff --git a/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java b/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java index c35bc7bc2e..e28c7aa40c 100644 --- a/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java +++ b/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java @@ -35,7 +35,6 @@ import app.organicmaps.editor.data.TimeFormatUtils; import app.organicmaps.editor.data.Timetable; import app.organicmaps.util.Graphics; import app.organicmaps.util.InputUtils; -import app.organicmaps.util.Option; import app.organicmaps.util.StringUtils; import app.organicmaps.util.UiUtils; import app.organicmaps.util.Utils; @@ -687,9 +686,9 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe { return (activity, text) -> { if (TextUtils.isEmpty(text)) - return new Option<>(activity.getString(R.string.delete_place_empty_comment_error)); + return activity.getString(R.string.delete_place_empty_comment_error); else - return Option.empty(); + return null; }; } } diff --git a/android/app/src/main/java/app/organicmaps/editor/StreetFragment.java b/android/app/src/main/java/app/organicmaps/editor/StreetFragment.java index 1664667d81..d4022a1a17 100644 --- a/android/app/src/main/java/app/organicmaps/editor/StreetFragment.java +++ b/android/app/src/main/java/app/organicmaps/editor/StreetFragment.java @@ -14,7 +14,8 @@ import app.organicmaps.R; import app.organicmaps.base.BaseMwmRecyclerFragment; import app.organicmaps.dialog.EditTextDialogFragment; import app.organicmaps.editor.data.LocalizedStreet; -import app.organicmaps.util.Option; + +import java.util.Optional; public class StreetFragment extends BaseMwmRecyclerFragment { @@ -35,7 +36,7 @@ public class StreetFragment extends BaseMwmRecyclerFragment } @Override - public void onSaveInstanceState(Bundle outState) + public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); Editor.nativeSetStreet(getStreet()); @@ -65,13 +66,14 @@ public class StreetFragment extends BaseMwmRecyclerFragment return text -> saveStreet(new LocalizedStreet(text, "")); } + @NonNull public static EditTextDialogFragment.Validator getStreetValidator() { return (activity, text) -> { if (TextUtils.isEmpty(text)) - return new Option<>(activity.getString(R.string.empty_street_name_error)); + return activity.getString(R.string.empty_street_name_error); else - return Option.empty(); + return null; }; } } diff --git a/android/app/src/main/java/app/organicmaps/util/Option.java b/android/app/src/main/java/app/organicmaps/util/Option.java deleted file mode 100644 index 6daf18ac8f..0000000000 --- a/android/app/src/main/java/app/organicmaps/util/Option.java +++ /dev/null @@ -1,32 +0,0 @@ -package app.organicmaps.util; - -public class Option -{ - private final T mValue; - - public static Option empty() - { - return new Option<>(null); - } - - public Option(T value) - { - mValue = value; - } - - public boolean hasValue() - { - return mValue != null; - } - - public T get() - { - assert(hasValue()); - return mValue; - } - - public T getOrElse(T defaultValue) - { - return hasValue() ? mValue : defaultValue; - } -}