@@ -25,10 +25,8 @@ import android.text.TextUtils
2525import android.util.TypedValue
2626import android.view.LayoutInflater
2727import android.view.MotionEvent
28- import android.view.View
2928import android.view.ViewGroup
3029import android.widget.CheckBox
31- import android.widget.LinearLayout
3230import android.widget.TextView
3331import androidx.annotation.ColorInt
3432import androidx.annotation.IdRes
@@ -42,9 +40,9 @@ import com.ichi2.anki.AnkiDroidApp.Companion.sharedPrefs
4240import com.ichi2.anki.Flag
4341import com.ichi2.anki.R
4442import com.ichi2.anki.common.annotations.NeedsTest
43+ import com.ichi2.anki.databinding.CardItemBrowserBinding
4544import com.ichi2.anki.utils.android.darkenColor
4645import com.ichi2.anki.utils.android.lightenColorAbsolute
47- import com.ichi2.anki.utils.ext.findViewById
4846import com.ichi2.themes.Themes
4947import com.ichi2.utils.removeChildren
5048import net.ankiweb.rsdroid.BackendException
@@ -76,11 +74,9 @@ class BrowserMultiColumnAdapter(
7674 private var originalTextSize = - 1.0f
7775
7876 inner class MultiColumnViewHolder (
79- holder : View ,
80- ) : RecyclerView.ViewHolder(holder ) {
77+ private val binding : CardItemBrowserBinding ,
78+ ) : RecyclerView.ViewHolder(binding.root ) {
8179 var id: CardOrNoteId ? = null
82- private val mainView = findViewById<LinearLayout >(R .id.card_item_browser)
83- private val checkBoxView = findViewById<CheckBox >(R .id.card_checkbox)
8480
8581 val columnViews = mutableListOf<TextView >()
8682
@@ -89,16 +85,16 @@ class BrowserMultiColumnAdapter(
8985 if (field == value) return
9086 field = value
9187 // remove the past set of columns
92- mainView .removeChildren { it !is CheckBox }
88+ binding.root .removeChildren { it !is CheckBox }
9389 columnViews.clear()
9490
9591 val layoutInflater = LayoutInflater .from(context)
9692
9793 // inflates and returns the inflated view
9894 fun inflate (
9995 @IdRes id : Int ,
100- ) = layoutInflater.inflate(id, mainView , false ).apply {
101- mainView .addView(this )
96+ ) = layoutInflater.inflate(id, binding.root , false ).apply {
97+ binding.root .addView(this )
10298 }
10399
104100 // recreate the columns and the dividers
@@ -133,7 +129,7 @@ class BrowserMultiColumnAdapter(
133129 }
134130 return @setOnTouchListener false
135131 }
136- checkBoxView .setOnClickListener {
132+ binding.rowSelectedCheckBox .setOnClickListener {
137133 id?.let { id ->
138134 Timber .d(" Tapped on checkbox: %s" , id)
139135 onTap(id)
@@ -153,11 +149,11 @@ class BrowserMultiColumnAdapter(
153149 } ? : false
154150
155151 fun setInMultiSelect (inMultiSelect : Boolean ) {
156- checkBoxView .isVisible = inMultiSelect
152+ binding.rowSelectedCheckBox .isVisible = inMultiSelect
157153 }
158154
159155 fun setIsSelected (value : RowIsSelected ) {
160- checkBoxView .isChecked = value
156+ binding.rowSelectedCheckBox .isChecked = value
161157 }
162158
163159 @NeedsTest(" 17731 - maybe check all activities load in dark mode, at least check this code" )
@@ -244,11 +240,9 @@ class BrowserMultiColumnAdapter(
244240 parent : ViewGroup ,
245241 viewType : Int ,
246242 ): MultiColumnViewHolder {
247- val view =
248- LayoutInflater
249- .from(parent.context)
250- .inflate(R .layout.card_item_browser, parent, false )
251- return MultiColumnViewHolder (view)
243+ val layoutInflater = LayoutInflater .from(context)
244+ val binding = CardItemBrowserBinding .inflate(layoutInflater, parent, false )
245+ return MultiColumnViewHolder (binding)
252246 }
253247
254248 override fun getItemCount (): Int = rowCollection.size
0 commit comments