Skip to content

Commit ea36031

Browse files
david-allisonBrayanDSO
authored andcommitted
chore: convert MultiColumnViewHolder to ViewBinding
Issue 11116
1 parent 3a5db43 commit ea36031

File tree

2 files changed

+13
-19
lines changed

2 files changed

+13
-19
lines changed

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

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@ import android.text.TextUtils
2525
import android.util.TypedValue
2626
import android.view.LayoutInflater
2727
import android.view.MotionEvent
28-
import android.view.View
2928
import android.view.ViewGroup
3029
import android.widget.CheckBox
31-
import android.widget.LinearLayout
3230
import android.widget.TextView
3331
import androidx.annotation.ColorInt
3432
import androidx.annotation.IdRes
@@ -42,9 +40,9 @@ import com.ichi2.anki.AnkiDroidApp.Companion.sharedPrefs
4240
import com.ichi2.anki.Flag
4341
import com.ichi2.anki.R
4442
import com.ichi2.anki.common.annotations.NeedsTest
43+
import com.ichi2.anki.databinding.CardItemBrowserBinding
4544
import com.ichi2.anki.utils.android.darkenColor
4645
import com.ichi2.anki.utils.android.lightenColorAbsolute
47-
import com.ichi2.anki.utils.ext.findViewById
4846
import com.ichi2.themes.Themes
4947
import com.ichi2.utils.removeChildren
5048
import 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

AnkiDroid/src/main/res/layout/card_item_browser.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
xmlns:tools="http://schemas.android.com/tools">
88

99
<CheckBox
10-
android:id="@+id/card_checkbox"
10+
android:id="@+id/row_selected_check_box"
1111
android:focusable="false"
1212
android:focusableInTouchMode="false"
1313
android:layout_width="wrap_content"

0 commit comments

Comments
 (0)