Skip to content

Instantly share code, notes, and snippets.

@aggarwalpulkit596
Last active January 29, 2020 18:53
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 aggarwalpulkit596/062439178ef62602bb266e8d59b8cb6b to your computer and use it in GitHub Desktop.
Save aggarwalpulkit596/062439178ef62602bb266e8d59b8cb6b to your computer and use it in GitHub Desktop.
package com.puldroid.recyclerviewselection
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.selection.SelectionTracker
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.item_note.view.*
/**
* @author aggarwalpulkit596
*/
class NotesAdapter : ListAdapter<NoteModel, NotesAdapter.ItemViewHolder>(DiffCallback()) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
return ItemViewHolder(
LayoutInflater.from(parent.context)
.inflate(R.layout.item_note, parent, false)
)
}
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
holder.bind(getItem(position))
}
class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(item: NoteModel) = with(itemView) {
noteTitleTv.text = item.contentTitle
noteDescriptionTv.text = item.text
noteTimeTv.text = item.createdAt
}
}
class DiffCallback : DiffUtil.ItemCallback<NoteModel>() {
override fun areItemsTheSame(oldItem: NoteModel, newItem: NoteModel): Boolean {
return oldItem.nttUid == newItem.nttUid
}
override fun areContentsTheSame(oldItem: NoteModel, newItem: NoteModel): Boolean {
return oldItem == newItem
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment