Rework the data update throughout the app.
This commit is contained in:
parent
cbe945d7f5
commit
b36cb9b601
19 changed files with 323 additions and 121 deletions
|
|
@ -5,6 +5,7 @@ import android.os.Bundle
|
|||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.viewModels
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
|
|
@ -15,6 +16,7 @@ import androidx.compose.material3.SnackbarHost
|
|||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
|
|
@ -22,6 +24,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.pixelized.rplexicon.ui.composable.BlurredOverlayHost
|
||||
import com.pixelized.rplexicon.ui.navigation.ScreenNavHost
|
||||
import com.pixelized.rplexicon.ui.screens.rolls.BlurredRollOverlayHostState
|
||||
|
|
@ -45,6 +48,9 @@ val NO_WINDOW_INSETS = WindowInsets(0, 0, 0, 0)
|
|||
@AndroidEntryPoint
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
||||
private val launcherViewModel: LauncherViewModel by viewModels()
|
||||
private val rollViewModel: RollOverlayViewModel by viewModels()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
|
|
@ -53,19 +59,19 @@ class MainActivity : ComponentActivity() {
|
|||
|
||||
// splashscreen management
|
||||
installSplashScreen().apply {
|
||||
setKeepOnScreenCondition { false }
|
||||
setKeepOnScreenCondition { launcherViewModel.isLoading }
|
||||
}
|
||||
|
||||
setContent {
|
||||
LexiconTheme {
|
||||
val rollViewModel = hiltViewModel<RollOverlayViewModel>()
|
||||
val snack = remember { SnackbarHostState() }
|
||||
val overlay = rememberBlurredRollOverlayHostState(
|
||||
viewModel = rollViewModel,
|
||||
)
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalActivity provides this,
|
||||
LocalSnack provides remember { SnackbarHostState() },
|
||||
LocalSnack provides snack,
|
||||
LocalRollOverlay provides overlay,
|
||||
) {
|
||||
Scaffold(
|
||||
|
|
@ -101,6 +107,12 @@ class MainActivity : ComponentActivity() {
|
|||
overlay.hideOverlay()
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(key1 = "LauncherError") {
|
||||
launcherViewModel.error.collect {
|
||||
snack.showSnackbar(message = it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue