From 4d98bbc4c26427dc538dde08108ef135de5f9e16 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 2 Oct 2022 11:47:25 +0200 Subject: [PATCH] improve alternative trending layout --- .../libretube/ui/adapters/ChannelAdapter.kt | 39 ++++++++++++------- .../libretube/ui/fragments/HomeFragment.kt | 3 +- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt index 21f713533..c5e74b2fb 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.fragment.app.FragmentManager import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.api.obj.StreamItem import com.github.libretube.databinding.VideoRowBinding import com.github.libretube.extensions.formatShort import com.github.libretube.extensions.setWatchProgressLength @@ -16,8 +17,9 @@ import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper class ChannelAdapter( - private val videoFeed: MutableList, - private val childFragmentManager: FragmentManager + private val videoFeed: MutableList, + private val childFragmentManager: FragmentManager, + private val showChannelInfo: Boolean = false ) : RecyclerView.Adapter() { @@ -25,7 +27,7 @@ class ChannelAdapter( return videoFeed.size } - fun updateItems(newItems: List) { + fun updateItems(newItems: List) { val feedSize = videoFeed.size videoFeed.addAll(newItems) notifyItemRangeInserted(feedSize, newItems.size) @@ -39,25 +41,36 @@ class ChannelAdapter( @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: ChannelViewHolder, position: Int) { - val trending = videoFeed[position] + val video = videoFeed[position] holder.binding.apply { - videoTitle.text = trending.title + videoTitle.text = video.title + videoInfo.text = - trending.views.formatShort() + " • " + - DateUtils.getRelativeTimeSpanString(trending.uploaded!!) + video.views.formatShort() + " • " + + DateUtils.getRelativeTimeSpanString(video.uploaded!!) + thumbnailDuration.text = - DateUtils.formatElapsedTime(trending.duration!!) - ImageHelper.loadImage(trending.thumbnail, thumbnail) - root.setOnClickListener { - NavigationHelper.navigateVideo(root.context, trending.url) + DateUtils.formatElapsedTime(video.duration!!) + + ImageHelper.loadImage(video.thumbnail, thumbnail) + + if (showChannelInfo) { + ImageHelper.loadImage(video.uploaderAvatar, channelImage) + channelName.text = video.uploaderName } - val videoId = trending.url!!.toID() + + root.setOnClickListener { + NavigationHelper.navigateVideo(root.context, video.url) + } + + val videoId = video.url!!.toID() root.setOnLongClickListener { VideoOptionsBottomSheet(videoId) .show(childFragmentManager, VideoOptionsBottomSheet::class.java.name) true } - watchProgress.setWatchProgressLength(videoId, trending.duration!!) + + watchProgress.setWatchProgressLength(videoId, video.duration!!) } } } diff --git a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt index f657fb860..1f00e2388 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt @@ -115,7 +115,8 @@ class HomeFragment : BaseFragment() { binding.recview.adapter = ChannelAdapter( response.toMutableList(), - childFragmentManager + childFragmentManager, + true ) } else { binding.recview.layoutManager = GridLayoutManager(