From b13e7e021e30beb928f8239e9e4161c30718019c Mon Sep 17 00:00:00 2001 From: "Oleksandr.Karpovich" Date: Fri, 3 May 2024 10:52:03 +0200 Subject: [PATCH] Apply window insets --- .../jetSnackNavigationBarsPadding.kt | 4 ++++ .../com/example/jetsnack/ui/home/Feed.kt | 9 ++++---- .../jetsnack/ui/snackdetail/SnackDetail.kt | 3 +++ .../snackCollectionListItemWindowInsets.kt | 6 ++--- .../jetSnackNavigationBarsPadding.kt | 22 ++++++++++++++----- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt b/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt index c2a4b7224f..de2c3375fe 100644 --- a/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt +++ b/examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt @@ -3,8 +3,12 @@ package com.example.jetsnack.ui.snackdetail import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +@Composable actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this.navigationBarsPadding() +@Composable actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this.statusBarsPadding() +@Composable actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = this.systemBarsPadding() \ No newline at end of file diff --git a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/home/Feed.kt b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/home/Feed.kt index 14db005d06..65669ed650 100644 --- a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/home/Feed.kt +++ b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/home/Feed.kt @@ -26,6 +26,7 @@ import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically //import androidx.compose.desktop.ui.tooling.preview.Preview import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize @@ -48,6 +49,7 @@ import com.example.jetsnack.ui.components.FilterBar import com.example.jetsnack.ui.components.JetsnackDivider import com.example.jetsnack.ui.components.JetsnackSurface import com.example.jetsnack.ui.components.SnackCollection +import com.example.jetsnack.ui.snackdetail.jetSnackStatusBarsPadding import com.example.jetsnack.ui.theme.JetsnackTheme @Composable @@ -74,9 +76,9 @@ private fun Feed( ) { JetsnackSurface(modifier = modifier.fillMaxSize()) { - Box { + Column { + DestinationBar(modifier = Modifier.jetSnackStatusBarsPadding()) SnackCollectionList(snackCollections, filters, onSnackClick) - DestinationBar() } } } @@ -94,9 +96,6 @@ private fun SnackCollectionList( LazyColumn { item { - Spacer( - Modifier.windowInsetsTopHeight(snackCollectionListItemWindowInsets()) - ) FilterBar(filters, onShowFilters = { filtersVisible = true }) } itemsIndexed(snackCollections) { index, snackCollection -> diff --git a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/snackdetail/SnackDetail.kt b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/snackdetail/SnackDetail.kt index 9dca0c5776..122fe679f1 100644 --- a/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/snackdetail/SnackDetail.kt +++ b/examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/snackdetail/SnackDetail.kt @@ -389,8 +389,11 @@ private fun CartBottomBar(modifier: Modifier = Modifier) { } } +@Composable expect fun Modifier.jetSnackNavigationBarsPadding(): Modifier +@Composable expect fun Modifier.jetSnackStatusBarsPadding(): Modifier +@Composable expect fun Modifier.jetSnackSystemBarsPadding(): Modifier //@Preview diff --git a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/snackCollectionListItemWindowInsets.kt b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/snackCollectionListItemWindowInsets.kt index 0db2843f9b..ea94ef244e 100644 --- a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/snackCollectionListItemWindowInsets.kt +++ b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/snackCollectionListItemWindowInsets.kt @@ -1,12 +1,12 @@ package com.example.jetsnack.ui.home import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.add +import androidx.compose.foundation.layout.statusBars import androidx.compose.runtime.Composable import androidx.compose.ui.unit.dp @Composable actual fun snackCollectionListItemWindowInsets(): WindowInsets { - // TODO: implement - // WindowInsets.statusBars.add(WindowInsets(top = 56.dp)) - return WindowInsets(top = 56.dp) + return WindowInsets.statusBars.add(WindowInsets(top = 56.dp)) } \ No newline at end of file diff --git a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt index 4d61b581f0..62e5979e2d 100644 --- a/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt +++ b/examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt @@ -1,11 +1,21 @@ package com.example.jetsnack.ui.snackdetail +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.navigationBars +import androidx.compose.foundation.layout.statusBars +import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.windowInsetsPadding +import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this -// .navigationBarsPadding() +@Composable +actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = + this.windowInsetsPadding(WindowInsets.navigationBars) -actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this -// statusBarsPadding() -actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = this -// Modifier.systemBarsPadding() \ No newline at end of file +@Composable +actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = + this.windowInsetsPadding(WindowInsets.statusBars) + +@Composable +actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = + this.windowInsetsPadding(WindowInsets.systemBars) \ No newline at end of file