From 225ff35c4c2ef5066116126b49d7a9affa237d22 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Tue, 26 May 2026 21:54:21 -0400 Subject: [PATCH] fix(android): detekt LongMethod on MiniRow (62/60) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit a606267 inlined three IconButton blocks (Prev/Play-Pause/Next) that pushed MiniRow 2 lines over. Extracted to a private TransportButton helper — same surface, half the lines. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../minstrel/player/ui/MiniPlayer.kt | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/android/app/src/main/java/com/fabledsword/minstrel/player/ui/MiniPlayer.kt b/android/app/src/main/java/com/fabledsword/minstrel/player/ui/MiniPlayer.kt index 6f3c5a12..4f524a94 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/player/ui/MiniPlayer.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/player/ui/MiniPlayer.kt @@ -203,27 +203,13 @@ private fun MiniRow( } } LikeButton(liked = isLiked, onToggle = onToggleLike) - IconButton(onClick = onPrev) { - Icon( - imageVector = Lucide.SkipBack, - contentDescription = "Previous", - tint = MaterialTheme.colorScheme.onSurface, - ) - } - IconButton(onClick = onPlayPause) { - Icon( - imageVector = if (isPlaying) Lucide.Pause else Lucide.Play, - contentDescription = if (isPlaying) "Pause" else "Play", - tint = MaterialTheme.colorScheme.onSurface, - ) - } - IconButton(onClick = onNext) { - Icon( - imageVector = Lucide.SkipForward, - contentDescription = "Next", - tint = MaterialTheme.colorScheme.onSurface, - ) - } + TransportButton(icon = Lucide.SkipBack, description = "Previous", onClick = onPrev) + TransportButton( + icon = if (isPlaying) Lucide.Pause else Lucide.Play, + description = if (isPlaying) "Pause" else "Play", + onClick = onPlayPause, + ) + TransportButton(icon = Lucide.SkipForward, description = "Next", onClick = onNext) // hideQueueActions=true: the playing track is itself the // queue entry, so Play next / Add to queue would be silly. TrackActionsButton( @@ -234,3 +220,18 @@ private fun MiniRow( ) } } + +@Composable +private fun TransportButton( + icon: androidx.compose.ui.graphics.vector.ImageVector, + description: String, + onClick: () -> Unit, +) { + IconButton(onClick = onClick) { + Icon( + imageVector = icon, + contentDescription = description, + tint = MaterialTheme.colorScheme.onSurface, + ) + } +}