mirror of https://git.sr.ht/~oppen/ariane
35 lines
1.2 KiB
Kotlin
35 lines
1.2 KiB
Kotlin
package oppen.tva.ui.tabs
|
|
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import kotlinx.android.synthetic.main.grid_cell_tab.view.*
|
|
import oppen.tva.R
|
|
import oppen.tva.io.history.tabs.Tab
|
|
|
|
class TabsAdapter(
|
|
private val tabs: List<Tab>,
|
|
val onTabDelete: (index: Int) -> Unit,
|
|
val onTabChange: (index: Int) -> Unit): RecyclerView.Adapter<TabsAdapter.ViewHolder>() {
|
|
|
|
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
|
|
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
|
return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.grid_cell_tab, parent, false))
|
|
}
|
|
|
|
override fun getItemCount(): Int = tabs.size
|
|
|
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
|
val tab = tabs[position]
|
|
|
|
holder.itemView.tab_last_uri.text = "${tab.history.last()}"
|
|
holder.itemView.remove_tab.setOnClickListener {
|
|
onTabDelete(holder.adapterPosition)
|
|
}
|
|
holder.itemView.tab_cell.setOnClickListener {
|
|
onTabChange(holder.adapterPosition)
|
|
}
|
|
}
|
|
} |