From 3c8f28675d1eaa7e6a3a5cb921e2ea5e2481d35f Mon Sep 17 00:00:00 2001 From: Sumit Singh <91668590+Giyutomioka-SS@users.noreply.github.com> Date: Wed, 2 Oct 2024 21:41:54 +0530 Subject: [PATCH] fix: Prevent deck creation on 'Enter' key when deck name already exists --- .../java/com/ichi2/anki/dialogs/CreateDeckDialog.kt | 12 +++++++++++- AnkiDroid/src/main/res/values/03-dialogs.xml | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/CreateDeckDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/CreateDeckDialog.kt index 59634b7e1ab6..fe60d485cf42 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/CreateDeckDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/CreateDeckDialog.kt @@ -97,7 +97,17 @@ class CreateDeckDialog( val inputField = dialog.getInputField() inputField.setOnEditorActionListener { _, actionId, event -> if (actionId == EditorInfo.IME_ACTION_DONE || event?.keyCode == KeyEvent.KEYCODE_ENTER) { - onPositiveButtonClicked() + when { + dialog.positiveButton.isEnabled -> { + onPositiveButtonClicked() + } + text.isBlank() -> { + dialog.getInputTextLayout().showSnackbar(context.getString(R.string.empty_deck_name), Snackbar.LENGTH_SHORT) + } + else -> { + dialog.getInputTextLayout().showSnackbar(context.getString(R.string.deck_already_exists), Snackbar.LENGTH_SHORT) + } + } true } else { false diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml index 3d4ca7d577fa..eb4fe964c7cc 100644 --- a/AnkiDroid/src/main/res/values/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values/03-dialogs.xml @@ -247,6 +247,7 @@ Deck already exists + Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’