From d23b64dcec7a9f382ee585a19c089878c5f01dee Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 18 Nov 2024 16:02:27 +0100 Subject: [PATCH] fix: overflowing downloads layout on some devices --- .../libretube/ui/adapters/DownloadsAdapter.kt | 16 +- .../libretube/ui/adapters/PlaylistAdapter.kt | 2 +- .../ui/adapters/WatchHistoryAdapter.kt | 2 +- .../ui/viewholders/DownloadsViewHolder.kt | 4 +- .../main/res/layout/downloaded_media_row.xml | 146 ------------------ app/src/main/res/layout/video_row.xml | 49 +++++- 6 files changed, 61 insertions(+), 158 deletions(-) delete mode 100644 app/src/main/res/layout/downloaded_media_row.xml diff --git a/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt index 35bfca46f..56528b635 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt @@ -12,7 +12,7 @@ import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.github.libretube.R import com.github.libretube.constants.IntentData -import com.github.libretube.databinding.DownloadedMediaRowBinding +import com.github.libretube.databinding.VideoRowBinding import com.github.libretube.db.DatabaseHolder import com.github.libretube.db.obj.DownloadWithItems import com.github.libretube.extensions.formatAsFileSize @@ -41,7 +41,7 @@ class DownloadsAdapter( private val toggleDownload: (DownloadWithItems) -> Boolean ) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DownloadsViewHolder { - val binding = DownloadedMediaRowBinding.inflate( + val binding = VideoRowBinding.inflate( LayoutInflater.from(parent.context), parent, false @@ -53,9 +53,13 @@ class DownloadsAdapter( override fun onBindViewHolder(holder: DownloadsViewHolder, position: Int) { val download = downloads[position].download val items = downloads[position].downloadItems + holder.binding.apply { - title.text = download.title - uploaderName.text = download.uploader + fileSize.isVisible = true + + channelImageContainer.isGone = true + videoTitle.text = download.title + channelName.text = download.uploader videoInfo.text = download.uploadDate?.let { TextUtils.localizeDate(it) } watchProgress.setWatchProgressLength(download.videoId, download.duration ?: 0) @@ -81,14 +85,14 @@ class DownloadsAdapter( } else { downloadOverlay.isGone = true fileSize.text = totalSizeInfo - durationContainer.isVisible = true + thumbnailDurationCard.isVisible = true download.duration?.let { thumbnailDuration.text = DateUtils.formatElapsedTime(it) } } download.thumbnailPath?.let { path -> - ImageHelper.loadImage(path.toString(), thumbnailImage) + ImageHelper.loadImage(path.toString(), thumbnail) } progressBar.setOnClickListener { diff --git a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt index 96c96ede5..1a4d92a44 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt @@ -81,7 +81,7 @@ class PlaylistAdapter( holder.binding.apply { videoTitle.text = streamItem.title videoInfo.text = streamItem.uploaderName - channelImage.isGone = true + channelImageContainer.isGone = true thumbnailDuration.setFormattedDuration(streamItem.duration ?: -1, streamItem.isShort, streamItem.uploaded) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt index 5eec061cd..051bd1799 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt @@ -68,7 +68,7 @@ class WatchHistoryAdapter( if (video.uploaderAvatar != null) { ImageHelper.loadImage(video.uploaderAvatar, channelImage, true) } else { - channelImage.isGone = true + channelImageContainer.isGone = true } channelImage.setOnClickListener { diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt index 3cc59109d..0f56669d3 100644 --- a/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt +++ b/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt @@ -1,8 +1,8 @@ package com.github.libretube.ui.viewholders import androidx.recyclerview.widget.RecyclerView -import com.github.libretube.databinding.DownloadedMediaRowBinding +import com.github.libretube.databinding.VideoRowBinding class DownloadsViewHolder( - val binding: DownloadedMediaRowBinding + val binding: VideoRowBinding ) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/res/layout/downloaded_media_row.xml b/app/src/main/res/layout/downloaded_media_row.xml deleted file mode 100644 index 29d3f1b99..000000000 --- a/app/src/main/res/layout/downloaded_media_row.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/video_row.xml b/app/src/main/res/layout/video_row.xml index 824e71912..c54c04de5 100644 --- a/app/src/main/res/layout/video_row.xml +++ b/app/src/main/res/layout/video_row.xml @@ -66,6 +66,37 @@ app:layout_constraintStart_toStartOf="parent" /> + + + + + + + + app:cardCornerRadius="13.5dp" + android:layout_gravity="center" + android:layout_marginEnd="10dp"> + + \ No newline at end of file