package com.taf.attendance 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.taf.attendance.databinding.ItemLeaveRequestBinding import com.taf.attendance.model.LeaveRequest class LeaveRequestAdapter : ListAdapter(LeaveRequestDiffCallback()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LeaveRequestViewHolder { val binding = ItemLeaveRequestBinding.inflate( LayoutInflater.from(parent.context), parent, false ) return LeaveRequestViewHolder(binding) } override fun onBindViewHolder(holder: LeaveRequestViewHolder, position: Int) { holder.bind(getItem(position)) } class LeaveRequestViewHolder(private val binding: ItemLeaveRequestBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(leaveRequest: LeaveRequest) { binding.leaveRequest = leaveRequest // Set status color based on status val statusColor = when (leaveRequest.status) { "Approved" -> android.graphics.Color.GREEN "Rejected" -> android.graphics.Color.RED "Pending" -> android.graphics.Color.YELLOW else -> android.graphics.Color.GRAY } binding.textViewStatus.setBackgroundColor(statusColor) binding.executePendingBindings() } } } class LeaveRequestDiffCallback : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: LeaveRequest, newItem: LeaveRequest): Boolean { return oldItem.id == newItem.id } override fun areContentsTheSame(oldItem: LeaveRequest, newItem: LeaveRequest): Boolean { return oldItem == newItem } }