fix(android): extract PlaylistCardCover to clear detekt LongMethod
android / Build + lint + test (push) Successful in 3m32s
android / Build signed release APK (push) Has been skipped

Adding the play-button overlay in the previous commit pushed
PlaylistCard from 49 to 62 lines, two over detekt's 60-line cap.
Splitting the cover stack into its own private composable
(PlaylistCardCover) brings the outer function back under the limit
while keeping the call site readable.

Behavior identical to f17610ec; pure refactor for lint compliance.
This commit is contained in:
2026-05-31 23:51:59 -04:00
parent f17610ecd5
commit 741ce1fa07
@@ -60,6 +60,41 @@ fun PlaylistCard(
color = Color.Transparent, color = Color.Transparent,
) { ) {
Column(modifier = Modifier.padding(horizontal = 8.dp)) { Column(modifier = Modifier.padding(horizontal = 8.dp)) {
PlaylistCardCover(
playlist = playlist,
onPlay = onPlay,
playEnabled = playEnabled,
)
Spacer(Modifier.height(8.dp))
Text(
text = playlist.name,
style = MaterialTheme.typography.titleSmall,
color = MaterialTheme.colorScheme.onSurface,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
Text(
text = subtitleFor(playlist),
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
}
}
/**
* 144dp cover with the system-variant pill (top-start) and play
* overlay (bottom-end) stacked on top. Pulled out of [PlaylistCard]
* to keep that composable under detekt's 60-line LongMethod cap.
*/
@Composable
private fun PlaylistCardCover(
playlist: PlaylistRef,
onPlay: (suspend () -> Unit)?,
playEnabled: Boolean,
) {
CoverTile( CoverTile(
url = playlist.coverUrl, url = playlist.coverUrl,
contentDescription = playlist.name, contentDescription = playlist.name,
@@ -92,23 +127,6 @@ fun PlaylistCard(
} }
}, },
) )
Spacer(Modifier.height(8.dp))
Text(
text = playlist.name,
style = MaterialTheme.typography.titleSmall,
color = MaterialTheme.colorScheme.onSurface,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
Text(
text = subtitleFor(playlist),
style = MaterialTheme.typography.bodySmall,
color = MaterialTheme.colorScheme.onSurfaceVariant,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
}
} }
/** Small label chip overlaid on a system playlist's cover. */ /** Small label chip overlaid on a system playlist's cover. */