fix(android): NowPlaying go-to-album/artist navigates atomically (audit v3 Bug-5)

The kebab "Go to album/artist" did popBackStack() then navigate() —
two transactions, leaving a visible frame on whichever shell tab sat
under NowPlaying before the detail pushed. Replaced with a single
navigate(...) { popUpTo(NowPlaying) { inclusive = true } } so the
modal is removed and the detail pushed in one atomic transaction,
no intermediate frame.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 01:09:33 -04:00
parent 6a473661ba
commit 5ce9ca9e62
@@ -67,6 +67,7 @@ import com.fabledsword.minstrel.nav.ArtistDetail
import com.fabledsword.minstrel.nav.HERO_KEY_NOW_PLAYING_COVER import com.fabledsword.minstrel.nav.HERO_KEY_NOW_PLAYING_COVER
import com.fabledsword.minstrel.nav.LocalAnimatedContentScope import com.fabledsword.minstrel.nav.LocalAnimatedContentScope
import com.fabledsword.minstrel.nav.LocalSharedTransitionScope import com.fabledsword.minstrel.nav.LocalSharedTransitionScope
import com.fabledsword.minstrel.nav.NowPlaying
import com.fabledsword.minstrel.nav.Queue import com.fabledsword.minstrel.nav.Queue
import com.fabledsword.minstrel.shared.widgets.LikeButton import com.fabledsword.minstrel.shared.widgets.LikeButton
import com.fabledsword.minstrel.shared.widgets.trackactions.TrackActionsButton import com.fabledsword.minstrel.shared.widgets.trackactions.TrackActionsButton
@@ -293,13 +294,18 @@ private fun BottomActionsRow(
TrackActionsButton( TrackActionsButton(
track = track, track = track,
hideQueueActions = true, hideQueueActions = true,
// Single atomic transaction — navigate to the detail while
// popping NowPlaying off the back stack, so there's no
// intermediate frame on the shell tab underneath (Bug-5).
onNavigateToAlbum = { id -> onNavigateToAlbum = { id ->
navController.popBackStack() navController.navigate(AlbumDetail(id)) {
navController.navigate(AlbumDetail(id)) popUpTo(NowPlaying) { inclusive = true }
}
}, },
onNavigateToArtist = { id -> onNavigateToArtist = { id ->
navController.popBackStack() navController.navigate(ArtistDetail(id)) {
navController.navigate(ArtistDetail(id)) popUpTo(NowPlaying) { inclusive = true }
}
}, },
) )
} }