mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 16:00:31 +05:30
refactor: match the size of continue watching and related streams
This commit is contained in:
parent
e465c313ac
commit
c807d1d54d
@ -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 {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user