mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 23:51:21 +02:00
Enforce a minimum aspect ratio (#519)
## Description When using a server provided aspect, force a minimum value (.666) in case the server returns unusable data like zero. Note: I have not been able to reproduce the errors in #451 to verify that this PR will fix it. And it's not clear to me why #453 did not fix it either. However, this PR shouldn't impact anything if the server is sending valid aspect ratios and should at least prevent the crash on the UI side. ### Related issues Follow up to #453 Hopefully fixes #451
This commit is contained in:
parent
13d70e7623
commit
a65b93e064
5 changed files with 9 additions and 6 deletions
|
|
@ -76,6 +76,8 @@ object AspectRatios {
|
||||||
const val FOUR_THREE = 4f / 3f
|
const val FOUR_THREE = 4f / 3f
|
||||||
const val TALL = 2f / 3f
|
const val TALL = 2f / 3f
|
||||||
const val SQUARE = 1f
|
const val SQUARE = 1f
|
||||||
|
|
||||||
|
const val MIN = TALL
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class AspectRatio(
|
enum class AspectRatio(
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ fun EpisodeCard(
|
||||||
} else {
|
} else {
|
||||||
focusedAfterDelay = false
|
focusedAfterDelay = false
|
||||||
}
|
}
|
||||||
val aspectRatio = item?.aspectRatio ?: AspectRatios.TALL
|
val aspectRatio = item?.aspectRatio?.coerceAtLeast(AspectRatios.MIN) ?: AspectRatios.MIN
|
||||||
val width = imageHeight * aspectRatio
|
val width = imageHeight * aspectRatio
|
||||||
val height = imageWidth * (1f / aspectRatio)
|
val height = imageWidth * (1f / aspectRatio)
|
||||||
Column(
|
Column(
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ fun GridCard(
|
||||||
modifier =
|
modifier =
|
||||||
Modifier
|
Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.aspectRatio(imageAspectRatio)
|
.aspectRatio(imageAspectRatio.coerceAtLeast(AspectRatios.MIN))
|
||||||
.background(MaterialTheme.colorScheme.surfaceVariant),
|
.background(MaterialTheme.colorScheme.surfaceVariant),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -139,8 +139,9 @@ fun SeasonCard(
|
||||||
} else {
|
} else {
|
||||||
focusedAfterDelay = false
|
focusedAfterDelay = false
|
||||||
}
|
}
|
||||||
val width = imageHeight * aspectRatio
|
val aspectRationToUse = aspectRatio.coerceAtLeast(AspectRatios.MIN)
|
||||||
val height = imageWidth * (1f / aspectRatio)
|
val width = imageHeight * aspectRationToUse
|
||||||
|
val height = imageWidth * (1f / aspectRationToUse)
|
||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.spacedBy(spaceBetween),
|
verticalArrangement = Arrangement.spacedBy(spaceBetween),
|
||||||
modifier = modifier.size(width, height),
|
modifier = modifier.size(width, height),
|
||||||
|
|
@ -149,7 +150,7 @@ fun SeasonCard(
|
||||||
modifier =
|
modifier =
|
||||||
Modifier
|
Modifier
|
||||||
.size(imageWidth, imageHeight)
|
.size(imageWidth, imageHeight)
|
||||||
.aspectRatio(aspectRatio),
|
.aspectRatio(aspectRationToUse),
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
onLongClick = onLongClick,
|
onLongClick = onLongClick,
|
||||||
interactionSource = interactionSource,
|
interactionSource = interactionSource,
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ fun NextUpEpisode(
|
||||||
modifier =
|
modifier =
|
||||||
Modifier
|
Modifier
|
||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
.aspectRatio(aspectRatio)
|
.aspectRatio(aspectRatio.coerceAtLeast(AspectRatios.MIN))
|
||||||
// .fillMaxSize()
|
// .fillMaxSize()
|
||||||
// .weight(1f)
|
// .weight(1f)
|
||||||
.focusRequester(focusRequester),
|
.focusRequester(focusRequester),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue