diff --git a/app/src/main/java/com/radiola/ui/components/StationCard.kt b/app/src/main/java/com/radiola/ui/components/StationCard.kt index 5778f96..396206d 100644 --- a/app/src/main/java/com/radiola/ui/components/StationCard.kt +++ b/app/src/main/java/com/radiola/ui/components/StationCard.kt @@ -61,51 +61,17 @@ fun StationCard( .clip(RoundedCornerShape(16.dp)) .background(colors.surface2) ) { + val trackCover = nowTrack?.coverUrl?.takeIf { it.isNotBlank() } + // Фон карточки: обложка трека → логотип станции → фирменная плитка. when { - // Приоритет 1: обложка текущего трека с градиентом и подписью. - !nowTrack?.coverUrl.isNullOrBlank() -> { + trackCover != null -> { AsyncImage( - model = crossfadeModel(nowTrack!!.coverUrl), + model = crossfadeModel(trackCover), contentDescription = nowTrack.song, modifier = Modifier.fillMaxSize(), contentScale = ContentScale.Crop ) - // Тёмный скрим снизу для читаемости текста. - Box( - modifier = Modifier - .fillMaxSize() - .background( - Brush.verticalGradient( - 0f to Color.Transparent, - 0.5f to Color.Transparent, - 1f to Color.Black.copy(alpha = 0.8f) - ) - ) - ) - // Название трека и исполнитель в нижнем-левом углу. - Column( - modifier = Modifier - .align(Alignment.BottomStart) - .padding(10.dp) - ) { - Text( - text = nowTrack.song, - color = Color.White, - fontWeight = FontWeight.Bold, - style = androidx.compose.material3.MaterialTheme.typography.bodyMedium, - maxLines = 1, - overflow = androidx.compose.ui.text.style.TextOverflow.Ellipsis - ) - Text( - text = nowTrack.artist, - color = Color.White.copy(alpha = 0.8f), - style = androidx.compose.material3.MaterialTheme.typography.labelMedium, - maxLines = 1, - overflow = androidx.compose.ui.text.style.TextOverflow.Ellipsis - ) - } } - // Приоритет 2: логотип самой станции. !station.coverUrl.isNullOrBlank() -> { AsyncImage( model = crossfadeModel(station.coverUrl), @@ -114,7 +80,6 @@ fun StationCard( contentScale = ContentScale.Crop ) } - // Приоритет 3: фирменная плитка (цвет из названия + инициалы). else -> { Box( modifier = Modifier @@ -131,6 +96,41 @@ fun StationCard( } } } + // Подпись играющего трека — поверх любого фона, если трек известен. + if (nowTrack != null) { + Box( + modifier = Modifier + .fillMaxSize() + .background( + Brush.verticalGradient( + 0f to Color.Transparent, + 0.5f to Color.Transparent, + 1f to Color.Black.copy(alpha = 0.8f) + ) + ) + ) + Column( + modifier = Modifier + .align(Alignment.BottomStart) + .padding(10.dp) + ) { + Text( + text = nowTrack.song, + color = Color.White, + fontWeight = FontWeight.Bold, + style = androidx.compose.material3.MaterialTheme.typography.bodyMedium, + maxLines = 1, + overflow = androidx.compose.ui.text.style.TextOverflow.Ellipsis + ) + Text( + text = nowTrack.artist, + color = Color.White.copy(alpha = 0.8f), + style = androidx.compose.material3.MaterialTheme.typography.labelMedium, + maxLines = 1, + overflow = androidx.compose.ui.text.style.TextOverflow.Ellipsis + ) + } + } // Кнопка сердечка — поверх всего, top-end. Box( modifier = Modifier