From 5a3f8f653b5653c7116971773ea5db9e0dfb755e Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Wed, 4 Mar 2026 14:26:43 +0000 Subject: [PATCH] fix(grade-now): handle binding when view is reused Previously the binding was only updated if `convertView` was `null` Issue 11116 --- .../com/ichi2/anki/dialogs/GradeNowDialog.kt | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/GradeNowDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/GradeNowDialog.kt index 1dd1d594f44f..d556cad6e891 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/GradeNowDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/GradeNowDialog.kt @@ -104,16 +104,21 @@ private class GradeNowListAdapter( position: Int, convertView: View?, parent: ViewGroup, - ): View = - convertView ?: GradeNowListItemBinding - .inflate(LayoutInflater.from(context), parent, false) - .also { binding -> - val grade = getItem(position)!! - binding.gradeTextView.apply { - text = grade.getLabel() - setCompoundDrawablesRelativeWithIntrinsicBoundsKt(start = grade.iconRes) - } - }.root + ): View { + val binding = + if (convertView != null) { + GradeNowListItemBinding.bind(convertView) + } else { + GradeNowListItemBinding.inflate(LayoutInflater.from(context), parent, false) + } + + val grade = getItem(position)!! + binding.gradeTextView.apply { + text = grade.getLabel() + setCompoundDrawablesRelativeWithIntrinsicBoundsKt(start = grade.iconRes) + } + return binding.root + } } private enum class Grade(