From 933dc4fd5afad639b28bacd243b1fb998718fc1a Mon Sep 17 00:00:00 2001 From: Damontecres Date: Thu, 2 Oct 2025 14:32:19 -0400 Subject: [PATCH] Use aspect ratio for banner cards --- .../github/damontecres/dolphin/ui/cards/BannerCard.kt | 11 ++++++----- .../damontecres/dolphin/ui/detail/SeriesDetails.kt | 1 + .../dolphin/ui/detail/series/SeriesOverviewContent.kt | 3 +++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/cards/BannerCard.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/cards/BannerCard.kt index 65bf35df..dff20b8e 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/cards/BannerCard.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/cards/BannerCard.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -36,22 +37,22 @@ fun BannerCard( onClick: () -> Unit, onLongClick: () -> Unit, modifier: Modifier = Modifier, - cardWidth: Dp = 200.dp, - cardHeight: Dp = cardWidth * 9 / 16, + cardHeight: Dp = 140.dp, + aspectRatio: Float = 16f / 9, interactionSource: MutableInteractionSource? = null, ) { Card( - modifier = modifier.size(cardWidth, cardHeight), + modifier = modifier.size(cardHeight * aspectRatio, cardHeight), onClick = onClick, onLongClick = onLongClick, interactionSource = interactionSource, ) { - Box { + Box(modifier = Modifier.fillMaxSize()) { AsyncImage( model = imageUrl, contentDescription = null, contentScale = ContentScale.Fit, - modifier = Modifier, + modifier = Modifier.fillMaxSize(), ) if (played || cornerText.isNotNullOrBlank()) { Row( diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt index 60ff32a6..93127257 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/detail/SeriesDetails.kt @@ -116,6 +116,7 @@ class SeriesViewModel ItemFields.OVERVIEW, ItemFields.CUSTOM_RATING, ItemFields.TRICKPLAY, + ItemFields.PRIMARY_IMAGE_ASPECT_RATIO, ), ) val pager = ApiRequestPager(api, request, GetEpisodesRequestHandler, viewModelScope) diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/detail/series/SeriesOverviewContent.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/detail/series/SeriesOverviewContent.kt index 3d493663..bc81d46e 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/detail/series/SeriesOverviewContent.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/detail/series/SeriesOverviewContent.kt @@ -191,6 +191,9 @@ fun SeriesOverviewContent( } BannerCard( imageUrl = episode?.imageUrl, + aspectRatio = + episode?.data?.primaryImageAspectRatio?.toFloat() + ?: (16f / 9), cornerText = "E${episode?.data?.indexNumber}", played = episode?.data?.userData?.played ?: false, playPercent = episode?.data?.userData?.playedPercentage ?: 0.0,