From d2e1c4683d56599f25a14e781fbe87ca63693bca Mon Sep 17 00:00:00 2001 From: damontecres <154766448+damontecres@users.noreply.github.com> Date: Sat, 13 Dec 2025 16:43:49 -0500 Subject: [PATCH] Only use server provided aspect ratios if >0 (#453) Fixes #451 --- .../com/github/damontecres/wholphin/data/model/BaseItem.kt | 3 +++ .../com/github/damontecres/wholphin/ui/cards/EpisodeCard.kt | 2 +- .../java/com/github/damontecres/wholphin/ui/cards/ItemRow.kt | 3 +-- .../com/github/damontecres/wholphin/ui/cards/SeasonCard.kt | 2 +- .../wholphin/ui/detail/series/SeriesOverviewContent.kt | 4 +--- .../github/damontecres/wholphin/ui/playback/PlaybackPage.kt | 4 +--- 6 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt b/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt index 49b85ef5..7abdc890 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt @@ -47,6 +47,9 @@ data class BaseItem( } } + @Transient + val aspectRatio: Float? = data.primaryImageAspectRatio?.toFloat()?.takeIf { it > 0 } + @Transient val indexNumber = data.indexNumber ?: dateAsIndex() diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/cards/EpisodeCard.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/cards/EpisodeCard.kt index a7df3434..d6c88633 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/cards/EpisodeCard.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/cards/EpisodeCard.kt @@ -64,7 +64,7 @@ fun EpisodeCard( } else { focusedAfterDelay = false } - val aspectRatio = dto?.primaryImageAspectRatio?.toFloat() ?: AspectRatios.TALL + val aspectRatio = item?.aspectRatio ?: AspectRatios.TALL val width = imageHeight * aspectRatio val height = imageWidth * (1f / aspectRatio) Column( diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/cards/ItemRow.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/cards/ItemRow.kt index 26bc9ce5..618b9003 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/cards/ItemRow.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/cards/ItemRow.kt @@ -113,8 +113,7 @@ fun BannerItemRow( name = title, item = item, aspectRatio = - aspectRatioOverride ?: item?.data?.primaryImageAspectRatio?.toFloat() - ?: AspectRatios.WIDE, + aspectRatioOverride ?: item?.aspectRatio ?: AspectRatios.WIDE, cornerText = item?.data?.indexNumber?.let { "E$it" }, played = item?.data?.userData?.played ?: false, playPercent = item?.data?.userData?.playedPercentage ?: 0.0, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/cards/SeasonCard.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/cards/SeasonCard.kt index 66f93212..54041fff 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/cards/SeasonCard.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/cards/SeasonCard.kt @@ -46,7 +46,7 @@ fun SeasonCard( imageWidth: Dp = Dp.Unspecified, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, showImageOverlay: Boolean = false, - aspectRatio: Float = item?.data?.primaryImageAspectRatio?.toFloat() ?: AspectRatios.TALL, + aspectRatio: Float = item?.aspectRatio ?: AspectRatios.TALL, ) { val imageUrlService = LocalImageUrlService.current val density = LocalDensity.current diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverviewContent.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverviewContent.kt index 66b6b414..3d2aa4c7 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverviewContent.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverviewContent.kt @@ -218,9 +218,7 @@ fun SeriesOverviewContent( item = episode, aspectRatio = episode - ?.data - ?.primaryImageAspectRatio - ?.toFloat() + ?.aspectRatio ?.coerceAtLeast(AspectRatios.FOUR_THREE) ?: (AspectRatios.WIDE), cornerText = cornerText, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt index 4898103b..d414a2be 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt @@ -473,9 +473,7 @@ fun PlaybackPage( ).joinToString(" - "), description = it.data.overview, imageUrl = LocalImageUrlService.current.rememberImageUrl(it), - aspectRatio = - it.data.primaryImageAspectRatio?.toFloat() - ?: AspectRatios.WIDE, + aspectRatio = it.aspectRatio ?: AspectRatios.WIDE, onClick = { viewModel.reportInteraction() viewModel.playNextUp()