package com.cyb3rko.techniklogger.recycler import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.cyb3rko.techniklogger.R import com.cyb3rko.techniklogger.data.objects.Participation internal class ParticipationAdapter( val action: (participation: Participation) -> Unit ) : ListAdapter(ParticipationDiffCallback) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_member, parent, false) return ViewHolder(view) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { val entry = getItem(position) val title = "${entry.name}, ${entry.duration} h" holder.titleView.text = title holder.titleView.setOnClickListener { action(entry) } } class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { val titleView: TextView = view.findViewById(R.id.title) } object ParticipationDiffCallback : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: Participation, newItem: Participation): Boolean { return oldItem.objectId == newItem.objectId } override fun areContentsTheSame(oldItem: Participation, newItem: Participation): Boolean { return oldItem.duration == newItem.duration && oldItem.name == newItem.name && oldItem.time == newItem.time } } }