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 {
|
binding.detailShuffleButton?.setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
|
||||||
}
|
}
|
||||||
|
updatePlayback(
|
||||||
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateList(list: List<Item>) {
|
private fun updateList(list: List<Item>) {
|
||||||
|
|
|
@ -166,6 +166,8 @@ class ArtistDetailFragment : DetailFragment<Artist, Music>() {
|
||||||
binding.detailShuffleButton?.setOnClickListener {
|
binding.detailShuffleButton?.setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentArtist.value))
|
||||||
}
|
}
|
||||||
|
updatePlayback(
|
||||||
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateList(list: List<Item>) {
|
private fun updateList(list: List<Item>) {
|
||||||
|
|
|
@ -135,6 +135,8 @@ class GenreDetailFragment : DetailFragment<Genre, Music>() {
|
||||||
binding.detailShuffleButton?.setOnClickListener {
|
binding.detailShuffleButton?.setOnClickListener {
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentGenre.value))
|
||||||
}
|
}
|
||||||
|
updatePlayback(
|
||||||
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateList(list: List<Item>) {
|
private fun updateList(list: List<Item>) {
|
||||||
|
|
|
@ -237,6 +237,8 @@ class PlaylistDetailFragment :
|
||||||
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentPlaylist.value))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
updatePlayback(
|
||||||
|
playbackModel.song.value, playbackModel.parent.value, playbackModel.isPlaying.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateList(list: List<Item>) {
|
private fun updateList(list: List<Item>) {
|
||||||
|
|
|
@ -158,8 +158,7 @@ private class HomeGeneratorImpl(
|
||||||
} else {
|
} else {
|
||||||
sorted
|
sorted
|
||||||
}
|
}
|
||||||
}
|
} ?: emptyList()
|
||||||
?: emptyList()
|
|
||||||
|
|
||||||
override fun genres() =
|
override fun genres() =
|
||||||
musicRepository.deviceLibrary?.let { listSettings.genreSort.genres(it.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.ForegroundListener
|
||||||
import org.oxycblt.auxio.ForegroundServiceNotification
|
import org.oxycblt.auxio.ForegroundServiceNotification
|
||||||
import org.oxycblt.auxio.music.IndexingState
|
import org.oxycblt.auxio.music.IndexingState
|
||||||
|
import org.oxycblt.auxio.music.MusicParent
|
||||||
import org.oxycblt.auxio.music.MusicRepository
|
import org.oxycblt.auxio.music.MusicRepository
|
||||||
import org.oxycblt.auxio.music.MusicSettings
|
import org.oxycblt.auxio.music.MusicSettings
|
||||||
import org.oxycblt.auxio.playback.state.PlaybackStateManager
|
import org.oxycblt.auxio.playback.state.PlaybackStateManager
|
||||||
|
@ -155,6 +156,8 @@ private constructor(
|
||||||
playbackManager.toSavedState()?.let { savedState ->
|
playbackManager.toSavedState()?.let { savedState ->
|
||||||
playbackManager.applySavedState(
|
playbackManager.applySavedState(
|
||||||
savedState.copy(
|
savedState.copy(
|
||||||
|
parent =
|
||||||
|
savedState.parent?.let { musicRepository.find(it.uid) as? MusicParent? },
|
||||||
heap =
|
heap =
|
||||||
savedState.heap.map { song ->
|
savedState.heap.map { song ->
|
||||||
song?.let { deviceLibrary.findSong(it.uid) }
|
song?.let { deviceLibrary.findSong(it.uid) }
|
||||||
|
|
|
@ -371,6 +371,7 @@ class ExoPlaybackStateHolder(
|
||||||
) {
|
) {
|
||||||
var sendNewPlaybackEvent = false
|
var sendNewPlaybackEvent = false
|
||||||
var shouldSeek = false
|
var shouldSeek = false
|
||||||
|
L.d("invalidating parent ${this.parent?.songs} ${parent?.songs}")
|
||||||
if (this.parent != parent) {
|
if (this.parent != parent) {
|
||||||
this.parent = parent
|
this.parent = parent
|
||||||
sendNewPlaybackEvent = true
|
sendNewPlaybackEvent = true
|
||||||
|
|
|
@ -157,7 +157,8 @@ class WidgetProvider : AppWidgetProvider() {
|
||||||
fun reset(context: Context, uiSettings: UISettings) {
|
fun reset(context: Context, uiSettings: UISettings) {
|
||||||
L.d("Using default layout")
|
L.d("Using default layout")
|
||||||
val layout = newDefaultLayout(context, uiSettings)
|
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 ---
|
// --- INTERNAL METHODS ---
|
||||||
|
|
Loading…
Reference in a new issue