implement lazy loading for LibraryFragment & code cleanup

This commit is contained in:
2021-12-27 21:14:35 +01:00
parent 7dc41da13c
commit 63ce910ec5
16 changed files with 249 additions and 672 deletions

View File

@ -35,10 +35,9 @@ data class ThirdPartyComponent(
* it is uses in the ItemMediaAdapter (RecyclerView)
*/
data class ItemMedia(
val id: Int, // aod path id
val id: String,
val title: String,
val posterUrl: String,
val idStr: String = "" // crunchyroll id
)
// TODO replace playlist: List<AoDEpisode> with a map?

View File

@ -12,7 +12,7 @@ import java.util.*
class MediaItemAdapter(private val initMedia: List<ItemMedia>) : RecyclerView.Adapter<MediaItemAdapter.MediaViewHolder>(), Filterable {
var onItemClick: ((String, Int) -> Unit)? = null
var onItemClick: ((id: String, position: Int) -> Unit)? = null
private val filter = MediaFilter()
private var filteredMedia = initMedia.map { it.copy() }
@ -39,10 +39,14 @@ class MediaItemAdapter(private val initMedia: List<ItemMedia>) : RecyclerView.Ad
filteredMedia = mediaList
}
inner class MediaViewHolder(val binding: ItemMediaBinding) : RecyclerView.ViewHolder(binding.root) {
inner class MediaViewHolder(val binding: ItemMediaBinding) :
RecyclerView.ViewHolder(binding.root) {
init {
binding.root.setOnClickListener {
onItemClick?.invoke(filteredMedia[adapterPosition].idStr, adapterPosition)
onItemClick?.invoke(
filteredMedia[bindingAdapterPosition].id,
bindingAdapterPosition
)
}
}
}