diff --git a/app/src/main/java/com/sadellie/unitto/UnittoApp.kt b/app/src/main/java/com/sadellie/unitto/UnittoApp.kt index 74427008..e386ba9e 100644 --- a/app/src/main/java/com/sadellie/unitto/UnittoApp.kt +++ b/app/src/main/java/com/sadellie/unitto/UnittoApp.kt @@ -18,18 +18,24 @@ package com.sadellie.unitto +import android.app.Activity import androidx.compose.animation.core.tween import androidx.compose.material3.DrawerValue import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalNavigationDrawer import androidx.compose.material3.rememberDrawerState import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.luminance +import androidx.compose.ui.platform.LocalView +import androidx.core.view.WindowCompat import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavDestination.Companion.hierarchy @@ -103,12 +109,11 @@ internal fun UnittoApp() { typography = AppTypography, animationSpec = tween(250) ) { - val statusBarColor = when (currentRoute) { - // Match text field container color - TopLevelDestinations.Calculator -> MaterialTheme.colorScheme.surfaceVariant - else -> MaterialTheme.colorScheme.background + val localView = LocalView.current + val backgroundColor = MaterialTheme.colorScheme.background + val useDarkIcons by remember(backgroundColor) { + mutableStateOf(backgroundColor.luminance() > 0.5f) } - val navigationBarColor = MaterialTheme.colorScheme.background ModalNavigationDrawer( drawerState = drawerState, @@ -142,9 +147,10 @@ internal fun UnittoApp() { ) } - SideEffect { - sysUiController.setNavigationBarColor(navigationBarColor) - sysUiController.setStatusBarColor(statusBarColor) + LaunchedEffect(useDarkIcons) { + WindowCompat.setDecorFitsSystemWindows((localView.context as Activity).window, false) + sysUiController.setNavigationBarColor(Color.Transparent, useDarkIcons) + sysUiController.setStatusBarColor(Color.Transparent, useDarkIcons) } } } diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml deleted file mode 100644 index 0e390c41..00000000 --- a/app/src/main/res/values/ic_launcher_background.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #FCFCF7 - \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 5f8f21dd..4f6a9a46 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,3 +1,7 @@ - \ No newline at end of file diff --git a/core/base/src/main/res/values-night-v31/colors.xml b/core/base/src/main/res/values-night-v31/colors.xml new file mode 100644 index 00000000..99bd19eb --- /dev/null +++ b/core/base/src/main/res/values-night-v31/colors.xml @@ -0,0 +1,21 @@ + + + + @android:color/system_neutral1_900 + diff --git a/core/base/src/main/res/values-night/colors.xml b/core/base/src/main/res/values-night/colors.xml new file mode 100644 index 00000000..f380770d --- /dev/null +++ b/core/base/src/main/res/values-night/colors.xml @@ -0,0 +1,21 @@ + + + + #1B1B1B + diff --git a/core/base/src/main/res/values-v31/colors.xml b/core/base/src/main/res/values-v31/colors.xml new file mode 100644 index 00000000..9383bb52 --- /dev/null +++ b/core/base/src/main/res/values-v31/colors.xml @@ -0,0 +1,21 @@ + + + + @android:color/system_neutral1_50 + diff --git a/core/base/src/main/res/values/colors.xml b/core/base/src/main/res/values/colors.xml index 028fa7ec..071b5abe 100644 --- a/core/base/src/main/res/values/colors.xml +++ b/core/base/src/main/res/values/colors.xml @@ -18,4 +18,5 @@ #FCFCF7 + #FFFFFF \ No newline at end of file