AquaStream/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt

76 lines
2.6 KiB
Kotlin
Raw Normal View History

2021-05-18 13:43:32 +00:00
package com.lagradost.cloudstream3.ui.result
import android.app.Activity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.APIHolder.getApiFromName
2021-05-20 15:22:28 +00:00
import com.lagradost.cloudstream3.utils.ExtractorLink
2021-05-18 13:43:32 +00:00
import kotlinx.android.synthetic.main.result_episode.view.*
class EpisodeAdapter(
2021-05-20 15:22:28 +00:00
private var activity: Activity,
var cardList: ArrayList<ResultEpisode>,
val resView: RecyclerView,
val clickCallback: (ResultEpisode) -> Unit
2021-05-18 13:43:32 +00:00
) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return CardViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.result_episode, parent, false),
activity,
2021-05-20 15:22:28 +00:00
resView,
clickCallback
2021-05-18 13:43:32 +00:00
)
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder) {
is CardViewHolder -> {
holder.bind(cardList[position])
}
}
}
override fun getItemCount(): Int {
return cardList.size
}
class CardViewHolder
2021-05-20 15:22:28 +00:00
constructor(itemView: View, _activity: Activity, resView: RecyclerView, clickCallback: (ResultEpisode) -> Unit) : RecyclerView.ViewHolder(itemView) {
2021-05-18 13:43:32 +00:00
val activity = _activity
val episode_view_procentage: View = itemView.episode_view_procentage
val episode_view_procentage_off: View = itemView.episode_view_procentage_off
val episode_text: TextView = itemView.episode_text
val episode_extra: ImageView = itemView.episode_extra
val episode_play: ImageView = itemView.episode_play
2021-05-20 15:22:28 +00:00
val clickCallback = clickCallback
2021-05-18 13:43:32 +00:00
fun bind(card: ResultEpisode) {
episode_text.text = card.name ?: "Episode ${card.episode}"
fun setWidth(v: View, procentage: Float) {
val param = LinearLayout.LayoutParams(
v.layoutParams.width,
v.layoutParams.height,
procentage
)
v.layoutParams = param
}
setWidth(episode_view_procentage, card.watchProgress)
setWidth(episode_view_procentage_off, 1 - card.watchProgress)
episode_play.setOnClickListener {
2021-05-20 15:22:28 +00:00
clickCallback.invoke(card)
2021-05-18 13:43:32 +00:00
}
}
}
}