diff --git a/app/src/main/java/ru/megboyzz/studentq/MainActivity.kt b/app/src/main/java/ru/megboyzz/studentq/MainActivity.kt index a74689f..faa3c6a 100644 --- a/app/src/main/java/ru/megboyzz/studentq/MainActivity.kt +++ b/app/src/main/java/ru/megboyzz/studentq/MainActivity.kt @@ -13,8 +13,10 @@ import androidx.compose.material.Surface import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.Dp import com.vk.api.sdk.VK import com.vk.api.sdk.VKApiCallback @@ -44,6 +46,9 @@ fun Dp.SpacerWidth() = Spacer(Modifier.width(this)) @Composable fun Dp.SpacerHeight() = Spacer(Modifier.height(this)) +@Composable +fun Int.AsImageVector() = ImageVector.vectorResource(this) + class MainActivity : ComponentActivity() { diff --git a/app/src/main/java/ru/megboyzz/studentq/navigation/AppNavHost.kt b/app/src/main/java/ru/megboyzz/studentq/navigation/AppNavHost.kt index 5232af2..de21cc8 100644 --- a/app/src/main/java/ru/megboyzz/studentq/navigation/AppNavHost.kt +++ b/app/src/main/java/ru/megboyzz/studentq/navigation/AppNavHost.kt @@ -7,6 +7,9 @@ import androidx.navigation.compose.rememberNavController import ru.megboyzz.studentq.screens.* sealed class AppNavRoute(val route: String){ + + object Splash : AppNavRoute("splash_screen") + object Auth: AppNavRoute("auth_screen") object Queues: AppNavRoute("all_queues_screen") object Queue: AppNavRoute("in_queue_screen") @@ -19,8 +22,9 @@ fun AppNavHost(){ val navController = rememberNavController() NavHost( navController = navController, - startDestination = AppNavRoute.Auth.route + startDestination = AppNavRoute.Splash.route ){ + composable(AppNavRoute.Splash.route) { SplashScreen(navController) } composable(AppNavRoute.Auth.route) { Auth(navController) } composable(AppNavRoute.Queues.route) { Queues(navController) } composable(AppNavRoute.Queue.route) { Queue(navController) } diff --git a/app/src/main/java/ru/megboyzz/studentq/screens/Splash.kt b/app/src/main/java/ru/megboyzz/studentq/screens/Splash.kt new file mode 100644 index 0000000..6813325 --- /dev/null +++ b/app/src/main/java/ru/megboyzz/studentq/screens/Splash.kt @@ -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 + ) + } +} \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml deleted file mode 100644 index f8c6127..0000000 --- a/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF - \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index c2a7473..05babe3 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -2,6 +2,6 @@ \ No newline at end of file