diff --git a/cardinal-android/app/src/main/java/earth/maps/cardinal/bottomsheet/BottomSheetScaffold.kt b/cardinal-android/app/src/main/java/earth/maps/cardinal/bottomsheet/BottomSheetScaffold.kt index 25d26a013b2509da5e3dac7b1f61963f1312aff3..6b24c3fb04f9afa77f741213c70240dd8912674e 100644 --- a/cardinal-android/app/src/main/java/earth/maps/cardinal/bottomsheet/BottomSheetScaffold.kt +++ b/cardinal-android/app/src/main/java/earth/maps/cardinal/bottomsheet/BottomSheetScaffold.kt @@ -25,11 +25,14 @@ import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.requiredHeightIn +import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FabPosition import androidx.compose.material3.MaterialTheme @@ -367,7 +370,7 @@ fun BottomSheetScaffold( } }, snackbarHost = { - Box { + Box(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.safeDrawing)) { snackbarHost(scaffoldState.snackbarHostState) } }, diff --git a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/AppContent.kt b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/AppContent.kt index c9a06cc4e2450bba40d922662368ce1e4a832a2c..b6f893e1c53ee631727d3efeb32d139735f3c133 100644 --- a/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/AppContent.kt +++ b/cardinal-android/app/src/main/java/earth/maps/cardinal/ui/core/AppContent.kt @@ -816,7 +816,6 @@ private fun OfflineAreasRoute( } } val viewModel: OfflineAreasViewModel = hiltViewModel() - val snackBarHostState = remember { SnackbarHostState() } // Track the current viewport reactively var currentViewport by remember { mutableStateOf(state.cameraState.projection?.queryVisibleRegion()) } @@ -835,7 +834,7 @@ private fun OfflineAreasRoute( state.fabHeight = it } }, - content = { + content = { snackBarHostState -> OfflineAreasScreen( currentViewport = visibleRegion, currentZoom = state.cameraState.position.zoom, @@ -1305,7 +1304,7 @@ private fun HomeScreenComposable( fun CardinalAppScaffold( scaffoldState: BottomSheetScaffoldState, peekHeight: Dp, - content: @Composable () -> Unit, + content: @Composable (SnackbarHostState) -> Unit, fabHeightCallback: (Dp) -> Unit, showToolbar: Boolean = true, ) { @@ -1337,7 +1336,7 @@ fun CardinalAppScaffold( ) { BottomSheetDefaults.DragHandle() } - content() + content(snackBarHostState) } Spacer(modifier = Modifier.height(bottomInset)) },