From 483804fc9e9d437af19abb3feb71741047682374 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 6 Jun 2026 22:48:45 -0400 Subject: [PATCH] fix(android): extract ArtistSuccessBody to satisfy detekt LongMethod --- .../minstrel/library/ui/ArtistDetailScreen.kt | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/library/ui/ArtistDetailScreen.kt b/android/app/src/main/java/com/fabledsword/minstrel/library/ui/ArtistDetailScreen.kt index 4f73633c..48c0a02a 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/library/ui/ArtistDetailScreen.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/library/ui/ArtistDetailScreen.kt @@ -111,30 +111,35 @@ fun ArtistDetailScreen( title = "Couldn't load artist", body = s.message, ) - is ArtistDetailUiState.Success -> { - val artistLiked by viewModel.artistLiked - .collectAsStateWithLifecycle() - val playerState by playerViewModel.uiState - .collectAsStateWithLifecycle() - ArtistBody( - state = s, - artistLiked = artistLiked, - playingTrackId = playerState.currentTrack?.id, - onPlay = viewModel::playArtist, - onToggleLike = viewModel::toggleLikeArtist, - onAlbumClick = { id -> navController.navigate(AlbumDetail(id)) }, - onTopTrackClick = viewModel::playTopTracks, - onSimilarArtistClick = { id -> - navController.navigate(ArtistDetail(id)) - }, - ) - } + is ArtistDetailUiState.Success -> + ArtistSuccessBody(s, viewModel, playerViewModel, navController) } } } } } +@Composable +private fun ArtistSuccessBody( + state: ArtistDetailUiState.Success, + viewModel: ArtistDetailViewModel, + playerViewModel: com.fabledsword.minstrel.player.ui.PlayerViewModel, + navController: NavHostController, +) { + val artistLiked by viewModel.artistLiked.collectAsStateWithLifecycle() + val playerState by playerViewModel.uiState.collectAsStateWithLifecycle() + ArtistBody( + state = state, + artistLiked = artistLiked, + playingTrackId = playerState.currentTrack?.id, + onPlay = viewModel::playArtist, + onToggleLike = viewModel::toggleLikeArtist, + onAlbumClick = { id -> navController.navigate(AlbumDetail(id)) }, + onTopTrackClick = viewModel::playTopTracks, + onSimilarArtistClick = { id -> navController.navigate(ArtistDetail(id)) }, + ) +} + private fun titleFor(state: ArtistDetailUiState): String = when (state) { is ArtistDetailUiState.Success -> state.detail.artist.name is ArtistDetailUiState.Loading -> state.seed?.name ?: "Artist"