refactor: match the size of continue watching and related streams

This commit is contained in:
Bnyro 2023-12-06 14:21:04 +01:00
parent e465c313ac
commit c807d1d54d
4 changed files with 20 additions and 24 deletions

View File

@ -35,7 +35,7 @@ import com.github.libretube.util.TextUtils
class VideosAdapter(
private val streamItems: MutableList<StreamItem>,
private val showAllAtOnce: Boolean = true,
private val forceMode: ForceMode = ForceMode.NONE
private val forceMode: LayoutMode = LayoutMode.RESPECT_PREF
) : RecyclerView.Adapter<VideosViewHolder>() {
private var visibleCount = minOf(10, streamItems.size)
@ -82,14 +82,13 @@ class VideosAdapter(
)
forceMode in listOf(
ForceMode.TRENDING,
ForceMode.RELATED,
ForceMode.HOME
LayoutMode.TRENDING_ROW,
LayoutMode.RELATED_COLUMN
) -> VideosViewHolder(
TrendingRowBinding.inflate(layoutInflater, parent, false)
)
forceMode == ForceMode.CHANNEL -> VideosViewHolder(
forceMode == LayoutMode.CHANNEL_ROW -> VideosViewHolder(
VideoRowBinding.inflate(layoutInflater, parent, false)
)
@ -126,11 +125,9 @@ class VideosAdapter(
// Trending layout
holder.trendingRowBinding?.apply {
// set a fixed width for better visuals
root.updateLayoutParams {
when (forceMode) {
ForceMode.RELATED -> width = 210f.dpToPx()
ForceMode.HOME -> width = 250f.dpToPx()
else -> {}
if (forceMode == LayoutMode.RELATED_COLUMN) {
root.updateLayoutParams {
width = 250f.dpToPx()
}
}
@ -183,7 +180,7 @@ class VideosAdapter(
ImageHelper.loadImage(video.thumbnail, thumbnail)
if (forceMode != ForceMode.CHANNEL) {
if (forceMode != LayoutMode.CHANNEL_ROW) {
ImageHelper.loadImage(video.uploaderAvatar, channelImage)
channelName.text = video.uploaderName
@ -214,13 +211,12 @@ class VideosAdapter(
}
companion object {
enum class ForceMode {
NONE,
TRENDING,
ROW,
CHANNEL,
RELATED,
HOME
enum class LayoutMode {
RESPECT_PREF,
TRENDING_ROW,
VIDEO_ROW,
CHANNEL_ROW,
RELATED_COLUMN
}
fun getLayout(context: Context): LayoutManager {

View File

@ -224,7 +224,7 @@ class ChannelFragment : Fragment() {
// recyclerview of the videos by the channel
channelAdapter = VideosAdapter(
response.relatedStreams.toMutableList(),
forceMode = VideosAdapter.Companion.ForceMode.CHANNEL
forceMode = VideosAdapter.Companion.LayoutMode.CHANNEL_ROW
)
binding.channelRecView.adapter = channelAdapter

View File

@ -127,7 +127,7 @@ class HomeFragment : Fragment() {
binding.trendingRV.layoutManager = GridLayoutManager(context, 2)
binding.trendingRV.adapter = VideosAdapter(
trending.toMutableList(),
forceMode = VideosAdapter.Companion.ForceMode.TRENDING
forceMode = VideosAdapter.Companion.LayoutMode.TRENDING_ROW
)
}
@ -165,7 +165,7 @@ class HomeFragment : Fragment() {
)
binding.featuredRV.adapter = VideosAdapter(
filteredFeed.take(20).toMutableList(),
forceMode = VideosAdapter.Companion.ForceMode.HOME
forceMode = VideosAdapter.Companion.LayoutMode.RELATED_COLUMN
)
}
@ -233,7 +233,7 @@ class HomeFragment : Fragment() {
)
binding.watchingRV.adapter = VideosAdapter(
unwatchedVideos.toMutableList(),
forceMode = VideosAdapter.Companion.ForceMode.HOME
forceMode = VideosAdapter.Companion.LayoutMode.RELATED_COLUMN
)
}

View File

@ -1034,9 +1034,9 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions {
binding.relatedRecView.adapter = VideosAdapter(
streams.relatedStreams.filter { !it.title.isNullOrBlank() }.toMutableList(),
forceMode = if (relatedLayoutManager.orientation == LinearLayoutManager.HORIZONTAL) {
VideosAdapter.Companion.ForceMode.RELATED
VideosAdapter.Companion.LayoutMode.RELATED_COLUMN
} else {
VideosAdapter.Companion.ForceMode.TRENDING
VideosAdapter.Companion.LayoutMode.TRENDING_ROW
}
)
}