mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 14:20:30 +05:30
Merge pull request #2921 from faisalcodes/master
Fixes: Showing progress for unwatched videos.
This commit is contained in:
commit
2d4c616111
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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<ConstraintLayout.LayoutParams> {
|
||||
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<ConstraintLayout.LayoutParams> {
|
||||
matchConstraintPercentWidth = progress / duration.toFloat()
|
||||
}
|
||||
visibility = View.VISIBLE
|
||||
|
||||
return progress / duration.toFloat() > 0.9
|
||||
}
|
||||
|
@ -20,16 +20,15 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/thumbnail"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<LinearLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:orientation="vertical">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/thumbnail"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
@ -39,7 +38,9 @@
|
||||
android:layout_marginBottom="5dp"
|
||||
app:cardBackgroundColor="@color/duration_background_color"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="0dp">
|
||||
app:cardElevation="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/watch_progress"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/thumbnail_duration"
|
||||
@ -55,10 +56,11 @@
|
||||
<View
|
||||
android:id="@+id/watch_progress"
|
||||
style="@style/WatchProgress"
|
||||
android:layout_height="5dp" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_height="5dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
||||
|
@ -25,17 +25,15 @@
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/thumbnail"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:srcCompat="@tools:sample/backgrounds/scenic" />
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:orientation="vertical">
|
||||
<ImageView
|
||||
android:id="@+id/thumbnail"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:srcCompat="@tools:sample/backgrounds/scenic" />
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
@ -45,7 +43,9 @@
|
||||
android:layout_marginBottom="5dp"
|
||||
app:cardBackgroundColor="@color/duration_background_color"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="0dp">
|
||||
app:cardElevation="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/watch_progress"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/thumbnail_duration"
|
||||
@ -61,9 +61,10 @@
|
||||
|
||||
<View
|
||||
android:id="@+id/watch_progress"
|
||||
style="@style/WatchProgress" />
|
||||
|
||||
</LinearLayout>
|
||||
style="@style/WatchProgress"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
|
@ -137,9 +137,8 @@
|
||||
|
||||
<style name="WatchProgress">
|
||||
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_width">0dp</item>
|
||||
<item name="android:layout_height">4dp</item>
|
||||
<item name="android:layout_gravity">bottom</item>
|
||||
<item name="android:background">?attr/colorPrimaryDark</item>
|
||||
<item name="android:visibility">gone</item>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user