diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt index 4c8f408f2..92a942413 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt @@ -54,6 +54,7 @@ class MusicStore private constructor() { private val callbacks = mutableListOf() fun addCallback(callback: Callback) { + response?.let(callback::onMusicUpdate) callbacks.add(callback) } diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt index 0b4ef4660..da42f04ef 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicViewModel.kt @@ -43,7 +43,7 @@ class MusicViewModel : ViewModel(), MusicStore.Callback { * navigated to and because SnackBars will have the best UX here. */ fun loadMusic(context: Context) { - if (musicStore.library != null || isBusy) { + if (_loaderResponse.value != null || isBusy) { logD("Loader is busy/already completed, not reloading") return } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt index 9c49d44c4..c14ce05ad 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt @@ -83,18 +83,6 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback, MusicStore init { musicStore.addCallback(this) playbackManager.addCallback(this) - - // If the PlaybackViewModel was cleared [Signified by PlaybackStateManager still being - // around & the fact that we are in the init function], then attempt to restore the - // ViewModel state. If it isn't, then wait for MainFragment to give the command to restore - // PlaybackStateManager. - if (playbackManager.isInitialized) { - onNewPlayback(playbackManager.index, playbackManager.queue, playbackManager.parent) - onPositionChanged(playbackManager.positionMs) - onPlayingChanged(playbackManager.isPlaying) - onShuffledChanged(playbackManager.isShuffled) - onRepeatChanged(playbackManager.repeatMode) - } } // --- PLAYING FUNCTIONS --- diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt index 303a75bd7..fd8e02ccb 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt @@ -96,6 +96,15 @@ class PlaybackStateManager private constructor() { * [removeCallback] when done. */ fun addCallback(callback: Callback) { + if (isInitialized) { + callback.onNewPlayback(index, queue, parent) + callback.onSeek(positionMs) + callback.onPositionChanged(positionMs) + callback.onRepeatChanged(repeatMode) + callback.onShuffledChanged(isShuffled) + callback.onPlayingChanged(isPlaying) + } + callbacks.add(callback) } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt index e46085d00..be2f0466a 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/MediaSessionComponent.kt @@ -55,13 +55,6 @@ class MediaSessionComponent(private val context: Context, private val player: Pl playbackManager.addCallback(this) settingsManager.addCallback(this) mediaSession.setCallback(this) - - if (playbackManager.isInitialized) { - updateMediaMetadata(playbackManager.song) - invalidateSessionState() - onRepeatChanged(playbackManager.repeatMode) - onShuffledChanged(playbackManager.isShuffled) - } } fun release() { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt index f10c8134d..383b42f56 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt @@ -139,13 +139,6 @@ class PlaybackService : // --- PLAYBACKSTATEMANAGER SETUP --- playbackManager.addCallback(this) - if (playbackManager.isInitialized) { - loadSong(playbackManager.song) - onSeek(playbackManager.positionMs) - onPlayingChanged(playbackManager.isPlaying) - onShuffledChanged(playbackManager.isShuffled) - onRepeatChanged(playbackManager.repeatMode) - } // --- SETTINGSMANAGER SETUP ---