Biblib/app/src/main/java/com/pixelized/biblib/ui/MainActivity.kt
Thomas Andres Gomez 1a225e3732 Initial commit.
2021-05-07 10:01:00 +02:00

54 lines
1.8 KiB
Kotlin

package com.pixelized.biblib.ui
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.viewModels
import androidx.compose.animation.Crossfade
import androidx.compose.animation.core.tween
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import com.pixelized.biblib.ui.theme.BibLibTheme
import com.pixelized.biblib.ui.viewmodel.NavigationViewModel
import com.pixelized.biblib.ui.viewmodel.NavigationViewModel.Screen
import com.pixelized.biblib.ui.composable.screen.SplashScreenComposable
import com.pixelized.biblib.ui.composable.screen.MainScreenComposable
import com.pixelized.biblib.utils.BitmapCache
class MainActivity : ComponentActivity() {
private val navigationViewModel: NavigationViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
BitmapCache.init(this)
setContent {
BibLibTheme {
ContentComposable(navigationViewModel)
}
}
}
override fun onBackPressed() {
if (navigationViewModel.navigateBack().not()) {
super.onBackPressed()
}
}
}
@Composable
fun ContentComposable(navigationViewModel: NavigationViewModel) {
val main by navigationViewModel.screen.observeAsState()
Crossfade(targetState = main, animationSpec = tween(1000)) {
when (it) {
is Screen.SplashScreen -> SplashScreenComposable(navigationViewModel)
is Screen.MainScreen -> MainScreenComposable(navigationViewModel)
}
}
}