Skip to content

Instantly share code, notes, and snippets.

@Shayan-Sakhaei
Created April 19, 2020 15:14
Show Gist options
  • Save Shayan-Sakhaei/8f169cfc79f1256c66394b939d185f4c to your computer and use it in GitHub Desktop.
Save Shayan-Sakhaei/8f169cfc79f1256c66394b939d185f4c to your computer and use it in GitHub Desktop.
class PagesHomeAdapter @Inject constructor() :
ListAdapter<PageHome, PagesHomeAdapter.PageHomeItemHolder>(DiffCallback) {
var onItemClick: ((Int) -> Unit)? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PageHomeItemHolder {
val view =
LayoutInflater.from(parent.context).inflate(R.layout.page_home_list_item, parent, false)
return PageHomeItemHolder(view)
}
override fun onBindViewHolder(holder: PageHomeItemHolder, position: Int) {
holder.onBind(getItem(position))
}
inner class PageHomeItemHolder(itemView: View) : BaseViewHolder<PageHome>(itemView) {
private val banner: SimpleDraweeView = itemView.dv_banner
override fun onBind(obj: PageHome) {
banner.setImageURI(obj.image)
}
init {
itemView.setOnClickListener {
onItemClick?.invoke(adapterPosition)
}
}
}
}
object DiffCallback : DiffUtil.ItemCallback<PageHome>() {
override fun areItemsTheSame(oldItem: PageHome, newItem: PageHome): Boolean {
return oldItem.image == newItem.image
}
override fun areContentsTheSame(oldItem: PageHome, newItem: PageHome): Boolean {
return oldItem == newItem
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment