From 7844cc77925554132aaf3efab827fde5eacae9df Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 19 Sep 2022 22:07:15 +0200 Subject: [PATCH] fix the watch progress --- .../com/github/libretube/db/DatabaseHelper.kt | 6 +++--- .../extensions/SetWatchProgressLength.kt | 2 +- .../com/github/libretube/util/PlayingQueue.kt | 18 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/github/libretube/db/DatabaseHelper.kt b/app/src/main/java/com/github/libretube/db/DatabaseHelper.kt index 919177c4b..e4dcb9780 100644 --- a/app/src/main/java/com/github/libretube/db/DatabaseHelper.kt +++ b/app/src/main/java/com/github/libretube/db/DatabaseHelper.kt @@ -56,9 +56,9 @@ object DatabaseHelper { fun removeWatchPosition(videoId: String) { Thread { - Database.watchPositionDao().delete( - Database.watchPositionDao().findById(videoId) - ) + Database.watchPositionDao().findById(videoId)?.let { + Database.watchPositionDao().delete(it) + } }.start() } diff --git a/app/src/main/java/com/github/libretube/extensions/SetWatchProgressLength.kt b/app/src/main/java/com/github/libretube/extensions/SetWatchProgressLength.kt index 0bd7d4f54..6eb979353 100644 --- a/app/src/main/java/com/github/libretube/extensions/SetWatchProgressLength.kt +++ b/app/src/main/java/com/github/libretube/extensions/SetWatchProgressLength.kt @@ -14,7 +14,7 @@ fun View?.setWatchProgressLength(videoId: String, duration: Long) { Thread { try { - progress = Database.watchPositionDao().findById(videoId).position + progress = Database.watchPositionDao().findById(videoId)?.position } catch (e: Exception) { progress = null } diff --git a/app/src/main/java/com/github/libretube/util/PlayingQueue.kt b/app/src/main/java/com/github/libretube/util/PlayingQueue.kt index ecc5d6e9d..7889d8f9f 100644 --- a/app/src/main/java/com/github/libretube/util/PlayingQueue.kt +++ b/app/src/main/java/com/github/libretube/util/PlayingQueue.kt @@ -1,8 +1,5 @@ package com.github.libretube.util -import android.util.Log -import com.github.libretube.extensions.TAG - object PlayingQueue { private val queue = mutableListOf() private var currentVideoId: String? = null @@ -12,20 +9,23 @@ object PlayingQueue { } fun add(videoId: String) { + if (currentVideoId == videoId) return + if (queue.contains(videoId)) queue.remove(videoId) queue.add(videoId) } - fun playNext(nextVideoId: String) { + fun playNext(videoId: String) { + if (currentVideoId == videoId) return + if (queue.contains(videoId)) queue.remove(videoId) queue.add( - queue.indexOf(currentVideoId), - nextVideoId + queue.indexOf(currentVideoId) + 1, + videoId ) } fun getNext(): String? { val currentIndex = queue.indexOf(currentVideoId) - Log.e(TAG(), queue.toString()) - return if (currentIndex > queue.size) { + return if (currentIndex >= queue.size) { null } else { queue[currentIndex + 1] @@ -40,7 +40,7 @@ object PlayingQueue { fun hasPrev(): Boolean { val currentIndex = queue.indexOf(currentVideoId) - return currentIndex >= 1 + return queue.size > currentIndex + 1 } fun contains(videoId: String): Boolean {