app/src/main/java/ch/epfl/sdp/drone3d/ui/mission/PictureViewAdapter.kt
/*
* Copyright (C) 2021 Drone3D-Team
* The license can be found in LICENSE at root of the repository
*/
package ch.epfl.sdp.drone3d.ui.mission
import android.graphics.Bitmap
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import ch.epfl.sdp.drone3d.R
/**
* Adapter for the Recycler view creating holders for the missions
*/
class PictureViewAdapter : ListAdapter<Bitmap, PictureViewAdapter.PictureViewHolder>(BitmapDiff) {
class PictureViewHolder(view: View) : RecyclerView.ViewHolder(view) {
private val imageView: ImageView = view.findViewById(R.id.mission_picture_item)
// Bind holder with a mission -> set the name
fun bind(bitmap: Bitmap) {
imageView.setImageBitmap(bitmap)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PictureViewHolder {
// Create a new view, which defines the UI of the list item
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.mission_picture_item, parent, false)
return PictureViewHolder(view)
}
override fun onBindViewHolder(holder: PictureViewHolder, position: Int) {
holder.bind(getItem(position))
}
object BitmapDiff : DiffUtil.ItemCallback<Bitmap>() {
override fun areItemsTheSame(oldItem: Bitmap, newItem: Bitmap): Boolean {
return oldItem == newItem
}
override fun areContentsTheSame(oldItem: Bitmap, newItem: Bitmap): Boolean {
return oldItem.sameAs(newItem)
}
}
}