Change viewmodel instanciation.
This commit is contained in:
parent
b28df77d19
commit
a2447e2376
5 changed files with 28 additions and 26 deletions
5
.idea/misc.xml
generated
5
.idea/misc.xml
generated
|
|
@ -83,6 +83,11 @@
|
|||
<entry key="../../../../../layout/compose-model-1620402873003.xml" value="0.28125" />
|
||||
<entry key="../../../../../layout/compose-model-1620403048637.xml" value="0.28125" />
|
||||
<entry key="../../../../../layout/compose-model-1620403067126.xml" value="0.23514851485148514" />
|
||||
<entry key="../../../../../layout/compose-model-1620403347942.xml" value="0.28125" />
|
||||
<entry key="../../../../../layout/compose-model-1620403349332.xml" value="0.28125" />
|
||||
<entry key="../../../../../layout/compose-model-1620403526292.xml" value="0.16300675675675674" />
|
||||
<entry key="../../../../../layout/compose-model-1620403554223.xml" value="0.23514851485148514" />
|
||||
<entry key="../../../../../layout/compose-model-1620403674440.xml" value="0.2962962962962963" />
|
||||
<entry key="app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.2898148148148148" />
|
||||
<entry key="app/src/main/res/drawable/ic_baseline_local_library_24.xml" value="0.25462962962962965" />
|
||||
<entry key="app/src/main/res/drawable/ic_google.xml" value="0.2962962962962963" />
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import androidx.compose.animation.core.tween
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.livedata.observeAsState
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.pixelized.biblib.ui.composable.screen.LoginScreenComposable
|
||||
import com.pixelized.biblib.ui.composable.screen.MainScreenComposable
|
||||
import com.pixelized.biblib.ui.composable.screen.SplashScreenComposable
|
||||
|
|
@ -20,7 +21,6 @@ import com.pixelized.biblib.utils.BitmapCache
|
|||
|
||||
class MainActivity : ComponentActivity() {
|
||||
private val navigationViewModel: NavigationViewModel by viewModels()
|
||||
private val authenticationViewModel: AuthenticationViewModel by viewModels()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
|
@ -29,7 +29,7 @@ class MainActivity : ComponentActivity() {
|
|||
|
||||
setContent {
|
||||
BibLibTheme {
|
||||
ContentComposable(navigationViewModel, authenticationViewModel)
|
||||
ContentComposable()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -42,20 +42,15 @@ class MainActivity : ComponentActivity() {
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun ContentComposable(
|
||||
navigationViewModel: NavigationViewModel,
|
||||
authenticationViewModel: AuthenticationViewModel
|
||||
) {
|
||||
fun ContentComposable() {
|
||||
val navigationViewModel = viewModel<NavigationViewModel>()
|
||||
val main by navigationViewModel.screen.observeAsState()
|
||||
|
||||
Crossfade(targetState = main, animationSpec = tween(1000)) {
|
||||
Crossfade(targetState = main) {
|
||||
when (it) {
|
||||
is Screen.SplashScreen -> SplashScreenComposable(navigationViewModel)
|
||||
is Screen.MainScreen -> MainScreenComposable(navigationViewModel)
|
||||
is Screen.LoginScreen -> LoginScreenComposable(
|
||||
navigationViewModel = navigationViewModel,
|
||||
authenticationViewModel = authenticationViewModel
|
||||
)
|
||||
is Screen.SplashScreen -> SplashScreenComposable()
|
||||
is Screen.LoginScreen -> LoginScreenComposable()
|
||||
is Screen.MainScreen -> MainScreenComposable()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation
|
|||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.pixelized.biblib.R
|
||||
import com.pixelized.biblib.ui.theme.BibLibTheme
|
||||
import com.pixelized.biblib.ui.viewmodel.AuthenticationViewModel
|
||||
|
|
@ -36,17 +37,16 @@ import com.pixelized.biblib.ui.viewmodel.NavigationViewModel
|
|||
@Composable
|
||||
fun LoginScreenComposablePreview() {
|
||||
BibLibTheme {
|
||||
val navigationViewModel = NavigationViewModel()
|
||||
val authenticationViewModel = AuthenticationViewModel()
|
||||
LoginScreenComposable(navigationViewModel, authenticationViewModel)
|
||||
LoginScreenComposable()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun LoginScreenComposable(
|
||||
navigationViewModel: NavigationViewModel,
|
||||
authenticationViewModel: AuthenticationViewModel
|
||||
|
||||
) {
|
||||
val navigationViewModel = viewModel<NavigationViewModel>()
|
||||
val authenticationViewModel = viewModel<AuthenticationViewModel>()
|
||||
val typography = MaterialTheme.typography
|
||||
|
||||
Column(
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.pixelized.biblib.ui.composable.screen
|
|||
|
||||
import androidx.compose.animation.Crossfade
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.sharp.ArrowBack
|
||||
|
|
@ -13,6 +12,7 @@ import androidx.compose.runtime.getValue
|
|||
import androidx.compose.runtime.livedata.observeAsState
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.pixelized.biblib.R
|
||||
import com.pixelized.biblib.ui.composable.pages.DetailPageComposable
|
||||
import com.pixelized.biblib.ui.composable.pages.HomePageComposable
|
||||
|
|
@ -41,14 +41,14 @@ fun ToolbarComposableLightPreview() {
|
|||
@Preview
|
||||
@Composable
|
||||
fun MainScreenComposablePreview() {
|
||||
val viewModel = NavigationViewModel()
|
||||
BibLibTheme {
|
||||
MainScreenComposable(navigationViewModel = viewModel)
|
||||
MainScreenComposable()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainScreenComposable(navigationViewModel: NavigationViewModel) {
|
||||
fun MainScreenComposable() {
|
||||
val navigationViewModel = viewModel<NavigationViewModel>()
|
||||
val page by navigationViewModel.page.observeAsState()
|
||||
|
||||
LaunchedEffect(key1 = "MainScreen", block = {
|
||||
|
|
@ -58,7 +58,7 @@ fun MainScreenComposable(navigationViewModel: NavigationViewModel) {
|
|||
Scaffold(
|
||||
topBar = { ToolbarComposable(navigationViewModel) },
|
||||
) {
|
||||
Crossfade(targetState = page, animationSpec = tween(1000)) {
|
||||
Crossfade(targetState = page) {
|
||||
when (it) {
|
||||
is Page.HomePage -> HomePageComposable(navigationViewModel)
|
||||
is Page.Detail -> DetailPageComposable(it.book)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.pixelized.biblib.ui.theme.BibLibTheme
|
||||
import com.pixelized.biblib.ui.viewmodel.NavigationViewModel
|
||||
import kotlinx.coroutines.*
|
||||
|
|
@ -19,15 +20,16 @@ import kotlinx.coroutines.*
|
|||
@Preview
|
||||
@Composable
|
||||
fun SplashScreenComposablePreview() {
|
||||
val viewModel = NavigationViewModel()
|
||||
BibLibTheme {
|
||||
SplashScreenComposable(viewModel)
|
||||
SplashScreenComposable()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun SplashScreenComposable(navigationViewModel: NavigationViewModel) {
|
||||
fun SplashScreenComposable() {
|
||||
val navigationViewModel = viewModel<NavigationViewModel>()
|
||||
val typography = MaterialTheme.typography
|
||||
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue