Загрузка данных


package com.example.quiz

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.safeDrawingPadding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.darkColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController

private object Routes {
    const val HOME = "home"
    const val STATS = "stats"
    const val GAME = "game"
}

private val QuizColors = darkColorScheme(
    primary = Color(0xFF9FB4C7),
    onPrimary = Color(0xFF1E1F22),
    background = Color(0xFF1E1F22),
    onBackground = Color(0xFFE6E6E6),
    surface = Color(0xFF26272B),
    onSurface = Color(0xFFE6E6E6),
    outline = Color(0xFF6B6F76)
)

@Composable
fun AppNavigation() {
    val context = LocalContext.current
    remember { QuizStats.init(context) }

    val navController = rememberNavController()

    MaterialTheme(
        colorScheme = QuizColors,
        typography = MaterialTheme.typography
    ) {
        Surface(
            modifier = Modifier.fillMaxSize(),
            color = MaterialTheme.colorScheme.background
        ) {
            Box(
                modifier = Modifier
                    .fillMaxSize()
                    .safeDrawingPadding()
            ) {
                NavHost(
                    navController = navController,
                    startDestination = Routes.HOME
                ) {
                    composable(Routes.HOME) {
                        HomeScreen(
                            onOpenStats = { navController.navigate(Routes.STATS) },
                            onStartGame = { navController.navigate(Routes.GAME) }
                        )
                    }

                    composable(Routes.STATS) {
                        StatsScreen(onBack = { navController.popBackStack() })
                    }

                    composable(Routes.GAME) {
                        GameScreen(onBack = { navController.popBackStack() })
                    }
                }
            }
        }
    }
}