From eb4537c013b2e10f5543d574c3c44d2b9f8ff482 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 1 Jun 2026 08:17:24 -0400 Subject: [PATCH] fix(android): drop unused navController from ShellScaffold CI on 5c2011e6 caught it: removing the MiniPlayer kebab also removed the only consumer of ShellScaffold's navController parameter, which detekt's UnusedParameter rule flagged. Per YAGNI, dropping the param entirely instead of @Suppress'ing a dead carry; if a future banner or shell-level affordance needs nav, plumb it back in at that point. Touches the public signature so all 10+ call sites in MinstrelNavGraph also lose the `navController = navController` argument. --- .../minstrel/nav/MinstrelNavGraph.kt | 28 +++++++++---------- .../minstrel/shared/widgets/ShellScaffold.kt | 10 +++---- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/nav/MinstrelNavGraph.kt b/android/app/src/main/java/com/fabledsword/minstrel/nav/MinstrelNavGraph.kt index 3fe330d4..987844b6 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/nav/MinstrelNavGraph.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/nav/MinstrelNavGraph.kt @@ -70,56 +70,56 @@ private fun NavGraphBuilder.inShellTopLevel( ) { composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { HomeScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { LibraryScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { SearchScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { DiscoverScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { PlaylistsListScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { SettingsScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { AdminLandingScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { RequestsScreen(navController = navController) } } @@ -150,42 +150,42 @@ private fun NavGraphBuilder.inShellDetail( ) { composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { AlbumDetailScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { ArtistDetailScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { PlaylistDetailScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { AdminRequestsScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { AdminQuarantineScreen(navController = navController) } } } composable { WithAnimatedScope { - ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) { + ShellScaffold(onExpandPlayer = expandPlayer) { AdminUsersScreen(navController = navController) } } diff --git a/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt b/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt index f5058017..aa711e78 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/shared/widgets/ShellScaffold.kt @@ -12,7 +12,6 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.hilt.navigation.compose.hiltViewModel -import androidx.navigation.NavHostController import com.fabledsword.minstrel.connectivity.ui.ConnectionErrorBanner import com.fabledsword.minstrel.player.ui.MiniPlayer import com.fabledsword.minstrel.player.ui.PlaybackErrorViewModel @@ -38,14 +37,13 @@ import com.fabledsword.minstrel.shared.widgets.trackactions.TrackActionsViewMode * back-only AppBar. * * [onExpandPlayer] is the navigate-to-NowPlaying callback passed - * through to MiniPlayer's tap-handler. [navController] is kept on - * the signature for future shell-level navigation needs (banner taps - * etc.); MiniPlayer itself no longer carries a kebab so doesn't need - * nav callbacks any more. + * through to MiniPlayer's tap-handler. No NavHostController parameter + * because nothing inside the shell currently navigates - if a banner + * (UpdateBanner / VersionTooOldBanner / ConnectionErrorBanner) ever + * grows tap-to-navigate, plumb a NavHostController in at that point. */ @Composable fun ShellScaffold( - navController: NavHostController, onExpandPlayer: () -> Unit, modifier: Modifier = Modifier, trackActionsViewModel: TrackActionsViewModel = hiltViewModel(),