From 9133b2a273575aa6661f5ab986208862d50a0aaf Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Wed, 8 Feb 2023 01:05:21 +0100 Subject: [PATCH] fix: playback progress is not saved when leaving player --- .../viewmodels/PlayerActivityViewModel.kt | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/player/video/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt b/player/video/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt index f74ab963..27dc1dbd 100644 --- a/player/video/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt +++ b/player/video/src/main/java/dev/jdtech/jellyfin/viewmodels/PlayerActivityViewModel.kt @@ -27,6 +27,7 @@ import dev.jdtech.jellyfin.utils.postDownloadPlaybackProgress import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import timber.log.Timber @@ -166,16 +167,17 @@ constructor( @OptIn(DelicateCoroutinesApi::class) private fun releasePlayer() { - player.let { player -> - GlobalScope.launch { - try { - jellyfinRepository.postPlaybackStop( - UUID.fromString(player.currentMediaItem?.mediaId), - player.currentPosition.times(10000) - ) - } catch (e: Exception) { - Timber.e(e) - } + val mediaId = player.currentMediaItem?.mediaId + val position = player.currentPosition.times(10000) + GlobalScope.launch { + delay(1000L) + try { + jellyfinRepository.postPlaybackStop( + UUID.fromString(mediaId), + position + ) + } catch (e: Exception) { + Timber.e(e) } }