diff --git a/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/App.kt b/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/App.kt index dbfff90..38b8bdb 100644 --- a/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/App.kt +++ b/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/App.kt @@ -54,7 +54,18 @@ internal fun App() = AppTheme { .asPaddingValues() ) ) { - Navigator(MainScreen()) { navigator -> + val globalDialogState = LocalMutableFullScreenState.current + Navigator( + screen = MainScreen(), + onBackPressed = { + if (globalDialogState.state.value == FullScreenState.Active) { + globalDialogState.state.value = FullScreenState.Inactive + return@Navigator false + } else { + return@Navigator true + } + } + ) { navigator -> Scaffold( scaffoldState = scaffoldState, snackbarHost = { hostState -> diff --git a/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/CommonDialog.kt b/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/CommonDialog.kt index 0f00ae1..72cc631 100644 --- a/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/CommonDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/CommonDialog.kt @@ -21,19 +21,19 @@ import androidx.compose.ui.graphics.Color * Main idea was found here: https://github.com/LucasAlfare/FullscreenComposable */ -private enum class FullScreenState { Active, Inactive } +internal enum class FullScreenState { Active, Inactive } -private class MutableFullScreenState( +internal class MutableFullScreenState( var state: MutableState = mutableStateOf(FullScreenState.Inactive) ) -private class FullScreenComposableRef( +internal class FullScreenComposableRef( var composableReference: @Composable () -> Unit = {} ) -private val LocalMutableFullScreenState = compositionLocalOf { MutableFullScreenState() } +internal val LocalMutableFullScreenState = compositionLocalOf { MutableFullScreenState() } -private val LocalFullScreenComposableReference = compositionLocalOf { FullScreenComposableRef() } +internal val LocalFullScreenComposableReference = compositionLocalOf { FullScreenComposableRef() } @Composable internal fun CommonDialogHandleableApplication( diff --git a/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/FeedList.kt b/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/FeedList.kt index b947c5d..01d0ad0 100644 --- a/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/FeedList.kt +++ b/composeApp/src/commonMain/kotlin/com/github/jetbrains/rssreader/compose/FeedList.kt @@ -6,11 +6,9 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.windowInsetsTopHeight import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material.FloatingActionButton @@ -64,7 +62,6 @@ internal fun FeedItemList( ) { LazyColumn { itemsIndexed(feeds) { i, feed -> - if (i == 0) Spacer(modifier = Modifier.windowInsetsTopHeight(WindowInsets.statusBars)) FeedItem(feed) { onClick(feed) } } }