fix: fix crash on startup due to inset calc

This commit is contained in:
LavaDesu 2025-04-14 23:47:50 +10:00
parent e428883d01
commit 3c0eb906cc
Signed by: cilly
GPG key ID: 6500251E087653C9

View file

@ -7,8 +7,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.safeContent import androidx.compose.foundation.layout.safeContent
import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.LocationOn
import androidx.compose.material3.BottomSheetScaffold import androidx.compose.material3.BottomSheetScaffold
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.FloatingActionButton
@ -26,6 +24,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.dp
import dev.icerock.moko.geo.compose.BindLocationTrackerEffect import dev.icerock.moko.geo.compose.BindLocationTrackerEffect
import dev.icerock.moko.geo.compose.LocationTrackerAccuracy import dev.icerock.moko.geo.compose.LocationTrackerAccuracy
import dev.icerock.moko.geo.compose.rememberLocationTrackerFactory import dev.icerock.moko.geo.compose.rememberLocationTrackerFactory
@ -48,7 +47,7 @@ import kotlin.math.roundToInt
fun App() { fun App() {
val scaffoldState = rememberBottomSheetScaffoldState( val scaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = rememberStandardBottomSheetState( bottomSheetState = rememberStandardBottomSheetState(
initialValue = SheetValue.Hidden, initialValue = SheetValue.PartiallyExpanded,
skipHiddenState = false skipHiddenState = false
) )
) )
@ -66,7 +65,8 @@ fun App() {
sheetState.currentValue != SheetValue.Hidden || sheetState.currentValue != SheetValue.Hidden ||
sheetState.targetValue != SheetValue.Hidden sheetState.targetValue != SheetValue.Hidden
) { ) {
val scaffoldOffset = sheetState.requireOffset().roundToInt() val offset = runCatching { sheetState.requireOffset() }
val scaffoldOffset = offset.getOrDefault(0.0f).roundToInt()
(getScreenHeight() - scaffoldOffset - WindowInsets.safeDrawing.getBottom(LocalDensity.current)).coerceAtLeast(0) (getScreenHeight() - scaffoldOffset - WindowInsets.safeDrawing.getBottom(LocalDensity.current)).coerceAtLeast(0)
} else 0 } else 0
@ -82,6 +82,7 @@ fun App() {
MaterialTheme { MaterialTheme {
BottomSheetScaffold( BottomSheetScaffold(
scaffoldState = scaffoldState, scaffoldState = scaffoldState,
sheetPeekHeight = 250.dp,
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
sheetContent = { Box(modifier = Modifier) }, sheetContent = { Box(modifier = Modifier) },
) { ) {