mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Converted the DepictionAdapter to use ViewBinding (#4689)
This commit is contained in:
parent
eb8882ab48
commit
462a2ac007
1 changed files with 23 additions and 24 deletions
|
|
@ -1,46 +1,45 @@
|
||||||
package fr.free.nrw.commons.explore.depictions
|
package fr.free.nrw.commons.explore.depictions
|
||||||
|
|
||||||
import android.view.View
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.paging.PagedListAdapter
|
import androidx.paging.PagedListAdapter
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import fr.free.nrw.commons.R
|
import fr.free.nrw.commons.R
|
||||||
import fr.free.nrw.commons.explore.paging.inflate
|
import fr.free.nrw.commons.databinding.ItemDepictionsBinding
|
||||||
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem
|
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem
|
||||||
import kotlinx.android.extensions.LayoutContainer
|
|
||||||
import kotlinx.android.synthetic.main.item_depictions.*
|
|
||||||
|
|
||||||
|
class DepictionAdapter(private val onDepictionClicked: (DepictedItem) -> Unit) :
|
||||||
|
PagedListAdapter<DepictedItem, DepictedItemViewHolder>(DepictionDiffUtilCallback) {
|
||||||
|
|
||||||
class DepictionAdapter(val onDepictionClicked: (DepictedItem) -> Unit) :
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = DepictedItemViewHolder(
|
||||||
PagedListAdapter<DepictedItem, DepictedItemViewHolder>(
|
ItemDepictionsBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||||
object : DiffUtil.ItemCallback<DepictedItem>() {
|
)
|
||||||
override fun areItemsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
|
|
||||||
oldItem.id == newItem.id
|
|
||||||
|
|
||||||
override fun areContentsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
|
|
||||||
oldItem == newItem
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DepictedItemViewHolder {
|
|
||||||
return DepictedItemViewHolder(parent.inflate(R.layout.item_depictions))
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: DepictedItemViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: DepictedItemViewHolder, position: Int) {
|
||||||
holder.bind(getItem(position)!!, onDepictionClicked)
|
holder.bind(getItem(position)!!, onDepictionClicked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DepictedItemViewHolder(override val containerView: View) :
|
class DepictedItemViewHolder(
|
||||||
RecyclerView.ViewHolder(containerView), LayoutContainer {
|
private val binding: ItemDepictionsBinding
|
||||||
fun bind(item: DepictedItem, onDepictionClicked: (DepictedItem) -> Unit) {
|
) : RecyclerView.ViewHolder(binding.root) {
|
||||||
containerView.setOnClickListener { onDepictionClicked(item) }
|
fun bind(item: DepictedItem, onDepictionClicked: (DepictedItem) -> Unit) = with(binding) {
|
||||||
depicts_label.text = item.name
|
root.setOnClickListener { onDepictionClicked(item) }
|
||||||
|
depictsLabel.text = item.name
|
||||||
description.text = item.description
|
description.text = item.description
|
||||||
if (item.imageUrl?.isNotBlank() == true) {
|
if (item.imageUrl?.isNotBlank() == true) {
|
||||||
depicts_image.setImageURI(item.imageUrl)
|
depictsImage.setImageURI(item.imageUrl)
|
||||||
} else {
|
} else {
|
||||||
depicts_image.setActualImageResource(R.drawable.ic_wikidata_logo_24dp)
|
depictsImage.setActualImageResource(R.drawable.ic_wikidata_logo_24dp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private object DepictionDiffUtilCallback : DiffUtil.ItemCallback<DepictedItem>() {
|
||||||
|
override fun areItemsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
|
||||||
|
oldItem.id == newItem.id
|
||||||
|
|
||||||
|
override fun areContentsTheSame(oldItem: DepictedItem, newItem: DepictedItem) =
|
||||||
|
oldItem == newItem
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue