Skip to content

Instantly share code, notes, and snippets.

@VictorAlbertos
Last active November 17, 2020 16:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VictorAlbertos/e1401c6acebe6f91faaddf79b3e8ff8e to your computer and use it in GitHub Desktop.
Save VictorAlbertos/e1401c6acebe6f91faaddf79b3e8ff8e to your computer and use it in GitHub Desktop.
class SampleAdapter(private val sampleViewModel: SampleViewModel) :
PagingDataAdapter<SampleEntity, SampleAdapter.ViewHolder>(Comparator) {
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val sampleEntity = getItem(position) ?: return
holder.itemView.findViewById<TextView>(R.id.tvItem).text = sampleEntity.name
holder.itemView.findViewById<View>(R.id.ivRemove).setOnClickListener {
sampleViewModel.onViewEvent(SampleViewEvents.Remove(sampleEntity))
}
holder.itemView.findViewById<View>(R.id.ivEdit).setOnClickListener {
sampleViewModel.onViewEvent(SampleViewEvents.Edit(sampleEntity))
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context)
.inflate(R.layout.page_item, parent, false)
)
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view)
object Comparator : DiffUtil.ItemCallback<SampleEntity>() {
override fun areItemsTheSame(oldItem: SampleEntity, newItem: SampleEntity): Boolean {
return oldItem.id == newItem.id
}
override fun areContentsTheSame(oldItem: SampleEntity, newItem: SampleEntity): Boolean {
return oldItem == newItem
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment