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’