ariane/app/src/main/java/oppen/gem/ui/bookmarks/BookmarksAdapter.kt

44 lines
1.5 KiB
Kotlin
Raw Normal View History

2020-09-10 21:20:24 +00:00
package oppen.gem.ui.bookmarks
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
2020-09-11 19:49:30 +00:00
import kotlinx.android.synthetic.main.bookmark.view.*
2020-09-10 21:20:24 +00:00
import oppen.gem.R
import oppen.gem.io.bookmarks.Bookmark
2020-09-11 19:49:30 +00:00
class BookmarksAdapter(val onBookmark: (bookmark: Bookmark) -> Unit, val onOverflow: (view: View, bookmark: Bookmark) -> Unit): RecyclerView.Adapter<BookmarksAdapter.ViewHolder>() {
2020-09-10 21:20:24 +00:00
val bookmarks = mutableListOf<Bookmark>()
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
fun update(bookmarks: List<Bookmark>){
this.bookmarks.addAll(bookmarks)
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.bookmark, parent, false)
)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val bookmark = bookmarks[position]
2020-09-11 19:49:30 +00:00
holder.itemView.bookmark_name.text = bookmark.label
holder.itemView.bookmark_uri.text = bookmark.uri.toString()
holder.itemView.bookmark_layout.setOnClickListener {
onBookmark(bookmarks[holder.adapterPosition])
}
holder.itemView.bookmark_overflow.setOnClickListener {view ->
onOverflow(view, bookmarks[holder.adapterPosition])
}
2020-09-10 21:20:24 +00:00
}
override fun getItemCount(): Int = bookmarks.size
}