Add splashScreen
This commit is contained in:
@@ -13,8 +13,10 @@ import androidx.compose.material.Surface
|
|||||||
import androidx.compose.material.Text
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.res.vectorResource
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import com.vk.api.sdk.VK
|
import com.vk.api.sdk.VK
|
||||||
import com.vk.api.sdk.VKApiCallback
|
import com.vk.api.sdk.VKApiCallback
|
||||||
@@ -44,6 +46,9 @@ fun Dp.SpacerWidth() = Spacer(Modifier.width(this))
|
|||||||
@Composable
|
@Composable
|
||||||
fun Dp.SpacerHeight() = Spacer(Modifier.height(this))
|
fun Dp.SpacerHeight() = Spacer(Modifier.height(this))
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun Int.AsImageVector() = ImageVector.vectorResource(this)
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : ComponentActivity() {
|
class MainActivity : ComponentActivity() {
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ import androidx.navigation.compose.rememberNavController
|
|||||||
import ru.megboyzz.studentq.screens.*
|
import ru.megboyzz.studentq.screens.*
|
||||||
|
|
||||||
sealed class AppNavRoute(val route: String){
|
sealed class AppNavRoute(val route: String){
|
||||||
|
|
||||||
|
object Splash : AppNavRoute("splash_screen")
|
||||||
|
|
||||||
object Auth: AppNavRoute("auth_screen")
|
object Auth: AppNavRoute("auth_screen")
|
||||||
object Queues: AppNavRoute("all_queues_screen")
|
object Queues: AppNavRoute("all_queues_screen")
|
||||||
object Queue: AppNavRoute("in_queue_screen")
|
object Queue: AppNavRoute("in_queue_screen")
|
||||||
@@ -19,8 +22,9 @@ fun AppNavHost(){
|
|||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
NavHost(
|
NavHost(
|
||||||
navController = navController,
|
navController = navController,
|
||||||
startDestination = AppNavRoute.Auth.route
|
startDestination = AppNavRoute.Splash.route
|
||||||
){
|
){
|
||||||
|
composable(AppNavRoute.Splash.route) { SplashScreen(navController) }
|
||||||
composable(AppNavRoute.Auth.route) { Auth(navController) }
|
composable(AppNavRoute.Auth.route) { Auth(navController) }
|
||||||
composable(AppNavRoute.Queues.route) { Queues(navController) }
|
composable(AppNavRoute.Queues.route) { Queues(navController) }
|
||||||
composable(AppNavRoute.Queue.route) { Queue(navController) }
|
composable(AppNavRoute.Queue.route) { Queue(navController) }
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
package ru.megboyzz.studentq.screens
|
||||||
|
|
||||||
|
import androidx.compose.animation.core.animateFloatAsState
|
||||||
|
import androidx.compose.animation.core.tween
|
||||||
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
|
import androidx.compose.material.Icon
|
||||||
|
import androidx.compose.material.MaterialTheme
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.Email
|
||||||
|
import androidx.compose.runtime.*
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.navigation.NavHostController
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
import ru.megboyzz.studentq.AsImageVector
|
||||||
|
import ru.megboyzz.studentq.AsPainter
|
||||||
|
import ru.megboyzz.studentq.R
|
||||||
|
import ru.megboyzz.studentq.navigation.AppNavRoute
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun SplashScreen(navHostController: NavHostController){
|
||||||
|
var startAnimation by remember { mutableStateOf(false) }
|
||||||
|
val alphaAnim = animateFloatAsState(
|
||||||
|
targetValue = if (startAnimation) 1f else 0f,
|
||||||
|
animationSpec = tween(
|
||||||
|
durationMillis = 1000
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
LaunchedEffect(key1 = true) {
|
||||||
|
startAnimation = true
|
||||||
|
delay(1000)
|
||||||
|
navHostController.popBackStack()
|
||||||
|
navHostController.navigate(AppNavRoute.Auth.route)
|
||||||
|
}
|
||||||
|
Splash(alpha = alphaAnim.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun Splash(alpha: Float) {
|
||||||
|
Box(
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
contentAlignment = Alignment.Center
|
||||||
|
) {
|
||||||
|
Icon(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(120.dp)
|
||||||
|
.alpha(alpha = alpha),
|
||||||
|
imageVector = R.drawable.icon.AsImageVector(),
|
||||||
|
contentDescription = "Logo Icon",
|
||||||
|
tint = Color.White
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
<color name="purple_200">#FFBB86FC</color>
|
|
||||||
<color name="purple_500">#FF6200EE</color>
|
|
||||||
<color name="purple_700">#FF3700B3</color>
|
|
||||||
<color name="teal_200">#FF03DAC5</color>
|
|
||||||
<color name="teal_700">#FF018786</color>
|
|
||||||
<color name="black">#FF000000</color>
|
|
||||||
<color name="white">#FFFFFFFF</color>
|
|
||||||
</resources>
|
|
||||||
@@ -2,6 +2,6 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<style name="Theme.Studentq" parent="android:Theme.Material.Light.NoActionBar">
|
<style name="Theme.Studentq" parent="android:Theme.Material.Light.NoActionBar">
|
||||||
<item name="android:statusBarColor">@color/purple_700</item>
|
<item name="android:statusBarColor">#CCE6195E</item>
|
||||||
</style>
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user