diff --git a/androidApp/src/main/res/values-night/themes.xml b/androidApp/src/main/res/values-night/themes.xml new file mode 100644 index 000000000..9df5a835f --- /dev/null +++ b/androidApp/src/main/res/values-night/themes.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/MainActivity.kt b/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/MainActivity.kt index e37574d2c..2e65bcdf3 100644 --- a/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/MainActivity.kt +++ b/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/MainActivity.kt @@ -3,14 +3,14 @@ package dev.alvr.katana.ui.main import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.core.view.WindowCompat internal class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { installSplashScreen() + enableEdgeToEdge() super.onCreate(savedInstanceState) - WindowCompat.setDecorFitsSystemWindows(window, false) setContent { KatanaApp() } } } diff --git a/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/KatanaDestinations.kt b/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/KatanaDestinations.kt index 9cec21da5..1eab3ad48 100644 --- a/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/KatanaDestinations.kt +++ b/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/KatanaDestinations.kt @@ -1,16 +1,16 @@ package dev.alvr.katana.ui.main.navigation import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.consumeWindowInsets +import androidx.compose.foundation.layout.displayCutoutPadding import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.systemBarsPadding -import androidx.compose.foundation.layout.windowInsetsBottomHeight import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.contentColorFor @@ -41,7 +41,11 @@ import dev.alvr.katana.ui.main.viewmodel.MainViewModel import io.sentry.compose.withSentryObservableEffect @Composable -@OptIn(ExperimentalAnimationApi::class, ExperimentalMaterialNavigationApi::class) +@OptIn( + ExperimentalAnimationApi::class, + ExperimentalMaterialNavigationApi::class, + ExperimentalLayoutApi::class, +) internal fun KatanaDestinations( useNavRail: Boolean, vm: MainViewModel, @@ -66,7 +70,6 @@ internal fun KatanaDestinations( scrimColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.32f), ) { Scaffold( - modifier = Modifier.systemBarsPadding(), bottomBar = { if (!useNavRail) { NavigationBar( @@ -74,19 +77,17 @@ internal fun KatanaDestinations( navController = navController, type = NavigationBarType.Bottom, ) - } else { - Spacer( - Modifier - .windowInsetsBottomHeight(WindowInsets.navigationBars) - .fillMaxWidth(), - ) } }, + contentWindowInsets = WindowInsets(0, 0, 0, 0), ) { paddingValues -> Row( modifier = Modifier .fillMaxSize() - .padding(paddingValues), + .padding(paddingValues) + .consumeWindowInsets(paddingValues) + .systemBarsPadding() + .displayCutoutPadding(), ) { if (useNavRail) { NavigationBar( diff --git a/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/NavigationBar.kt b/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/NavigationBar.kt index b685f82f7..4001f62e9 100644 --- a/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/NavigationBar.kt +++ b/app/src/androidMain/kotlin/dev/alvr/katana/ui/main/navigation/NavigationBar.kt @@ -6,12 +6,6 @@ import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutHorizontally import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.WindowInsetsSides -import androidx.compose.foundation.layout.asPaddingValues -import androidx.compose.foundation.layout.only -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.systemBars import androidx.compose.material3.Icon import androidx.compose.material3.NavigationBar import androidx.compose.material3.NavigationBarItem @@ -122,13 +116,7 @@ private fun RailNavigationBar( isItemSelected: (NavigationBarItem) -> Boolean, onClick: (NavigationBarItem) -> Unit, ) { - NavigationRail( - modifier = Modifier.padding( - WindowInsets.systemBars - .only(WindowInsetsSides.Start + WindowInsetsSides.Vertical) - .asPaddingValues(), - ), - ) { + NavigationRail { Spacer(Modifier.weight(1f)) destinations.forEach { destination -> NavigationRailItem( diff --git a/app/src/androidMain/res/values/themes.xml b/app/src/androidMain/res/values/themes.xml index efd070733..11cf59be2 100644 --- a/app/src/androidMain/res/values/themes.xml +++ b/app/src/androidMain/res/values/themes.xml @@ -3,6 +3,8 @@