Skip to content

Commit 3bbcd02

Browse files
Update Status Bar to Match Theme Colors Dynamically (#2722)
1 parent d123dd4 commit 3bbcd02

File tree

2 files changed

+15
-1
lines changed
  • androidApp/src/main/kotlin/org/mifos/mobile
  • core/designsystem/src/main/kotlin/org/mifos/mobile/core/designsystem/theme

2 files changed

+15
-1
lines changed

androidApp/src/main/kotlin/org/mifos/mobile/HomeActivity.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@ import androidx.activity.ComponentActivity
1414
import androidx.activity.compose.setContent
1515
import androidx.activity.enableEdgeToEdge
1616
import androidx.activity.viewModels
17+
import androidx.compose.foundation.isSystemInDarkTheme
1718
import androidx.compose.runtime.CompositionLocalProvider
19+
import androidx.compose.runtime.DisposableEffect
1820
import androidx.compose.runtime.getValue
1921
import androidx.compose.runtime.mutableStateOf
2022
import androidx.compose.runtime.setValue
23+
import androidx.compose.ui.graphics.toArgb
2124
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
2225
import androidx.lifecycle.Lifecycle
2326
import androidx.lifecycle.lifecycleScope
@@ -30,6 +33,8 @@ import kotlinx.coroutines.launch
3033
import org.mifos.mobile.HomeActivityUiState.Success
3134
import org.mifos.mobile.core.data.utils.NetworkMonitor
3235
import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
36+
import org.mifos.mobile.core.designsystem.theme.darkScrim
37+
import org.mifos.mobile.core.designsystem.theme.lightScrim
3338
import org.mifos.mobile.navigation.MifosNavGraph.AUTH_GRAPH
3439
import org.mifos.mobile.navigation.MifosNavGraph.PASSCODE_GRAPH
3540
import org.mifos.mobile.navigation.RootNavGraph
@@ -71,7 +76,7 @@ class HomeActivity : ComponentActivity() {
7176
val navController = rememberNavController()
7277

7378
val appState = rememberMifosMobileState(networkMonitor = networkMonitor)
74-
79+
val darkTheme= isSystemInDarkTheme()
7580
val navDestination = when (uiState) {
7681
is Success -> if ((uiState as Success).userData.isAuthenticated) {
7782
PASSCODE_GRAPH
@@ -82,6 +87,12 @@ class HomeActivity : ComponentActivity() {
8287
else -> AUTH_GRAPH
8388
}
8489

90+
DisposableEffect(darkTheme) {
91+
window?.statusBarColor = if (darkTheme) darkScrim.toArgb() else lightScrim.toArgb()
92+
window?.navigationBarColor = if (darkTheme) darkScrim.toArgb() else lightScrim.toArgb()
93+
onDispose {}
94+
}
95+
8596
CompositionLocalProvider {
8697
MifosMobileTheme {
8798
RootNavGraph(

core/designsystem/src/main/kotlin/org/mifos/mobile/core/designsystem/theme/Color.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,6 @@ val DarkGray = Color(0xBB666666)
3535
val GreenSuccess = Color(0xff14c416)
3636
val LightSurfaceTint = Color(0xFF325CA8)
3737
val DarkSurfaceTint = Color(0xFFAEC6FF)
38+
39+
val lightScrim = Color(0x80FFFFFF)
40+
val darkScrim = Color(0x80000000)

0 commit comments

Comments
 (0)