Ya casiii

This commit is contained in:
JaredAyala
2026-05-23 00:05:10 -06:00
parent ab11b001a4
commit ac0a312d58
20 changed files with 960 additions and 56 deletions

View File

@@ -0,0 +1,48 @@
package com.example.basurapp.adapters
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.basurapp.databinding.ItemAddressBinding
import com.example.basurapp.models.Address
class AddressesAdapter(
private val onDelete: (Address) -> Unit
) : ListAdapter<Address, AddressesAdapter.AddressViewHolder>(DIFF) {
inner class AddressViewHolder(val binding: ItemAddressBinding) :
RecyclerView.ViewHolder(binding.root) {
fun bind(address: Address) {
binding.tvStreet.text = "${address.street} ${address.number}"
binding.tvNeighborhood.text = address.neighborhood
if (address.reference.isNotEmpty()) {
binding.tvReference.text = address.reference
binding.tvReference.visibility = android.view.View.VISIBLE
} else {
binding.tvReference.visibility = android.view.View.GONE
}
binding.btnDelete.setOnClickListener { onDelete(address) }
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AddressViewHolder {
val binding = ItemAddressBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return AddressViewHolder(binding)
}
override fun onBindViewHolder(holder: AddressViewHolder, position: Int) {
holder.bind(getItem(position))
}
companion object {
val DIFF = object : DiffUtil.ItemCallback<Address>() {
override fun areItemsTheSame(oldItem: Address, newItem: Address) = oldItem.id == newItem.id
override fun areContentsTheSame(oldItem: Address, newItem: Address) = oldItem == newItem
}
}
}