diff --git a/android/app/src/main/java/com/fabledsword/minstrel/player/ui/NowPlayingScreen.kt b/android/app/src/main/java/com/fabledsword/minstrel/player/ui/NowPlayingScreen.kt index 8c3bb295..3a770dfc 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/player/ui/NowPlayingScreen.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/player/ui/NowPlayingScreen.kt @@ -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.LocalAnimatedContentScope import com.fabledsword.minstrel.nav.LocalSharedTransitionScope +import com.fabledsword.minstrel.nav.NowPlaying import com.fabledsword.minstrel.nav.Queue import com.fabledsword.minstrel.shared.widgets.LikeButton import com.fabledsword.minstrel.shared.widgets.trackactions.TrackActionsButton @@ -293,13 +294,18 @@ private fun BottomActionsRow( TrackActionsButton( track = track, 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 -> - navController.popBackStack() - navController.navigate(AlbumDetail(id)) + navController.navigate(AlbumDetail(id)) { + popUpTo(NowPlaying) { inclusive = true } + } }, onNavigateToArtist = { id -> - navController.popBackStack() - navController.navigate(ArtistDetail(id)) + navController.navigate(ArtistDetail(id)) { + popUpTo(NowPlaying) { inclusive = true } + } }, ) }