fix(android): drop unused navController from ShellScaffold
android / Build + lint + test (push) Successful in 3m35s
android / Build signed release APK (push) Has been skipped

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.
This commit is contained in:
2026-06-01 08:17:24 -04:00
parent 487400fab6
commit eb4537c013
2 changed files with 18 additions and 20 deletions
@@ -70,56 +70,56 @@ private fun NavGraphBuilder.inShellTopLevel(
) {
composable<Home> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
HomeScreen(navController = navController)
}
}
}
composable<Library> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
LibraryScreen(navController = navController)
}
}
}
composable<Search> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
SearchScreen(navController = navController)
}
}
}
composable<Discover> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
DiscoverScreen(navController = navController)
}
}
}
composable<Playlists> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
PlaylistsListScreen(navController = navController)
}
}
}
composable<Settings> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
SettingsScreen(navController = navController)
}
}
}
composable<Admin> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
AdminLandingScreen(navController = navController)
}
}
}
composable<Requests> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
RequestsScreen(navController = navController)
}
}
@@ -150,42 +150,42 @@ private fun NavGraphBuilder.inShellDetail(
) {
composable<AlbumDetail> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
AlbumDetailScreen(navController = navController)
}
}
}
composable<ArtistDetail> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
ArtistDetailScreen(navController = navController)
}
}
}
composable<PlaylistDetail> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
PlaylistDetailScreen(navController = navController)
}
}
}
composable<AdminRequests> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
AdminRequestsScreen(navController = navController)
}
}
}
composable<AdminQuarantine> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
AdminQuarantineScreen(navController = navController)
}
}
}
composable<AdminUsers> {
WithAnimatedScope {
ShellScaffold(navController = navController, onExpandPlayer = expandPlayer) {
ShellScaffold(onExpandPlayer = expandPlayer) {
AdminUsersScreen(navController = navController)
}
}
@@ -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(),