Skip to content

Commit

Permalink
Merge pull request #6754 from Bnyro/master
Browse files Browse the repository at this point in the history
fix: overflowing downloads layout on some devices
  • Loading branch information
Bnyro authored Nov 18, 2024
2 parents 9a7a4dc + d23b64d commit 7151496
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 158 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -41,7 +41,7 @@ class DownloadsAdapter(
private val toggleDownload: (DownloadWithItems) -> Boolean
) : RecyclerView.Adapter<DownloadsViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DownloadsViewHolder {
val binding = DownloadedMediaRowBinding.inflate(
val binding = VideoRowBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
Expand All @@ -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)

Expand All @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
146 changes: 0 additions & 146 deletions app/src/main/res/layout/downloaded_media_row.xml

This file was deleted.

49 changes: 47 additions & 2 deletions app/src/main/res/layout/video_row.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,37 @@
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/downloadOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#BF000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone">

<ProgressBar
android:id="@+id/progressBar"
android:layout_width="52dp"
android:layout_height="52dp"
android:indeterminateOnly="false"
android:progressDrawable="@drawable/circular_progress"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ImageView
android:id="@+id/resumePauseBtn"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_download"
app:layout_constraintBottom_toBottomOf="@id/progressBar"
app:layout_constraintLeft_toLeftOf="@id/progressBar"
app:layout_constraintRight_toRightOf="@id/progressBar"
app:layout_constraintTop_toTopOf="@id/progressBar" />
</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.cardview.widget.CardView>

<TextView
Expand Down Expand Up @@ -108,7 +139,9 @@
android:id="@+id/channel_image_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="13.5dp">
app:cardCornerRadius="13.5dp"
android:layout_gravity="center"
android:layout_marginEnd="10dp">

<ImageView
android:id="@+id/channel_image"
Expand All @@ -122,10 +155,22 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="8dp"
android:ellipsize="end"
tools:text="Uploader name"
android:maxLines="1" />

<TextView
android:visibility="gone"
android:id="@+id/file_size"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
tools:text="55MB/2050MB"
tools:visibility="visible"
android:textAlignment="viewEnd" />

</LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

0 comments on commit 7151496

Please sign in to comment.