From 3a01eaa1b7aaeadc43a90eaa283502f0c863496c Mon Sep 17 00:00:00 2001 From: "louis.guichard-montguers" Date: Mon, 17 Feb 2025 20:03:40 +0100 Subject: [PATCH] ajoout QuizAccueil --- .../example/what_the_fantasy/MainActivity.kt | 6 +- .../ui/screens/QuizAccueil.kt | 136 ++++++++++++++++++ .../what_the_fantasy/ui/screens/QuizPage.kt | 21 ++- .../app/src/main/res/drawable/quiz.jpg | Bin 0 -> 13644 bytes 4 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizAccueil.kt create mode 100644 What_The_Fantasy/app/src/main/res/drawable/quiz.jpg diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/MainActivity.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/MainActivity.kt index 45b0771..cc76997 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/MainActivity.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/MainActivity.kt @@ -11,10 +11,13 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.navigation.compose.rememberNavController import com.example.what_the_fantasy.ui.screens.AppNavigator import com.example.what_the_fantasy.ui.theme.What_The_FantasyTheme import com.example.what_the_fantasy.ui.screens.LoginPage import com.example.what_the_fantasy.ui.screens.ProfilPage +import com.example.what_the_fantasy.ui.screens.QuizAccueil +import com.example.what_the_fantasy.ui.screens.QuizApp import com.example.what_the_fantasy.ui.screens.QuizPage class MainActivity : ComponentActivity() { @@ -31,9 +34,10 @@ class MainActivity : ComponentActivity() { ) } } + //AppNavigator() // Accès à la page login et SingUp (pour le moment) //ProfilPage() //Accès à la page profil - QuizPage() + QuizApp() } } } diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizAccueil.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizAccueil.kt new file mode 100644 index 0000000..f9f7e9c --- /dev/null +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizAccueil.kt @@ -0,0 +1,136 @@ +package com.example.what_the_fantasy.ui.screens + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import com.example.what_the_fantasy.R + + +@Composable +fun QuizAccueil(navController: NavController) { + Row( + modifier = Modifier + .fillMaxSize() + .background(Color(0xFF100C1B)) + .padding(top = 100.dp) + ) { + Spacer(modifier = Modifier.weight(0.1f)) + + Column( + modifier = Modifier + .weight(0.9f) + .fillMaxHeight(), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Box( + modifier = Modifier + .size(width = 150.dp, height = 100.dp) + .padding(8.dp) + .clickable { + navController.navigate("quizPage") + } + ) { + Image( + painter = painterResource(id = R.drawable.quiz), + contentDescription = "Quiz 1", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + + Box( + modifier = Modifier + .size(width = 150.dp, height = 100.dp) + .padding(8.dp) + .clickable { + + navController.navigate("quizPage") + } + ) { + Image( + painter = painterResource(id = R.drawable.quiz), + contentDescription = "Quiz 2", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + } + + Spacer(modifier = Modifier.width(10.dp)) + + Column( + modifier = Modifier + .weight(0.9f) + .fillMaxHeight(), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Box( + modifier = Modifier + .size(width = 150.dp, height = 100.dp) + .padding(8.dp) + .clickable { + navController.navigate("quizPage") + } + ) { + Image( + painter = painterResource(id = R.drawable.quiz), + contentDescription = "Quiz 3", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + + Box( + modifier = Modifier + .size(width = 150.dp, height = 100.dp) + .padding(8.dp) + .clickable { + navController.navigate("quizPage") + } + ) { + Image( + painter = painterResource(id = R.drawable.quiz), + contentDescription = "Quiz 4", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + } + + Spacer(modifier = Modifier.weight(0.1f)) + } +} + +@Composable +fun QuizApp() { + val navController = rememberNavController() + + NavHost(navController = navController, startDestination = "quizAccueil") { + composable("quizAccueil") { + QuizAccueil(navController = navController) + } + composable("quizPage") { + QuizPage(navController = navController) + } + } +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizPage.kt index 2970bd2..8eee9c3 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizPage.kt @@ -14,9 +14,13 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material3.Button import androidx.compose.material3.ButtonColors import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -31,6 +35,7 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.navigation.NavController import com.example.what_the_fantasy.data.local.QuestionStub import com.example.what_the_fantasy.data.model.Question @@ -39,7 +44,7 @@ val questions = QuestionStub.allQuestions var pts = 0 @Composable -fun QuizPage() { +fun QuizPage(navController: NavController) { var idCurrentQuestion by remember { mutableIntStateOf(0) } fun goNext(correctAns: String, ans: String) { if (correctAns == "A") { @@ -68,6 +73,20 @@ fun QuizPage() { .background(Color(0xFF100C1B)) // Fond global de l'écran .padding(16.dp) // Marges autour de tout le contenu ) { + IconButton( + onClick = { + navController.popBackStack() // Revenir à la page précédente (QuizAccueil) + }, + modifier = Modifier + .align(Alignment.TopStart) + ) { + Icon( + imageVector = Icons.Default.ArrowBack, // Flèche de retour + contentDescription = "Retour", + tint = Color.White + ) + } + // Numéro de la question en haut Text( text = "Question numéro : " + questions[idCurrentQuestion].id.toString(), diff --git a/What_The_Fantasy/app/src/main/res/drawable/quiz.jpg b/What_The_Fantasy/app/src/main/res/drawable/quiz.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0bcef9fef19346165fa1fc927c32b73f58f5e7c GIT binary patch literal 13644 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