2019-06-11 15:56:27 +02:00
|
|
|
package com.keylesspalace.tusky.components.instancemute.adapter
|
|
|
|
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
import com.keylesspalace.tusky.components.instancemute.interfaces.InstanceActionListener
|
2021-03-07 19:24:01 +01:00
|
|
|
import com.keylesspalace.tusky.databinding.ItemMutedDomainBinding
|
|
|
|
import com.keylesspalace.tusky.util.BindingHolder
|
|
|
|
|
|
|
|
class DomainMutesAdapter(
|
|
|
|
private val actionListener: InstanceActionListener
|
|
|
|
): RecyclerView.Adapter<BindingHolder<ItemMutedDomainBinding>>() {
|
2019-06-11 15:56:27 +02:00
|
|
|
|
|
|
|
var instances: MutableList<String> = mutableListOf()
|
|
|
|
var bottomLoading: Boolean = false
|
2021-03-07 19:24:01 +01:00
|
|
|
|
|
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BindingHolder<ItemMutedDomainBinding> {
|
|
|
|
val binding = ItemMutedDomainBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
|
|
|
return BindingHolder(binding)
|
2019-06-11 15:56:27 +02:00
|
|
|
}
|
|
|
|
|
2021-03-07 19:24:01 +01:00
|
|
|
override fun onBindViewHolder(holder: BindingHolder<ItemMutedDomainBinding>, position: Int) {
|
|
|
|
val instance = instances[position]
|
|
|
|
|
|
|
|
holder.binding.mutedDomain.text = instance
|
|
|
|
holder.binding.mutedDomainUnmute.setOnClickListener {
|
2021-04-10 20:30:44 +02:00
|
|
|
actionListener.mute(false, instance, holder.bindingAdapterPosition)
|
2021-03-07 19:24:01 +01:00
|
|
|
}
|
2019-06-11 15:56:27 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun getItemCount(): Int {
|
|
|
|
var count = instances.size
|
|
|
|
if (bottomLoading)
|
|
|
|
++count
|
|
|
|
return count
|
|
|
|
}
|
|
|
|
|
|
|
|
fun addItems(newInstances: List<String>) {
|
|
|
|
val end = instances.size
|
|
|
|
instances.addAll(newInstances)
|
|
|
|
notifyItemRangeInserted(end, instances.size)
|
|
|
|
}
|
|
|
|
|
|
|
|
fun addItem(instance: String) {
|
|
|
|
instances.add(instance)
|
|
|
|
notifyItemInserted(instances.size)
|
|
|
|
}
|
|
|
|
|
2021-03-07 19:24:01 +01:00
|
|
|
fun removeItem(position: Int) {
|
2019-06-11 15:56:27 +02:00
|
|
|
if (position >= 0 && position < instances.size) {
|
|
|
|
instances.removeAt(position)
|
|
|
|
notifyItemRemoved(position)
|
|
|
|
}
|
|
|
|
}
|
2021-03-07 19:24:01 +01:00
|
|
|
}
|