fix(#23): wire AppTheme preference in MainActivity

This commit is contained in:
Achmad Setyabudi Susilo
2026-06-28 21:30:54 +07:00
parent dca79df056
commit 2f8368d4ef
@@ -8,9 +8,12 @@ import android.view.ViewTreeObserver
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.core.util.Consumer
import cafe.adriel.voyager.core.screen.Screen
@@ -18,6 +21,9 @@ import cafe.adriel.voyager.core.stack.StackEvent
import cafe.adriel.voyager.navigator.Navigator
import cafe.adriel.voyager.navigator.NavigatorDisposeBehavior
import cafe.adriel.voyager.transitions.ScreenTransition
import dev.achmad.ledgerr.di.util.inject
import dev.achmad.ledgerr.domain.preference.AppPreference
import dev.achmad.ledgerr.domain.preference.AppTheme as AppThemePref
import dev.achmad.ledgerr.ui.screens.home.HomeScreen
import dev.achmad.ledgerr.ui.theme.AppTheme
import kotlinx.coroutines.channels.awaitClose
@@ -53,7 +59,17 @@ class MainActivity : ComponentActivity() {
enableEdgeToEdge()
setContent {
AppTheme {
val systemDark = isSystemInDarkTheme()
val appThemePref by inject<AppPreference>()
.appTheme()
.changes()
.collectAsState(initial = AppThemePref.SYSTEM)
val darkTheme = when (appThemePref) {
AppThemePref.LIGHT -> false
AppThemePref.DARK -> true
AppThemePref.SYSTEM -> systemDark
}
AppTheme(darkTheme = darkTheme) {
val slideDistance = rememberSlideDistance()
Navigator(
screen = initialScreen,