David Breneisen
03/22/2025, 1:14 PMval screenDensity = MutableStateFlow<Density>(Density(1f))
@Composable fun DensityObserver() {
with(LocalDensity.current) {
SideEffect {
screenDensity.value = this
}
}
}
Stylianos Gakis
03/22/2025, 1:15 PMDavid Breneisen
03/22/2025, 1:17 PMDavid Breneisen
03/22/2025, 1:17 PMoverride val showGameInfo = combine(hostSize, viewType, screenDensity) {
hostSize, viewType, density ->
if (viewType != StaffViewType.sightReadGame) false
else with(density) { hostSize.height.toDp() >= 360.dp && hostSize.width.toDp() < 500.dp }
}.stateIn(scope, SharingStarted.WhileSubscribed(), false)
Zach Klippenstein (he/him) [MOD]
03/22/2025, 1:20 PMStylianos Gakis
03/22/2025, 1:22 PMDavid Breneisen
03/22/2025, 1:27 PMAlex Vanyo
03/22/2025, 6:28 PMDavid Breneisen
03/22/2025, 6:39 PMStylianos Gakis
03/22/2025, 10:19 PMDavid Breneisen
03/22/2025, 10:42 PMDavid Breneisen
03/22/2025, 10:55 PMStylianos Gakis
03/22/2025, 10:57 PMStylianos Gakis
03/22/2025, 10:58 PMStylianos Gakis
03/22/2025, 10:59 PMDavid Breneisen
03/23/2025, 12:06 AMclass SizeCascade(val specs: List<Spec>) {
class Spec(val requiredMin: Dp, val output: Dp)
fun output(input: Dp): Dp = specs.firstOrNull { it.requiredMin <= input }?.output ?: specs.last().output
}