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