detail: fix broken playing state updates
This commit is contained in:
parent
82ddd3a24e
commit
d7f3c58fd9
8 changed files with 15 additions and 3 deletions
|
@ -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>) {
|
||||
|
|
|
@ -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>) {
|
||||
|
|
|
@ -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>) {
|
||||
|
|
|
@ -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>) {
|
||||
|
|
|
@ -158,8 +158,7 @@ private class HomeGeneratorImpl(
|
|||
} else {
|
||||
sorted
|
||||
}
|
||||
}
|
||||
?: emptyList()
|
||||
} ?: emptyList()
|
||||
|
||||
override fun genres() =
|
||||
musicRepository.deviceLibrary?.let { listSettings.genreSort.genres(it.genres) }
|
||||
|
|
|
@ -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) }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ---
|
||||
|
|
Loading…
Reference in a new issue