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 71543ffb9..20704325a 100644 --- a/app/src/main/java/com/github/libretube/db/DatabaseHelper.kt +++ b/app/src/main/java/com/github/libretube/db/DatabaseHelper.kt @@ -68,9 +68,6 @@ object DatabaseHelper { getWatchPosition(videoId) } - fun isVideoWatchedBlocking(videoId: String, duration: Long) = - runBlocking { isVideoWatched(videoId, duration) } - suspend fun isVideoWatched(videoId: String, duration: Long): Boolean = withContext(Dispatchers.IO) { val position = getWatchPosition(videoId) ?: return@withContext false diff --git a/app/src/main/java/com/github/libretube/services/AbstractPlayerService.kt b/app/src/main/java/com/github/libretube/services/AbstractPlayerService.kt index 7b3c5655e..9e9bb03c9 100644 --- a/app/src/main/java/com/github/libretube/services/AbstractPlayerService.kt +++ b/app/src/main/java/com/github/libretube/services/AbstractPlayerService.kt @@ -94,8 +94,13 @@ abstract class AbstractPlayerService : MediaLibraryService(), MediaLibrarySessio override fun onPlaybackStateChanged(playbackState: Int) { super.onPlaybackStateChanged(playbackState) - if (playbackState == Player.STATE_READY) { - isTransitioning = false + when (playbackState) { + Player.STATE_ENDED -> { + exoPlayer?.let { PlayerHelper.saveWatchPosition(it, videoId) } + } + Player.STATE_READY -> { + isTransitioning = false + } } } }