diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/UserStub.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/UserStub.kt index e166cd4..d5250eb 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/UserStub.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/local/UserStub.kt @@ -4,7 +4,7 @@ import com.example.what_the_fantasy.data.model.User object UserStub { //LE MOT DE PASSE POUR TOUS LES UTILISATEURS EST : 1234 - val users: MutableList = mutableListOf( + val users: MutableList = mutableListOf( User(1, "Aragorn123", "aragorn@example.com", "2022-01-15", "https://img.freepik.com/vecteurs-libre/personnage-guerrier-fantaisie_1045-185.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"), //1234 User(2, "Legolas456", "legolas@example.com", "2021-05-23", "https://img.freepik.com/vecteurs-libre/personnage-elfe-fantaisie_1045-186.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"),//1234 User(3, "Gandalf789", "gandalf@example.com", "2020-09-10", "https://img.freepik.com/vecteurs-libre/personnage-magicien-fantaisie_1045-187.jpg?size=338&ext=jpg", "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"),//1234 diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/User.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/User.kt index febe20d..811561b 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/User.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/model/User.kt @@ -7,4 +7,4 @@ class User( var date:String, val imgUrl: String, var password: String -) +) \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/services/ServicesStub.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/services/ServicesStub.kt index c6c3ed1..f87ede9 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/services/ServicesStub.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/data/services/ServicesStub.kt @@ -61,7 +61,7 @@ class ServicesStub : IServices { override fun getAllUsers(): List = users override fun getUserById(id: Int): User? { - return (users.find { it.id == id+1 }) + return (users.find { it.id == id+1 }) } override fun SearchQuote(quote: String) { @@ -73,7 +73,7 @@ class ServicesStub : IServices { } -//------------------------------------------------------ + //------------------------------------------------------ @SuppressLint("NewApi") fun dateDuJour(): String { val date = LocalDate.now() diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/NavBar.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/NavBar.kt index dedbd00..49cc408 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/NavBar.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/NavBar.kt @@ -1,4 +1,161 @@ package com.example.what_the_fantasy.ui.components -class NavBar { -} \ No newline at end of file +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column + +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.* +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.IconButtonColors +import androidx.compose.material3.Text +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.graphics.painter.Painter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.what_the_fantasy.R +import com.example.what_the_fantasy.data.services.IServices +import com.example.what_the_fantasy.ui.theme.* + +@Composable +fun NavBar(onProfile : Boolean = false , + onFavorite : Boolean = false , + onAccueil : Boolean = false , + onQuiz : Boolean = false , + index:Int, + navControllerProfil: (Int) -> Unit, + navControllerFavorite:(Int) -> Unit, + navControllerAccueil: (Int) -> Unit, + navControllerQuiz: (Int) -> Unit, + + + content : @Composable ()-> Unit ) { + + Column( + modifier = Modifier + .fillMaxSize() + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .height(70.dp) + .background(colorNavBar), + Arrangement.SpaceBetween, + verticalAlignment = Alignment.Bottom + ) { + ButtonIconVectorInt(Icons.Rounded.AccountCircle,"Profile",navControllerProfil,index,onProfile) + + + Button(onClick = {}, + colors = ButtonDefaults.buttonColors(containerColor = Color.Transparent) + ) { + Image( + painter = painterResource(id = R.drawable.toggle), + contentDescription = "Theme" + ) + } + + } + + Box(modifier = Modifier.background(Color.Black).fillMaxHeight(0.92f)){ + content() + } + + Row(modifier = Modifier + .background(colorNavBar) + .fillMaxSize(), + horizontalArrangement = Arrangement.SpaceAround, + verticalAlignment = Alignment.CenterVertically + ) { + + ButtonIconVectorInt(Icons.Rounded.Favorite,"Favorite",navControllerFavorite,index,onFavorite) + + ButtonIconPainterInt(painterResource(R.mipmap.ic_launcher_foreground),"Accueil",navControllerAccueil,index,onAccueil) + + ButtonIconVectorInt(Icons.Rounded.Create,"Quiz",navControllerQuiz,index,onQuiz) + } + } +} +@Composable +fun ButtonIconVector(img : ImageVector, name : String, nav : ()->Unit ,onPage : Boolean){ + IconButton(onClick = {nav()}, + enabled = !onPage, + colors = IconButtonColors(Color.Transparent,Color.White,//couleur quand il n'est pas selectionné + Color.Transparent, colorButtonNav),//couleur quand il est selectionné + modifier = Modifier + .size(60.dp) + ) { + Icon(img, + contentDescription = name, + modifier = Modifier + .size(60.dp) + ) + } +} +@Composable +fun ButtonIconVectorInt(img : ImageVector, name : String, nav : (Int)->Unit ,index: Int,onPage : Boolean){ + IconButton(onClick = {nav(index)}, + enabled = !onPage, + colors = IconButtonColors(Color.Transparent,Color.White,//couleur quand il n'est pas selectionné + Color.Transparent, colorButtonNav),//couleur quand il est selectionné + modifier = Modifier + .size(60.dp) + ) { + Icon(img, + contentDescription = name, + modifier = Modifier + .size(60.dp) + ) + } +} + + +@Composable +fun ButtonIconPainter(img : Painter, name : String, nav : ()->Unit,onPage : Boolean){ + IconButton(onClick = {nav()}, + enabled = !onPage, + colors = IconButtonColors(Color.Transparent,Color.White,//couleur quand il n'est pas selectionné + Color.Transparent, colorButtonNav),//couleur quand il est selectionné + modifier = Modifier + .size(60.dp) + ) { + Icon(img, + contentDescription = name, + modifier = Modifier + .size(60.dp) + ) + } +} +@Composable +fun ButtonIconPainterInt(img : Painter, name : String, nav : (Int)->Unit,index: Int,onPage : Boolean){ + IconButton(onClick = {nav(index)}, + enabled = !onPage, + colors = IconButtonColors(Color.Transparent,Color.White,//couleur quand il n'est pas selectionné + Color.Transparent, colorButtonNav),//couleur quand il est selectionné + modifier = Modifier + .size(60.dp) + ) { + Icon(img, + contentDescription = name, + modifier = Modifier + .size(60.dp) + ) + } +} + diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/hasPassword.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/hasPassword.kt new file mode 100644 index 0000000..2f46a9d --- /dev/null +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/components/hasPassword.kt @@ -0,0 +1,14 @@ +package com.example.what_the_fantasy.ui.components + +import java.security.MessageDigest + +fun hashPassword(password: String): String { + // SHA-256 + val digest = MessageDigest.getInstance("SHA-256") + + // Convertir mdp en bytes et appliquer le hash + val hashedBytes = digest.digest(password.toByteArray()) + + // Convertir le tableau de bytes en une chaîne hexadécimale + return hashedBytes.joinToString("") { "%02x".format(it) } +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/navigations/AppNavigator.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/navigations/AppNavigator.kt index e68c8d3..e331f2c 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/navigations/AppNavigator.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/navigations/AppNavigator.kt @@ -18,45 +18,105 @@ import com.example.what_the_fantasy.ui.screens.SignUpPage import com.example.what_the_fantasy.ui.screens.SubmitQuotePage - sealed class Destination(val route: String) { data object Login : Destination("Login") - data object Accueil : Destination("Accueil") - data object Favorite : Destination("Favorite") + data object Accueil : Destination("Accueil/{userIndex}") { // Ajout du paramètre userIndex + fun createRoute(userIndex: Int) = "Accueil/$userIndex" // Fonction pour créer la route avec l'index + } + data object Favorite : Destination("Favorite/{userIndex}") { // Ajout du paramètre userIndex + fun createRoute(userIndex: Int) = "Favorite/$userIndex" // Fonction pour créer la route avec l'index + } data object Profil : Destination("Profil/{userIndex}") { // Ajout du paramètre userIndex fun createRoute(userIndex: Int) = "Profil/$userIndex" // Fonction pour créer la route avec l'index } - data object QuizMenu : Destination("QuizMenu") + + data object Quote : Destination("Quote") + data object Search : Destination("Search") + data object SignUp : Destination("SignUp") + data object SubmitQuote : Destination("SubmitQuote") + + data object QuizMenu : Destination("QuizMenu/{userIndex}") { // Ajout du paramètre userIndex + fun createRoute(userIndex: Int) = "QuizMenu/$userIndex" // Fonction pour créer la route avec l'index + } data object Quiz : Destination("Quiz") data object QuizEnd : Destination("QuizEnd/{idQuiz}/{pts}") { // Ajout paramètres idQuiz et pts fun createIdAndPts(idQuiz : Int, pts : Int) = "QuizEnd/$idQuiz/$pts" } - data object Quote : Destination("Quote") - data object Search : Destination("Search") - data object SignUp : Destination("SignUp") - data object SubmitQuote : Destination("SubmitQuote") } @Composable fun AppNavigator() { val navController = rememberNavController() - val services = ServicesStub() // A changer si l'on veut passer au service API - NavHost(navController, startDestination = Destination.QuizMenu.route) { - composable(Destination.Login.route) { - LoginPage( - navControllerSignUp = { navController.navigate(Destination.SignUp.route) }, - navControllerProfil = { userIndex -> + val services = ServicesStub() + NavHost(navController, startDestination = Destination.Login.route) { + composable(Destination.Login.route) { LoginPage( + navControllerSignUp = { navController.navigate(Destination.SignUp.route) }, + navControllerProfil = { userIndex -> + navController.navigate(Destination.Profil.createRoute(userIndex)) // Passe l'index à Profil + }, + services + ) } + composable(Destination.Accueil.route) { + val userIndex = it.arguments?.getString("userIndex")?.toInt() ?: -1 + AccueilPage( + index = userIndex, + navFavorite = { userIndex -> + navController.navigate(Destination.Favorite.createRoute(userIndex)) // Passe l'index à Profil + }, + navQuiz = { userIndex -> + navController.navigate(Destination.QuizMenu.createRoute(userIndex)) // Passe l'index à Profil + }, + navProfil = { userIndex -> navController.navigate(Destination.Profil.createRoute(userIndex)) // Passe l'index à Profil + } + ) } + composable(Destination.Favorite.route) { + val userIndex = it.arguments?.getString("userIndex")?.toInt() ?: -1 + FavoritePage( + index = userIndex, + navAccueil ={ userIndex -> + navController.navigate(Destination.Accueil.createRoute(userIndex)) // Passe l'index à Profil + }, + navQuiz = { userIndex -> + navController.navigate(Destination.QuizMenu.createRoute(userIndex)) // Passe l'index à Profil }, - services + navProfil = { userIndex -> + navController.navigate(Destination.Profil.createRoute(userIndex)) // Passe l'index à Profil + } + ) } + composable(Destination.Profil.route) { + // Récupère l'index passé dans la route + val userIndex = it.arguments?.getString("userIndex")?.toInt() ?: -1 + ProfilPage( + index = userIndex, + navFavorite = { userIndex -> + navController.navigate(Destination.Favorite.createRoute(userIndex)) // Passe l'index à Profil + }, + navAccueil ={ userIndex -> + navController.navigate(Destination.Accueil.createRoute(userIndex)) // Passe l'index à Profil + }, + navQuiz = { userIndex -> + navController.navigate(Destination.QuizMenu.createRoute(userIndex)) // Passe l'index à Profil + }, + services = services ) } - composable(Destination.Accueil.route) { AccueilPage() } - composable(Destination.Favorite.route) { FavoritePage() } + composable(Destination.Quote.route) { QuotePage() } + composable(Destination.Search.route) { SearchPage() } + composable(Destination.SignUp.route) { SignUpPage(navController, services) } + composable(Destination.SubmitQuote.route) { SubmitQuotePage() } + composable(Destination.QuizMenu.route) { + val userIndex = it.arguments?.getString("userIndex")?.toInt() ?: -1 QuizMenu( - navControllerQuiz = { navController.navigate(Destination.Quiz.route) } + index = userIndex, + navAccueil = { navController.navigate(Destination.Accueil.route) }, + navFavorite = { navController.navigate(Destination.Favorite.route) }, + navControllerQuiz = { navController.navigate(Destination.Quiz.route) }, + navProfil = { userIndex -> + navController.navigate(Destination.Profil.createRoute(userIndex)) // Passe l'index à Profil + } ) } composable(Destination.Quiz.route) { @@ -76,14 +136,5 @@ fun AppNavigator() { navControllerQuizMenu = { navController.navigate(Destination.QuizMenu.route) } ) } - composable(Destination.Profil.route) { - // Récupère l'index passé dans la route - val userIndex = it.arguments?.getString("userIndex")?.toInt() ?: -1 - ProfilPage(index = userIndex, navController = navController, services) - } - composable(Destination.Quote.route) { QuotePage() } - composable(Destination.Search.route) { SearchPage() } - composable(Destination.SignUp.route) { SignUpPage(navController, services) } - composable(Destination.SubmitQuote.route) { SubmitQuotePage() } } } diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt index 8fd4c97..f56508f 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/AccueilPage.kt @@ -1,6 +1,42 @@ package com.example.what_the_fantasy.ui.screens +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.Text 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.unit.sp +import com.example.what_the_fantasy.data.services.IServices +import com.example.what_the_fantasy.ui.components.NavBar +import com.example.what_the_fantasy.ui.theme.colorBackground @Composable -fun AccueilPage() {} \ No newline at end of file +fun AccueilPage( + index: Int, + navFavorite:(Int) -> Unit, + navQuiz: (Int) -> Unit, + navProfil:(Int) -> Unit +) { + NavBar(onAccueil = true, + index = index, + navControllerFavorite = navFavorite, + navControllerAccueil = { }, + navControllerProfil = navProfil, + navControllerQuiz = navQuiz + ){ + Box( + modifier = Modifier + .fillMaxSize() + .background(colorBackground), + contentAlignment = Alignment.Center + ){ + Column { + Text("Accueil", color = Color.White, fontSize = 20.sp) + } + } + } +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt index 72c2e72..fc7f309 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/FavoritePage.kt @@ -1,6 +1,42 @@ package com.example.what_the_fantasy.ui.screens +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.Text 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.unit.sp +import com.example.what_the_fantasy.data.services.IServices +import com.example.what_the_fantasy.ui.components.NavBar +import com.example.what_the_fantasy.ui.theme.colorBackground @Composable -fun FavoritePage() {} \ No newline at end of file +fun FavoritePage( + index: Int, + navAccueil: (Int) -> Unit, + navQuiz: (Int) -> Unit, + navProfil:(Int) -> Unit +) { + NavBar(onFavorite = true, + index = index, + navControllerFavorite = { }, + navControllerAccueil = navAccueil, + navControllerProfil = navProfil, + navControllerQuiz = navQuiz + ) { + Box( + modifier = Modifier + .fillMaxSize() + .background(colorBackground), + contentAlignment = Alignment.Center + ){ + Column { + Text("Favorite", color = Color.White, fontSize = 20.sp) + } + } + } +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt index f4689c9..767b2ad 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/LoginPage.kt @@ -163,4 +163,4 @@ fun CreateAccountButton(titleResId : Int, size : Int, color : Color, navControll navController()// rediriger vers la page de création de compte } ) -} +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt index 54b17af..57a1fe5 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/ProfilPage.kt @@ -61,43 +61,56 @@ import coil.compose.AsyncImage import com.example.what_the_fantasy.R import com.example.what_the_fantasy.data.local.QuestionStub import com.example.what_the_fantasy.data.local.UserStub -//import com.example.what_the_fantasy.data.local.UserStub.users import com.example.what_the_fantasy.data.services.IServices +//import com.example.what_the_fantasy.data.local.UserStub.users import com.example.what_the_fantasy.data.services.ServicesStub import com.example.what_the_fantasy.ui.components.ErrorMessageProfileComponent +import com.example.what_the_fantasy.ui.components.NavBar import com.example.what_the_fantasy.ui.components.SpaceHeightComponent import com.example.what_the_fantasy.ui.components.TitlePageComponent import com.example.what_the_fantasy.ui.theme.What_The_FantasyTheme import com.example.what_the_fantasy.ui.theme.gradienBox @Composable -fun ProfilPage(index: Int, navController: NavController, services: IServices) { - +fun ProfilPage(index: Int, + navFavorite: (Int) -> Unit, + navAccueil: (Int) -> Unit, + navQuiz: (Int) -> Unit, + services: IServices +) { val user = services.getUserById(index) ?: return - Box( - modifier = Modifier - .fillMaxSize() - .background(Color(0xFF100C1B)), - contentAlignment = Alignment.Center + NavBar(onProfile = true, + index = index, + navControllerFavorite = navFavorite, + navControllerAccueil = navAccueil, + navControllerProfil = {}, + navControllerQuiz = navQuiz ) { - Column( + + Box( modifier = Modifier - .fillMaxWidth(0.9f) - .padding(20.dp) - .clip(RoundedCornerShape(16.dp)) - .background(gradienBox) - .padding(20.dp), - horizontalAlignment = Alignment.CenterHorizontally + .fillMaxSize() + .background(Color(0xFF100C1B)), + contentAlignment = Alignment.Center ) { - - // Titre - TitlePageComponent(R.string.titleProfile, 20, Color.White) - SpaceHeightComponent(16) - - // Image de profil - ImageProfil(user.imgUrl, 120) - SpaceHeightComponent(16) + Column( + modifier = Modifier + .fillMaxWidth(0.9f) + .padding(20.dp) + .clip(RoundedCornerShape(16.dp)) + .background(gradienBox) + .padding(20.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + + // Titre + TitlePageComponent(R.string.titleProfile, 20, Color.White) + SpaceHeightComponent(16) + + // Image de profil + ImageProfil(user.imgUrl, 120) + SpaceHeightComponent(16) EditUsername(user.username, index, services)// Édition du Username SpaceHeightComponent(16) @@ -108,13 +121,14 @@ fun ProfilPage(index: Int, navController: NavController, services: IServices) { EditPasswd(index, services) SpaceHeightComponent(16) - // Bouton - ButtonProfile(R.string.ButtonAddQuoteprofile,18, Color.Black, Color.White) - SpaceHeightComponent(16) - ButtonProfile(R.string.ButtonLanguageprofile,18, Color.Black, Color.White) - SpaceHeightComponent(16) - ButtonProfile(R.string.ButtonUnlogprofile, 18, Color.Black, Color.White) + // Bouton + ButtonProfile(R.string.ButtonAddQuoteprofile, 18, Color.Black, Color.White) + SpaceHeightComponent(16) + ButtonProfile(R.string.ButtonLanguageprofile, 18, Color.Black, Color.White) + SpaceHeightComponent(16) + ButtonProfile(R.string.ButtonUnlogprofile, 18, Color.Black, Color.White) + } } } } diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizEndPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizEndPage.kt index 3c40225..6b1d652 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizEndPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizEndPage.kt @@ -37,25 +37,25 @@ fun QuizEndPage(idQuiz: Int, points: Int, navControllerQuizMenu: () -> Unit) { Column( modifier = Modifier.fillMaxSize().background(Color(0xFF100C1B)) ) { - // Bandeau supérieur - Row( - modifier = Modifier - .fillMaxWidth() - .weight(0.1f) - .padding(20.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - Image( - painter = painterResource(id = R.drawable.profile_icon), - contentDescription = "Profil", - modifier = Modifier.size(50.dp) - ) - Image( - painter = painterResource(id = R.drawable.toggle), - contentDescription = "Profil" - ) - } +// // Bandeau supérieur +// Row( +// modifier = Modifier +// .fillMaxWidth() +// .weight(0.1f) +// .padding(20.dp), +// horizontalArrangement = Arrangement.SpaceBetween, +// verticalAlignment = Alignment.CenterVertically +// ) { +// Image( +// painter = painterResource(id = R.drawable.profile_icon), +// contentDescription = "Profil", +// modifier = Modifier.size(50.dp) +// ) +// Image( +// painter = painterResource(id = R.drawable.toggle), +// contentDescription = "Profil" +// ) +// } // Contenu principal Column( @@ -99,34 +99,34 @@ fun QuizEndPage(idQuiz: Int, points: Int, navControllerQuizMenu: () -> Unit) { } } - // Bandeau inférieur - Row( - modifier = Modifier - .fillMaxWidth() - .weight(0.1f) - .background(Color(0xFF300052)) - .padding(20.dp), - horizontalArrangement = Arrangement.SpaceAround, - verticalAlignment = Alignment.CenterVertically - ) { - // Bouton Likes - Image( - painter = painterResource(id = R.drawable.like_icon), - contentDescription = "Bouton", - modifier = Modifier.size(50.dp) - ) - // Bouton WhatTheFantasy - Image( - painter = painterResource(R.drawable.wf_logo), - contentDescription = "Menu Button", - Modifier.clickable { navControllerQuizMenu() } - ) - // Bouton Quiz - Image( - painter = painterResource(id = R.drawable.quiz_icon), - contentDescription = "Bouton", - modifier = Modifier.size(50.dp) - ) - } +// // Bandeau inférieur +// Row( +// modifier = Modifier +// .fillMaxWidth() +// .weight(0.1f) +// .background(Color(0xFF300052)) +// .padding(20.dp), +// horizontalArrangement = Arrangement.SpaceAround, +// verticalAlignment = Alignment.CenterVertically +// ) { +// // Bouton Likes +// Image( +// painter = painterResource(id = R.drawable.like_icon), +// contentDescription = "Bouton", +// modifier = Modifier.size(50.dp) +// ) +// // Bouton WhatTheFantasy +// Image( +// painter = painterResource(R.drawable.wf_logo), +// contentDescription = "Menu Button", +// Modifier.clickable { navControllerQuizMenu() } +// ) +// // Bouton Quiz +// Image( +// painter = painterResource(id = R.drawable.quiz_icon), +// contentDescription = "Bouton", +// modifier = Modifier.size(50.dp) +// ) +// } } -} +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizMenu.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizMenu.kt index 08225f0..7002a82 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizMenu.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuizMenu.kt @@ -20,17 +20,32 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import com.example.what_the_fantasy.R +import com.example.what_the_fantasy.data.services.IServices +import com.example.what_the_fantasy.ui.components.NavBar @Composable -fun QuizMenu(navControllerQuiz: () -> Unit) { - Row( - modifier = Modifier - .fillMaxSize() - .background(Color(0xFF100C1B)) - .padding(top = 100.dp) +fun QuizMenu( + index: Int, + navFavorite: (Int) -> Unit, + navAccueil: (Int) -> Unit, + navProfil:(Int) -> Unit, + navControllerQuiz: () -> Unit +) { + NavBar(onQuiz = true, + index = index, + navControllerFavorite = navFavorite, + navControllerAccueil = navAccueil, + navControllerProfil = navProfil, + navControllerQuiz = { } ) { - Spacer(modifier = Modifier.weight(0.1f)) + Row( + modifier = Modifier + .fillMaxSize() + .background(Color(0xFF100C1B)) + .padding(top = 100.dp) + ) { + Spacer(modifier = Modifier.weight(0.1f)) Column( modifier = Modifier @@ -38,80 +53,81 @@ fun QuizMenu(navControllerQuiz: () -> Unit) { .fillMaxHeight(), horizontalAlignment = Alignment.CenterHorizontally ) { - Box( - modifier = Modifier - .size(width = 150.dp, height = 100.dp) - .padding(8.dp) - .clickable { - navControllerQuiz() - } - ) { - 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 { + navControllerQuiz() + } + ) { + 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 { - navControllerQuiz() - } - ) { - Image( - painter = painterResource(id = R.drawable.quiz), - contentDescription = "Quiz 2", - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop - ) + Box( + modifier = Modifier + .size(width = 150.dp, height = 100.dp) + .padding(8.dp) + .clickable { + navControllerQuiz() + } + ) { + Image( + painter = painterResource(id = R.drawable.quiz), + contentDescription = "Quiz 2", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } } - } - Spacer(modifier = Modifier.width(10.dp)) + Spacer(modifier = Modifier.width(10.dp)) - Column( - modifier = Modifier - .weight(0.9f) - .fillMaxHeight(), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Box( + Column( modifier = Modifier - .size(width = 150.dp, height = 100.dp) - .padding(8.dp) - .clickable { - navControllerQuiz() - } + .weight(0.9f) + .fillMaxHeight(), + horizontalAlignment = Alignment.CenterHorizontally ) { - 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 { + navControllerQuiz() + } + ) { + 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 { - navControllerQuiz() - } - ) { - Image( - painter = painterResource(id = R.drawable.quiz), - contentDescription = "Quiz 4", - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop - ) + Box( + modifier = Modifier + .size(width = 150.dp, height = 100.dp) + .padding(8.dp) + .clickable { + navControllerQuiz() + } + ) { + Image( + painter = painterResource(id = R.drawable.quiz), + contentDescription = "Quiz 4", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } } - } - Spacer(modifier = Modifier.weight(0.1f)) + Spacer(modifier = Modifier.weight(0.1f)) + } } -} \ 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 721d37d..4d4ed93 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 @@ -26,7 +26,7 @@ import com.example.what_the_fantasy.data.local.QuestionStub fun QuizPage( navControllerQuizEnd: (Int, Int) -> Unit, navControllerQuizMenu: () -> Unit - ) { +) { val questions = QuestionStub.allQuestions var idCurrentQuestion by remember { mutableIntStateOf(0) } var pts by remember { mutableIntStateOf(0) } @@ -54,25 +54,25 @@ fun QuizPage( Column ( modifier = Modifier.fillMaxSize().background(Color(0xFF100C1B)) ) { - // Bandeau supérieur - Row( - modifier = Modifier - .fillMaxWidth() - .weight(0.1f) - //.background(Color(0xFF300052)) - .padding(20.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - Image( - painter = painterResource(id = R.drawable.profile_icon), - contentDescription = "Profil" - ) - Image( - painter = painterResource(id = R.drawable.toggle), - contentDescription = "Profil" - ) - } +// // Bandeau supérieur +// Row( +// modifier = Modifier +// .fillMaxWidth() +// .weight(0.1f) +// //.background(Color(0xFF300052)) +// .padding(20.dp), +// horizontalArrangement = Arrangement.SpaceBetween, +// verticalAlignment = Alignment.CenterVertically +// ) { +// Image( +// painter = painterResource(id = R.drawable.profile_icon), +// contentDescription = "Profil" +// ) +// Image( +// painter = painterResource(id = R.drawable.toggle), +// contentDescription = "Profil" +// ) +// } // Contenu princiapl Column( @@ -142,32 +142,33 @@ fun QuizPage( } } - // Bandeau inférieur - Row( - modifier = Modifier - .fillMaxWidth() - .weight(0.1f) - .background(Color(0xFF300052)) - .padding(20.dp), - horizontalArrangement = Arrangement.SpaceAround, - verticalAlignment = Alignment.CenterVertically - ) { - // Bouton Likes - Image( - painter = painterResource(id = R.drawable.like_icon), - contentDescription = "Bouton" - ) - // Bouton WhatTheFantasy - Image( - painter = painterResource(R.drawable.wf_logo), - contentDescription = "Menu Button", - Modifier.clickable { navControllerQuizMenu() } - ) - // Bouton Quiz - Image( - painter = painterResource(id = R.drawable.quiz_icon), - contentDescription = "Bouton" - ) - } +// // Bandeau inférieur +// Row( +// modifier = Modifier +// .fillMaxWidth() +// .weight(0.1f) +// .background(Color(0xFF300052)) +// .padding(20.dp), +// horizontalArrangement = Arrangement.SpaceAround, +// verticalAlignment = Alignment.CenterVertically +// ) { +// // Bouton Likes +// Image( +// painter = painterResource(id = R.drawable.like_icon), +// contentDescription = "Bouton" +// ) +// // Bouton WhatTheFantasy +// Image( +// painter = painterResource(R.drawable.wf_logo), +// contentDescription = "Menu Button", +// Modifier.clickable { navControllerQuizMenu() } +// ) +// // Bouton Quiz +// Image( +// painter = painterResource(id = R.drawable.quiz_icon), +// contentDescription = "Bouton" +// ) +// } + } } \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuotePage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuotePage.kt index cfb1d2f..078c936 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuotePage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/QuotePage.kt @@ -1,6 +1,8 @@ package com.example.what_the_fantasy.ui.screens import androidx.compose.runtime.Composable +import com.example.what_the_fantasy.ui.components.NavBar @Composable -fun QuotePage() {} \ No newline at end of file +fun QuotePage() { +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SearchPage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SearchPage.kt index 9b8d6ac..3d081c1 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SearchPage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SearchPage.kt @@ -1,6 +1,8 @@ package com.example.what_the_fantasy.ui.screens import androidx.compose.runtime.Composable +import com.example.what_the_fantasy.ui.components.NavBar @Composable -fun SearchPage() {} \ No newline at end of file +fun SearchPage() { +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SubmitQuotePage.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SubmitQuotePage.kt index 0b88b35..dd6dce6 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SubmitQuotePage.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/screens/SubmitQuotePage.kt @@ -1,6 +1,8 @@ package com.example.what_the_fantasy.ui.screens import androidx.compose.runtime.Composable +import com.example.what_the_fantasy.ui.components.NavBar @Composable -fun SubmitQuotePage() {} \ No newline at end of file +fun SubmitQuotePage() { +} \ No newline at end of file diff --git a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/theme/Color.kt b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/theme/Color.kt index 41c8deb..880122c 100644 --- a/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/theme/Color.kt +++ b/What_The_Fantasy/app/src/main/java/com/example/what_the_fantasy/ui/theme/Color.kt @@ -16,4 +16,8 @@ val gradienBox = Brush.linearGradient( start = Offset(0f, 1000f), // Départ en bas à gauche end = Offset(1000f, 0f) // Fin en haut à droite ) -val colorBackground = Color(0xFF100C1B) \ No newline at end of file +val colorBackground = Color(0xFF100C1B) + +val colorNavBar = Color(0xFF2F0E62) + +val colorButtonNav = Color.Cyan \ No newline at end of file