diff --git a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt index dee23bc38..dd66d7a68 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt @@ -143,6 +143,8 @@ class AlbumDetailFragment : DetailFragment() { binding.detailShuffleButton?.setOnClickListener { playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value)) } + updatePlayback( + playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value) } private fun updateList(list: List) { diff --git a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt index 59afd9649..3b1352069 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/ArtistDetailFragment.kt @@ -166,6 +166,8 @@ class ArtistDetailFragment : DetailFragment() { binding.detailShuffleButton?.setOnClickListener { playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value)) } + updatePlayback( + playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value) } private fun updateList(list: List) { diff --git a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt index 4c53debb6..b12610f6e 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/GenreDetailFragment.kt @@ -135,6 +135,8 @@ class GenreDetailFragment : DetailFragment() { binding.detailShuffleButton?.setOnClickListener { playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value)) } + updatePlayback( + playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value) } private fun updateList(list: List) { diff --git a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt index b34327745..f396909d7 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/PlaylistDetailFragment.kt @@ -237,6 +237,8 @@ class PlaylistDetailFragment : playbackModel.shuffle(unlikelyToBeNull(detailModel.currentPlaylist.value)) } } + updatePlayback( + playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value) } private fun updateList(list: List) { diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt index ae8478178..19f24c27d 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeGenerator.kt @@ -158,8 +158,7 @@ private class HomeGeneratorImpl( } else { sorted } - } - ?: emptyList() + } ?: emptyList() override fun genres() = musicRepository.deviceLibrary?.let { listSettings.genreSort.genres(it.genres) } diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/Indexer.kt b/app/src/main/java/org/oxycblt/auxio/music/service/Indexer.kt index 495cbe8ce..aa1e12184 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/Indexer.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/Indexer.kt @@ -29,6 +29,7 @@ import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.ForegroundListener import org.oxycblt.auxio.ForegroundServiceNotification import org.oxycblt.auxio.music.IndexingState +import org.oxycblt.auxio.music.MusicParent import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.music.MusicSettings import org.oxycblt.auxio.playback.state.PlaybackStateManager @@ -155,6 +156,8 @@ private constructor( playbackManager.toSavedState()?.let { savedState -> playbackManager.applySavedState( savedState.copy( + parent = + savedState.parent?.let { musicRepository.find(it.uid) as? MusicParent? }, heap = savedState.heap.map { song -> song?.let { deviceLibrary.findSong(it.uid) } 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 ab88cda74..724da06ac 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 @@ -371,6 +371,7 @@ class ExoPlaybackStateHolder( ) { var sendNewPlaybackEvent = false var shouldSeek = false + L.d("invalidating parent ${this.parent?.songs} ${parent?.songs}") if (this.parent != parent) { this.parent = parent sendNewPlaybackEvent = true diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt index 4c2550d66..9dc85edc8 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt @@ -157,7 +157,8 @@ class WidgetProvider : AppWidgetProvider() { fun reset(context: Context, uiSettings: UISettings) { L.d("Using default layout") val layout = newDefaultLayout(context, uiSettings) - AppWidgetManager.getInstance(context).updateAppWidget(ComponentName(context, this::class.java), layout) + AppWidgetManager.getInstance(context) + .updateAppWidget(ComponentName(context, this::class.java), layout) } // --- INTERNAL METHODS ---