mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 15:50:16 +02:00
Add version to state
This commit is contained in:
parent
1af906fe90
commit
84611c24ed
2 changed files with 14 additions and 4 deletions
|
|
@ -230,7 +230,10 @@ class MusicService
|
|||
private suspend fun updateQueueSize() {
|
||||
withContext(Dispatchers.Main) {
|
||||
_state.update {
|
||||
it.copy(queueSize = player.mediaItemCount)
|
||||
it.copy(
|
||||
queueVersion = it.queueVersion + 1,
|
||||
queueSize = player.mediaItemCount,
|
||||
)
|
||||
}
|
||||
}
|
||||
start()
|
||||
|
|
@ -278,6 +281,7 @@ class MusicService
|
|||
|
||||
@Stable
|
||||
data class MusicServiceState(
|
||||
val queueVersion: Long,
|
||||
val queueSize: Int,
|
||||
val currentIndex: Int,
|
||||
val currentItemId: UUID?,
|
||||
|
|
@ -286,7 +290,7 @@ data class MusicServiceState(
|
|||
val loadingState: LoadingState = LoadingState.Pending,
|
||||
) {
|
||||
companion object {
|
||||
val EMPTY = MusicServiceState(0, 0, null, false, null)
|
||||
val EMPTY = MusicServiceState(0L, 0, 0, null, false, null)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -357,9 +361,10 @@ private class MusicPlayerListener(
|
|||
@Composable
|
||||
fun rememberQueue(
|
||||
player: Player,
|
||||
queueVersion: Long,
|
||||
queueSize: Int,
|
||||
): List<AudioItem> =
|
||||
remember(queueSize) {
|
||||
remember(queueVersion, queueSize) {
|
||||
object : AbstractList<AudioItem>() {
|
||||
override val size: Int
|
||||
get() = player.mediaItemCount
|
||||
|
|
|
|||
|
|
@ -66,7 +66,12 @@ fun NowPlayingPage(
|
|||
val context = LocalContext.current
|
||||
val state by viewModel.state.collectAsState()
|
||||
val player = viewModel.player
|
||||
val queue = rememberQueue(player, state.musicServiceState.queueSize)
|
||||
val queue =
|
||||
rememberQueue(
|
||||
player,
|
||||
state.musicServiceState.queueVersion,
|
||||
state.musicServiceState.queueSize,
|
||||
)
|
||||
val current = queue.getOrNull(state.musicServiceState.currentIndex)
|
||||
|
||||
val controllerViewState = viewModel.controllerViewState
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue