LibreTube/app/src/main/java/xyz/btcland/libretube/TrendingAdapter.kt

76 lines
2.9 KiB
Kotlin
Raw Normal View History

package xyz.btcland.libretube
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.RecyclerView
import com.squareup.picasso.Picasso
import java.math.BigDecimal
import java.math.RoundingMode
class TrendingAdapter(private val videoFeed: List<Video>): RecyclerView.Adapter<CustomViewHolder>() {
override fun getItemCount(): Int {
return videoFeed.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val cell = layoutInflater.inflate(R.layout.trending_row,parent,false)
return CustomViewHolder(cell)
}
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
val trending = videoFeed[position]
holder.v.findViewById<TextView>(R.id.textView_title).text = trending.title
holder.v.findViewById<TextView>(R.id.textView_channel).text = trending.uploaderName +""+ videoViews(trending.views)+""+trending.uploadedDate
val thumbnailImage = holder.v.findViewById<ImageView>(R.id.thumbnail)
val channelImage = holder.v.findViewById<ImageView>(R.id.channel_image)
channelImage.setOnClickListener{
println("channel clicked")
}
Picasso.get().load(trending.thumbnail).into(thumbnailImage)
Picasso.get().load(trending.uploaderAvatar).into(channelImage)
holder.v.setOnClickListener{
//val intent = Intent(holder.v.context, Player::class.java)
//intent.putExtra("videoId",trending.url.replace("/watch?v=",""))
//holder.v.context.startActivity(intent)
var bundle = Bundle()
bundle.putString("videoId",trending.url.replace("/watch?v=",""))
var frag = PlayerFragment()
frag.arguments = bundle
val activity = holder.v.context as AppCompatActivity
activity.supportFragmentManager.beginTransaction()
.add(R.id.container, frag)
.commitNow()
}
}
}
class CustomViewHolder(val v: View): RecyclerView.ViewHolder(v){
init {
}
}
fun videoViews(views: Int): String{
when {
views<1000 -> {
return views.toString()
}
views in 1000..999999 -> {
val decimal = BigDecimal(views/1000).setScale(0, RoundingMode.HALF_EVEN)
return decimal.toString()+"K"
}
views in 1000000..10000000 -> {
val decimal = BigDecimal(views/1000000).setScale(0, RoundingMode.HALF_EVEN)
return decimal.toString()+"M"
}
else -> {
val decimal = BigDecimal(views/1000000).setScale(0, RoundingMode.HALF_EVEN)
return decimal.toString()+"M"
}
}
}