54 lines
1.8 KiB
Kotlin
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)
|
|
}
|
|
}
|
|
}
|
|
|