From f28f2dd9f7fc41a18027445f62abd528aa6926f0 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Mon, 13 Jan 2025 19:23:32 -0700 Subject: [PATCH] playback: fix dropped saved state on empty lib Since ExoPlaybackStateHolder wasn't handling the new "empty library" case. --- .../oxycblt/auxio/playback/persist/PersistenceRepository.kt | 2 +- .../oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt b/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt index 5d800af34..5dc48852d 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/persist/PersistenceRepository.kt @@ -50,7 +50,7 @@ constructor( ) : PersistenceRepository { override suspend fun readState(): PlaybackStateManager.SavedState? { - val library = musicRepository.library ?: return null + val library = musicRepository.library?.takeIf { !it.empty() } ?: return null val playbackState: PlaybackState val heapItems: List val mappingItems: List diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt index c76239d7f..b2d89d5c6 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/ExoPlaybackStateHolder.kt @@ -147,7 +147,7 @@ class ExoPlaybackStateHolder( override fun handleDeferred(action: DeferredPlayback): Boolean { val library = - musicRepository.library + musicRepository.library?.takeIf { !it.empty() } // No library, cannot do anything. ?: return false @@ -524,7 +524,7 @@ class ExoPlaybackStateHolder( // --- MUSICREPOSITORY METHODS --- override fun onMusicChanges(changes: MusicRepository.Changes) { - if (changes.deviceLibrary && musicRepository.library != null) { + if (changes.deviceLibrary && musicRepository.library?.takeIf { !it.empty() } != null) { // We now have a library, see if we have anything we need to do. L.d("Library obtained, requesting action") playbackManager.requestAction(this)