detail: fix broken playing state updates

This commit is contained in:
Alexander Capehart 2024-10-23 10:05:23 -06:00
parent 82ddd3a24e
commit d7f3c58fd9
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
8 changed files with 15 additions and 3 deletions

View file

@ -143,6 +143,8 @@ class AlbumDetailFragment : DetailFragment<Album, Song>() {
binding.detailShuffleButton?.setOnClickListener {
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
}
updatePlayback(
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
}
private fun updateList(list: List<Item>) {

View file

@ -166,6 +166,8 @@ class ArtistDetailFragment : DetailFragment<Artist, Music>() {
binding.detailShuffleButton?.setOnClickListener {
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value))
}
updatePlayback(
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
}
private fun updateList(list: List<Item>) {

View file

@ -135,6 +135,8 @@ class GenreDetailFragment : DetailFragment<Genre, Music>() {
binding.detailShuffleButton?.setOnClickListener {
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value))
}
updatePlayback(
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
}
private fun updateList(list: List<Item>) {

View file

@ -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<Item>) {

View file

@ -158,8 +158,7 @@ private class HomeGeneratorImpl(
} else {
sorted
}
}
?: emptyList()
} ?: emptyList()
override fun genres() =
musicRepository.deviceLibrary?.let { listSettings.genreSort.genres(it.genres) }

View file

@ -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) }

View file

@ -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

View file

@ -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 ---