Skip to content

Commit 462a2ac

Browse files
authored
Converted the DepictionAdapter to use ViewBinding (commons-app#4689)
1 parent eb8882a commit 462a2ac

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,45 @@
11
package fr.free.nrw.commons.explore.depictions
22

3-
import android.view.View
3+
import android.view.LayoutInflater
44
import android.view.ViewGroup
55
import androidx.paging.PagedListAdapter
66
import androidx.recyclerview.widget.DiffUtil
77
import androidx.recyclerview.widget.RecyclerView
88
import fr.free.nrw.commons.R
9-
import fr.free.nrw.commons.explore.paging.inflate
9+
import fr.free.nrw.commons.databinding.ItemDepictionsBinding
1010
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem
11-
import kotlinx.android.extensions.LayoutContainer
12-
import kotlinx.android.synthetic.main.item_depictions.*
1311

12+
class DepictionAdapter(private val onDepictionClicked: (DepictedItem) -> Unit) :
13+
PagedListAdapter<DepictedItem, DepictedItemViewHolder>(DepictionDiffUtilCallback) {
1414

15-
class DepictionAdapter(val onDepictionClicked: (DepictedItem) -> Unit) :
16-
PagedListAdapter<DepictedItem, DepictedItemViewHolder>(
17-
object : DiffUtil.ItemCallback<DepictedItem>() {
18-
override fun areItemsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
19-
oldItem.id == newItem.id
20-
21-
override fun areContentsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
22-
oldItem == newItem
23-
}
24-
) {
25-
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DepictedItemViewHolder {
26-
return DepictedItemViewHolder(parent.inflate(R.layout.item_depictions))
27-
}
15+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = DepictedItemViewHolder(
16+
ItemDepictionsBinding.inflate(LayoutInflater.from(parent.context), parent, false)
17+
)
2818

2919
override fun onBindViewHolder(holder: DepictedItemViewHolder, position: Int) {
3020
holder.bind(getItem(position)!!, onDepictionClicked)
3121
}
3222
}
3323

34-
class DepictedItemViewHolder(override val containerView: View) :
35-
RecyclerView.ViewHolder(containerView), LayoutContainer {
36-
fun bind(item: DepictedItem, onDepictionClicked: (DepictedItem) -> Unit) {
37-
containerView.setOnClickListener { onDepictionClicked(item) }
38-
depicts_label.text = item.name
24+
class DepictedItemViewHolder(
25+
private val binding: ItemDepictionsBinding
26+
) : RecyclerView.ViewHolder(binding.root) {
27+
fun bind(item: DepictedItem, onDepictionClicked: (DepictedItem) -> Unit) = with(binding) {
28+
root.setOnClickListener { onDepictionClicked(item) }
29+
depictsLabel.text = item.name
3930
description.text = item.description
4031
if (item.imageUrl?.isNotBlank() == true) {
41-
depicts_image.setImageURI(item.imageUrl)
32+
depictsImage.setImageURI(item.imageUrl)
4233
} else {
43-
depicts_image.setActualImageResource(R.drawable.ic_wikidata_logo_24dp)
34+
depictsImage.setActualImageResource(R.drawable.ic_wikidata_logo_24dp)
4435
}
4536
}
4637
}
38+
39+
private object DepictionDiffUtilCallback : DiffUtil.ItemCallback<DepictedItem>() {
40+
override fun areItemsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
41+
oldItem.id == newItem.id
42+
43+
override fun areContentsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
44+
oldItem == newItem
45+
}

0 commit comments

Comments
 (0)