@@ -23,12 +23,10 @@ import android.content.DialogInterface
2323import android.content.Intent
2424import android.os.Bundle
2525import android.view.KeyEvent
26- import android.view.LayoutInflater
2726import android.view.Menu
2827import android.view.MenuItem
2928import android.view.SubMenu
3029import android.view.View
31- import android.view.ViewGroup
3230import android.view.WindowManager
3331import android.view.inputmethod.InputMethodManager
3432import android.widget.BaseAdapter
@@ -56,7 +54,6 @@ import com.ichi2.anki.CollectionManager.TR
5654import com.ichi2.anki.CollectionManager.withCol
5755import com.ichi2.anki.android.input.ShortcutGroup
5856import com.ichi2.anki.android.input.shortcut
59- import com.ichi2.anki.browser.BrowserColumnSelectionFragment
6057import com.ichi2.anki.browser.BrowserRowCollection
6158import com.ichi2.anki.browser.CardBrowserFragment
6259import com.ichi2.anki.browser.CardBrowserLaunchOptions
@@ -65,8 +62,6 @@ import com.ichi2.anki.browser.CardBrowserViewModel.SearchState
6562import com.ichi2.anki.browser.CardBrowserViewModel.SearchState.Initializing
6663import com.ichi2.anki.browser.CardBrowserViewModel.SearchState.Searching
6764import com.ichi2.anki.browser.CardOrNoteId
68- import com.ichi2.anki.browser.ColumnHeading
69- import com.ichi2.anki.browser.ColumnSelectionDialogFragment
7065import com.ichi2.anki.browser.FindAndReplaceDialogFragment
7166import com.ichi2.anki.browser.IdsFile
7267import com.ichi2.anki.browser.RepositionCardFragment
@@ -123,9 +118,7 @@ import com.ichi2.libanki.undoableOp
123118import com.ichi2.ui.CardBrowserSearchView
124119import com.ichi2.utils.LanguageUtil
125120import com.ichi2.utils.TagsUtil.getUpdatedTags
126- import com.ichi2.utils.dp
127121import com.ichi2.utils.increaseHorizontalPaddingOfOverflowMenuIcons
128- import com.ichi2.utils.updatePaddingRelative
129122import com.ichi2.widget.WidgetStatus.updateInBackground
130123import kotlinx.coroutines.Job
131124import kotlinx.coroutines.launch
@@ -183,10 +176,6 @@ open class CardBrowser :
183176
184177 private var searchView: CardBrowserSearchView ? = null
185178
186- @VisibleForTesting
187- val browserColumnHeadings: ViewGroup
188- get() = cardBrowserFragment.browserColumnHeadings
189-
190179 private lateinit var tagsDialogFactory: TagsDialogFactory
191180 private var searchItem: MenuItem ? = null
192181 private var saveSearchItem: MenuItem ? = null
@@ -552,16 +541,12 @@ open class CardBrowser :
552541 // show title and hide spinner
553542 actionBarTitle.visibility = View .VISIBLE
554543 deckSpinnerSelection.setSpinnerVisibility(View .GONE )
555- // A checkbox is added on the rows, match padding to keep the headings aligned
556- // Due to the ripple on long press, we set padding
557- browserColumnHeadings.updatePaddingRelative(start = 48 .dp)
558544 multiSelectOnBackPressedCallback.isEnabled = true
559545 } else {
560546 Timber .d(" end multiselect mode" )
561547 refreshSubtitle()
562548 deckSpinnerSelection.setSpinnerVisibility(View .VISIBLE )
563549 actionBarTitle.visibility = View .GONE
564- browserColumnHeadings.updatePaddingRelative(start = 0 .dp)
565550 multiSelectOnBackPressedCallback.isEnabled = false
566551 }
567552 // reload the actionbar using the multi-select mode actionbar
@@ -589,58 +574,6 @@ open class CardBrowser :
589574 }
590575 }
591576
592- fun showColumnSelectionDialog (selectedColumn : ColumnHeading ) {
593- Timber .d(" Fetching available columns for: ${selectedColumn.label} " )
594-
595- // Prevent multiple dialogs from opening
596- if (supportFragmentManager.findFragmentByTag(ColumnSelectionDialogFragment .TAG ) != null ) {
597- Timber .d(" ColumnSelectionDialog is already shown, ignoring duplicate click." )
598- return
599- }
600-
601- lifecycleScope.launch {
602- val (_, availableColumns) = viewModel.previewColumnHeadings(viewModel.cardsOrNotes)
603-
604- if (availableColumns.isEmpty()) {
605- Timber .w(" No available columns to replace ${selectedColumn.label} " )
606- showSnackbar(R .string.no_columns_available)
607- return @launch
608- }
609-
610- val dialog = ColumnSelectionDialogFragment .newInstance(selectedColumn)
611- dialog.show(supportFragmentManager, ColumnSelectionDialogFragment .TAG )
612- }
613- }
614-
615- fun onColumnNamesChanged (columnCollection : List <ColumnHeading >) {
616- Timber .d(" column names changed" )
617- browserColumnHeadings.removeAllViews()
618-
619- val layoutInflater = LayoutInflater .from(browserColumnHeadings.context)
620- for (column in columnCollection) {
621- Timber .d(" setting up column %s" , column)
622- layoutInflater.inflate(R .layout.browser_column_heading, browserColumnHeadings, false ).apply {
623- val columnView = this as TextView
624- columnView.text = column.label
625-
626- // Attach click listener to open the selection dialog
627- columnView.setOnClickListener {
628- Timber .d(" Clicked column: ${column.label} " )
629- showColumnSelectionDialog(column)
630- }
631-
632- // Attach long press listener to open the manage column dialog
633- columnView.setOnLongClickListener {
634- Timber .d(" Long-pressed column: ${column.label} " )
635- val dialog = BrowserColumnSelectionFragment .createInstance(viewModel.cardsOrNotes)
636- dialog.show(supportFragmentManager, null )
637- true
638- }
639- browserColumnHeadings.addView(columnView)
640- }
641- }
642- }
643-
644577 fun onSelectedCardUpdated (unit : Unit ) {
645578 if (fragmented) {
646579 loadNoteEditorFragmentIfFragmented()
@@ -657,7 +590,6 @@ open class CardBrowser :
657590 viewModel.flowOfIsInMultiSelectMode.launchCollectionInLifecycleScope(::isInMultiSelectModeChanged)
658591 viewModel.flowOfCardsUpdated.launchCollectionInLifecycleScope(::cardsUpdatedChanged)
659592 viewModel.flowOfSearchState.launchCollectionInLifecycleScope(::searchStateChanged)
660- viewModel.flowOfColumnHeadings.launchCollectionInLifecycleScope(::onColumnNamesChanged)
661593 viewModel.cardSelectionEventFlow.launchCollectionInLifecycleScope(::onSelectedCardUpdated)
662594 }
663595
0 commit comments