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 5fba1f429..e3302049f 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 @@ -84,9 +84,7 @@ class PlaylistAdapter( if (!streamItem.uploaderUrl.isNullOrBlank()) { channelContainer.setOnClickListener { - streamItem.uploaderUrl?.toID()?.let { - NavigationHelper.navigateChannel(root.context, it) - } + NavigationHelper.navigateChannel(root.context, streamItem.uploaderUrl.toID()) } } @@ -96,7 +94,7 @@ class PlaylistAdapter( removeFromPlaylist(root.context, position) } } - watchProgress.setWatchProgressLength(videoId, streamItem.duration!!) + watchProgress.setWatchProgressLength(videoId, streamItem.duration) } } diff --git a/app/src/main/java/com/github/libretube/ui/extensions/SetWatchProgressLength.kt b/app/src/main/java/com/github/libretube/ui/extensions/SetWatchProgressLength.kt index d11f979ed..05bbede85 100644 --- a/app/src/main/java/com/github/libretube/ui/extensions/SetWatchProgressLength.kt +++ b/app/src/main/java/com/github/libretube/ui/extensions/SetWatchProgressLength.kt @@ -1,8 +1,7 @@ package com.github.libretube.ui.extensions import android.view.View -import android.view.ViewTreeObserver -import android.widget.LinearLayout +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.updateLayoutParams import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.extensions.awaitQuery @@ -13,8 +12,11 @@ import com.github.libretube.extensions.awaitQuery * @param duration The duration of the video in seconds * @return Whether the video is already watched more than 90% */ -fun View?.setWatchProgressLength(videoId: String, duration: Long): Boolean { - val view = this!! +fun View.setWatchProgressLength(videoId: String, duration: Long): Boolean { + updateLayoutParams { + matchConstraintPercentWidth = 0f + } + visibility = View.GONE val progress = try { awaitQuery { @@ -26,22 +28,13 @@ fun View?.setWatchProgressLength(videoId: String, duration: Long): Boolean { ?.toFloat()?.div(1000) if (progress == null || duration == 0L) { - view.visibility = View.GONE return false } - view.viewTreeObserver - .addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener { - override fun onGlobalLayout() { - this@setWatchProgressLength.viewTreeObserver.removeOnGlobalLayoutListener(this) - val fullWidth = (parent as LinearLayout).width - val newWidth = fullWidth * (progress / duration.toFloat()) - view.updateLayoutParams { - width = newWidth.toInt() - } - view.visibility = View.VISIBLE - } - }) + updateLayoutParams { + matchConstraintPercentWidth = progress / duration.toFloat() + } + visibility = View.VISIBLE return progress / duration.toFloat() > 0.9 } diff --git a/app/src/main/res/layout/trending_row.xml b/app/src/main/res/layout/trending_row.xml index 7ebb58466..f965f2a3d 100644 --- a/app/src/main/res/layout/trending_row.xml +++ b/app/src/main/res/layout/trending_row.xml @@ -20,16 +20,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> - - + android:layout_height="match_parent"> + + + app:cardElevation="0dp" + app:layout_constraintBottom_toTopOf="@id/watch_progress" + app:layout_constraintEnd_toEndOf="parent"> - - + android:layout_height="5dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + diff --git a/app/src/main/res/layout/video_row.xml b/app/src/main/res/layout/video_row.xml index 165098b27..02a33a4f7 100644 --- a/app/src/main/res/layout/video_row.xml +++ b/app/src/main/res/layout/video_row.xml @@ -25,17 +25,15 @@ app:layout_constraintVertical_bias="0.0" app:strokeWidth="0dp"> - + android:layout_height="match_parent"> - + + app:cardElevation="0dp" + app:layout_constraintBottom_toTopOf="@id/watch_progress" + app:layout_constraintEnd_toEndOf="parent"> - - + style="@style/WatchProgress" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml index 043068972..5518e107e 100644 --- a/app/src/main/res/values/style.xml +++ b/app/src/main/res/values/style.xml @@ -137,9 +137,8 @@