import android.view.LayoutInflater
|
import android.view.ViewGroup
|
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.RecyclerView
|
import com.example.firstapp.database.entity.Reminder
|
import com.example.firstapp.databinding.ItemReminderBinding
|
import com.sun.mail.imap.protocol.FetchResponse.getItem
|
|
class ReminderAdapter(private val onDelete: (Reminder) -> Unit) :
|
ListAdapter<Reminder, ReminderAdapter.ReminderViewHolder>(ReminderDiffCallback()) {
|
|
class ReminderViewHolder(private val binding: ItemReminderBinding) :
|
RecyclerView.ViewHolder(binding.root) {
|
|
fun bind(reminder: Reminder, onDelete: (Reminder) -> Unit) {
|
binding.textNickname.text = reminder.nickname
|
binding.textKeywords.text = reminder.keywords
|
binding.btnDelete.setOnClickListener { onDelete(reminder) }
|
}
|
}
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ReminderViewHolder {
|
return ReminderViewHolder(
|
ItemReminderBinding.inflate(
|
LayoutInflater.from(parent.context), parent, false
|
)
|
)
|
}
|
|
override fun onBindViewHolder(holder: ReminderViewHolder, position: Int) {
|
holder.bind(getItem(position), onDelete)
|
}
|
}
|
|
class ReminderDiffCallback : DiffUtil.ItemCallback<Reminder>() {
|
override fun areItemsTheSame(oldItem: Reminder, newItem: Reminder) = oldItem.id == newItem.id
|
override fun areContentsTheSame(oldItem: Reminder, newItem: Reminder) = oldItem == newItem
|
}
|