From e33f0576a0cfd434a38a118c2f453c1723fc72c2 Mon Sep 17 00:00:00 2001 From: songbrandon7 Date: Fri, 17 Jul 2026 20:18:46 -0500 Subject: [PATCH] improved Review forgotten cards dialog --- .../dialogs/customstudy/CustomStudyDialog.kt | 25 +++++++++++++++++++ AnkiDroid/src/main/res/values/03-dialogs.xml | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/CustomStudyDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/CustomStudyDialog.kt index 4d0cfeb208f1..66ead84f428e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/CustomStudyDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/customstudy/CustomStudyDialog.kt @@ -24,6 +24,7 @@ import androidx.core.content.edit import androidx.core.view.isVisible import androidx.core.view.updatePadding import androidx.core.widget.doAfterTextChanged +import androidx.core.widget.doOnTextChanged import androidx.fragment.app.setFragmentResult import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope @@ -56,6 +57,7 @@ import com.ichi2.anki.launchCatchingTask import com.ichi2.anki.libanki.DeckId import com.ichi2.anki.observability.undoableOp import com.ichi2.anki.snackbar.showSnackbar +import com.ichi2.anki.ui.NonLeadingZeroInputFilter import com.ichi2.anki.ui.internationalization.sentenceCase import com.ichi2.anki.utils.ext.dismissAllDialogFragments import com.ichi2.anki.utils.ext.getIntOrNull @@ -281,6 +283,8 @@ class CustomStudyDialog : AnalyticsDialogFragment() { binding.detailsText1.text = text1 binding.detailsText2.text = text2 + binding.detailsText2.isVisible = text2.isNotEmpty() + binding.cardsStateSelectorLayout.isVisible = contextMenuOption == STUDY_TAGS binding.cardsStateSelector.apply { fun setAdapterAndSelection( @@ -310,7 +314,10 @@ class CustomStudyDialog : AnalyticsDialogFragment() { setAdapterAndSelection(cardStates, viewModel.selectedCardStateIndex) } binding.detailsEditText2.apply { + filters += NonLeadingZeroInputFilter + setText(defaultValue) + // Give EditText focus and show keyboard setSelectAllOnFocus(true) requestFocus() @@ -318,10 +325,28 @@ class CustomStudyDialog : AnalyticsDialogFragment() { if (contextMenuOption == EXTEND_NEW || contextMenuOption == EXTEND_REV) { inputType = EditorInfo.TYPE_CLASS_NUMBER or EditorInfo.TYPE_NUMBER_FLAG_SIGNED } + + if (contextMenuOption == STUDY_FORGOT) { + binding.detailsEditText2Layout.suffixText = + resources.getQuantityString( + R.plurals.set_due_date_label_suffix, + defaultValue.toIntOrNull() ?: 0, + ) + doOnTextChanged { text, _, _, _ -> + val currentValue = text?.toString()?.toIntOrNull() + binding.detailsEditText2Layout.suffixText = + resources.getQuantityString( + R.plurals.set_due_date_label_suffix, + currentValue ?: 0, + ) + } + } } val positiveBtnLabel = if (contextMenuOption == STUDY_TAGS) { TR.sentenceCase.chooseTags + } else if (contextMenuOption == STUDY_FORGOT) { + getString(R.string.dialog_positive_create) } else { getString(R.string.dialog_ok) } diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml index 0a705f4eda2b..02abafad9d05 100644 --- a/AnkiDroid/src/main/res/values/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values/03-dialogs.xml @@ -35,7 +35,7 @@ To add cards to AnkiDroid remove all Notepad categories or add one named “default” Increase/decrease (“-3”) today’s new card limit by Increase/decrease (“-3”) today’s review limit by - Review cards forgotten in last x days: + Review forgotten cards Review ahead by x days: Preview new cards added in the last x days: Select x cards from the deck: