fix(#23): wire AppTheme preference in MainActivity
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user