@@ -21,9 +21,11 @@ import android.os.Bundle
2121import androidx.core.content.edit
2222import androidx.core.os.bundleOf
2323import androidx.fragment.app.DialogFragment
24+ import androidx.fragment.app.Fragment
25+ import androidx.fragment.app.FragmentActivity
26+ import androidx.fragment.app.setFragmentResultListener
2427import com.google.android.material.dialog.MaterialAlertDialogBuilder
2528import com.google.android.material.snackbar.Snackbar
26- import com.ichi2.anki.AnkiActivity
2729import com.ichi2.anki.CollectionManager.TR
2830import com.ichi2.anki.R
2931import com.ichi2.anki.common.annotations.NeedsTest
@@ -155,7 +157,7 @@ class ForgetCardsDialog : DialogFragment() {
155157 *
156158 * @param cardsIdsProducer lambda which returns the list of cards for which to reset the progress
157159 */
158- internal fun AnkiActivity .registerOnForgetHandler (cardsIdsProducer : suspend () -> List <CardId >) {
160+ internal fun FragmentActivity .registerOnForgetHandler (cardsIdsProducer : suspend () -> List <CardId >) {
159161 setFragmentResultListener(ForgetCardsDialog .REQUEST_KEY_FORGET ) { _, bundle ->
160162 forgetCards(
161163 cardsIdsProducer = cardsIdsProducer,
@@ -165,7 +167,23 @@ internal fun AnkiActivity.registerOnForgetHandler(cardsIdsProducer: suspend () -
165167 }
166168}
167169
168- private fun AnkiActivity.forgetCards (
170+ /* *
171+ * Listen for requests from [ForgetCardsDialog] and triggers backend calls to reset progress for
172+ * current selected/reviewed card/cards. Callers need to supply the list of cards ids.
173+ *
174+ * @param cardsIdsProducer lambda which returns the list of cards for which to reset the progress
175+ */
176+ internal fun Fragment.registerOnForgetHandler (cardsIdsProducer : suspend () -> List <CardId >) {
177+ setFragmentResultListener(ForgetCardsDialog .REQUEST_KEY_FORGET ) { _, bundle ->
178+ activity?.forgetCards(
179+ cardsIdsProducer = cardsIdsProducer,
180+ restoreOriginalPositionIfPossible = bundle.getBoolean(ForgetCardsDialog .ARG_RESTORE_ORIGINAL ),
181+ resetRepetitionAndLapseCounts = bundle.getBoolean(ForgetCardsDialog .ARG_RESET_REPETITION ),
182+ )
183+ }
184+ }
185+
186+ private fun FragmentActivity.forgetCards (
169187 cardsIdsProducer : suspend () -> List <CardId >,
170188 restoreOriginalPositionIfPossible : Boolean ,
171189 resetRepetitionAndLapseCounts : Boolean ,
0 commit comments