Add a settings screen.
This commit is contained in:
parent
90bf11909f
commit
a6124cbe79
28 changed files with 668 additions and 63 deletions
|
|
@ -6,7 +6,6 @@ import androidx.activity.ComponentActivity
|
|||
import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.viewModels
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
|
|
@ -57,6 +56,7 @@ val LocalRollOverlay = compositionLocalOf<BlurredRollOverlayHostState> {
|
|||
@AndroidEntryPoint
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
||||
private val themeViewModel: ThemeViewModel by viewModels()
|
||||
private val launcherViewModel: LauncherViewModel by viewModels()
|
||||
private val rollViewModel: RollOverlayViewModel by viewModels()
|
||||
|
||||
|
|
@ -72,16 +72,18 @@ class MainActivity : ComponentActivity() {
|
|||
}
|
||||
|
||||
setContent {
|
||||
LexiconTheme {
|
||||
val snack = remember { SnackbarHostState() }
|
||||
val overlay = rememberBlurredRollOverlayHostState(
|
||||
viewModel = rollViewModel,
|
||||
)
|
||||
val snack = remember { SnackbarHostState() }
|
||||
val overlay = rememberBlurredRollOverlayHostState(
|
||||
viewModel = rollViewModel,
|
||||
)
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalActivity provides this,
|
||||
LocalSnack provides snack,
|
||||
LocalRollOverlay provides overlay,
|
||||
CompositionLocalProvider(
|
||||
LocalActivity provides this,
|
||||
LocalSnack provides snack,
|
||||
LocalRollOverlay provides overlay,
|
||||
) {
|
||||
LexiconTheme(
|
||||
isDarkTheme = themeViewModel.useDarkTheme.value
|
||||
) {
|
||||
Scaffold(
|
||||
contentWindowInsets = NO_WINDOW_INSETS,
|
||||
|
|
@ -106,7 +108,7 @@ class MainActivity : ComponentActivity() {
|
|||
}
|
||||
},
|
||||
snackbarHost = {
|
||||
val isDarkTheme = isSystemInDarkTheme()
|
||||
val isDarkTheme = themeViewModel.useDarkTheme.value
|
||||
val elevation = remember {
|
||||
derivedStateOf { if (isDarkTheme) 2.dp else 0.dp }
|
||||
}
|
||||
|
|
@ -145,15 +147,17 @@ class MainActivity : ComponentActivity() {
|
|||
}
|
||||
}
|
||||
)
|
||||
BackHandler(enabled = overlay.isOverlayVisible) {
|
||||
overlay.hideOverlay()
|
||||
}
|
||||
}
|
||||
|
||||
HandleFetchError(
|
||||
snack = snack,
|
||||
errors = launcherViewModel.error,
|
||||
)
|
||||
BackHandler(
|
||||
enabled = overlay.isOverlayVisible,
|
||||
onBack = { overlay.hideOverlay() },
|
||||
)
|
||||
|
||||
HandleFetchError(
|
||||
snack = snack,
|
||||
errors = launcherViewModel.error,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue