feat(web+android): search play queues only the tapped song (radio fills the rest)

Playing a song from search results queued the whole result list. Now it plays only
the clicked song; Radio mode, if on, fills the rest — closer to Spotify. Both
platforms already trigger a radio top-up on the first track (web playQueue →
fillRadioQueue; Android onMediaItemTransition → checkRadioRefill), so no extra wiring
is needed. Album/playlist play still queues the full list. Bump SW cache to ns-v44.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Opus 4.8 committed 2026-07-25 22:00:58 +02:00
1 parent 14fd5119f2
commit 1e242796fe
5 files changed
+9 -7

No files matched your search

@@ -343,7 +343,8 @@ private fun LibrarySearchContent(
coverUrl = coverUrl(song.coverArt),
isPlaying = playerState.currentSong?.id == song.id,
starred = song.starred != null,
onPlay = { onSongPlay(songs, idx) },
// Play only the tapped song; Radio mode (if on) fills the rest.
onPlay = { onSongPlay(listOf(song), 0) },
onMore = onShowContextMenu?.let { cb -> { cb(song) } },
)
}
@@ -57,12 +57,12 @@ fun SearchScreen(
if (r.song.isNotEmpty()) {
item { ResultHeader("Songs") }
items(r.song, key = { it.id }) { song ->
val idx = r.song.indexOf(song)
SongRow(
song = song,
coverUrl = coverUrl(song.coverArt),
isPlaying = playerState.currentSong?.id == song.id,
onPlay = { onSongPlay(r.song, idx) },
// Play only the tapped song; Radio mode (if on) fills the rest.
onPlay = { onSongPlay(listOf(song), 0) },
)
}
}