Skip to content

Commit 7594d0d

Browse files
david-allisonlukstbit
authored andcommitted
fix(card-browser): memory leak
Fixes a TODO and moves the operation into the ViewModel - orderSingleChoiceDialogListener was in the companion object Fixes 21148 Assisted-by: Claude Opus 4.7 - all
1 parent debf0a1 commit 7594d0d

2 files changed

Lines changed: 5 additions & 21 deletions

File tree

AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserFragment.kt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.ichi2.anki.browser
1818

1919
import android.content.Context
20-
import android.content.DialogInterface
2120
import android.graphics.Color
2221
import android.os.Bundle
2322
import android.text.Spannable
@@ -122,7 +121,6 @@ import com.ichi2.anki.libanki.undoAvailable
122121
import com.ichi2.anki.libanki.undoLabel
123122
import com.ichi2.anki.model.CardStateFilter
124123
import com.ichi2.anki.model.CardsOrNotes.CARDS
125-
import com.ichi2.anki.model.LegacySortType
126124
import com.ichi2.anki.model.SelectableDeck
127125
import com.ichi2.anki.observability.ChangeManager
128126
import com.ichi2.anki.observability.undoableOp
@@ -134,15 +132,13 @@ import com.ichi2.anki.scheduling.SetDueDateDialog
134132
import com.ichi2.anki.snackbar.showSnackbar
135133
import com.ichi2.anki.ui.attachFastScroller
136134
import com.ichi2.anki.ui.internationalization.sentenceCase
137-
import com.ichi2.anki.ui.internationalization.toSentenceCase
138135
import com.ichi2.anki.undoAndShowSnackbar
139136
import com.ichi2.anki.utils.ext.addPrepareMenuProvider
140137
import com.ichi2.anki.utils.ext.getParcelableCompat
141138
import com.ichi2.anki.utils.ext.hasCheckedBackground
142139
import com.ichi2.anki.utils.ext.ifNotZero
143140
import com.ichi2.anki.utils.ext.launchCollectionInLifecycleScope
144141
import com.ichi2.anki.utils.ext.setFragmentResultListener
145-
import com.ichi2.anki.utils.ext.sharedPrefs
146142
import com.ichi2.anki.utils.ext.showDialogFragment
147143
import com.ichi2.anki.utils.ext.visibleItemPositions
148144
import com.ichi2.anki.utils.hideKeyboard
@@ -1446,13 +1442,7 @@ class CardBrowserFragment :
14461442
}
14471443

14481444
fun changeDisplayOrder() {
1449-
showDialogFragment(
1450-
// TODO: move this into the ViewModel
1451-
CardBrowserOrderDialog.newInstance { dialog: DialogInterface, which: Int ->
1452-
dialog.dismiss()
1453-
activityViewModel.changeCardOrder(LegacySortType.fromCardBrowserLabelIndex(which))
1454-
},
1455-
)
1445+
showDialogFragment(CardBrowserOrderDialog())
14561446
}
14571447

14581448
fun updateFlagForSelectedRows(flag: Flag) =

AnkiDroid/src/main/java/com/ichi2/anki/dialogs/CardBrowserOrderDialog.kt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.ichi2.anki.dialogs
1818

1919
import android.app.Dialog
20-
import android.content.DialogInterface
2120
import android.os.Bundle
2221
import androidx.appcompat.app.AlertDialog
2322
import androidx.fragment.app.activityViewModels
@@ -50,19 +49,14 @@ class CardBrowserOrderDialog : AnalyticsDialogFragment() {
5049
return AlertDialog
5150
.Builder(requireContext())
5251
.setTitle(R.string.card_browser_change_display_order_title)
53-
.setSingleChoiceItems(items, viewModel.order.cardBrowserLabelIndex, orderSingleChoiceDialogListener)
54-
.create()
52+
.setSingleChoiceItems(items, viewModel.order.cardBrowserLabelIndex) { dialog, which ->
53+
dialog.dismiss()
54+
viewModel.changeCardOrder(LegacySortType.fromCardBrowserLabelIndex(which))
55+
}.create()
5556
}
5657

5758
companion object {
58-
private var orderSingleChoiceDialogListener: DialogInterface.OnClickListener? = null
59-
6059
// SortType.NO_SORTING.cardBrowserLabelIndex
6160
private const val CARD_ORDER_NONE = 0
62-
63-
fun newInstance(orderSingleChoiceDialogListener: DialogInterface.OnClickListener): CardBrowserOrderDialog {
64-
this.orderSingleChoiceDialogListener = orderSingleChoiceDialogListener
65-
return CardBrowserOrderDialog()
66-
}
6761
}
6862
}

0 commit comments

Comments
 (0)