pull/51/head
Leni BEAULATON 3 weeks ago
parent c813196555
commit 60ec8300f4

@ -103,16 +103,16 @@ fun AppNavigator() {
} }
composable<Accueil> { composable<Accueil> {
val accueil: Accueil = it.toRoute() //val accueil: Accueil = it.toRoute()
AccueilPage( AccueilPage(
navFavorite = { navController.navigate(Favorite(accueil.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navQuiz = { navController.navigate(QuizMenu(accueil.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(currentUserState.id)) },
navProfil = { navController.navigate(Profil(accueil.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navQuote = { quoteId -> navQuote = { quoteId ->
navController.navigate( navController.navigate(
OneQuote( OneQuote(
quoteId, quoteId,
accueil.userIndex currentUserState.id
) )
) )
}, },
@ -122,17 +122,16 @@ fun AppNavigator() {
) )
} }
composable<Favorite> { composable<Favorite> {
val favorite: Favorite = it.toRoute() //val favorite: Favorite = it.toRoute()
FavoritePage( FavoritePage(
index = favorite.userIndex, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navAccueil = { navController.navigate(Accueil(favorite.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(currentUserState.id)) },
navQuiz = { navController.navigate(QuizMenu(favorite.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navProfil = { navController.navigate(Profil(favorite.userIndex)) },
navQuote = { quoteId -> navQuote = { quoteId ->
navController.navigate( navController.navigate(
OneQuote( OneQuote(
quoteId, quoteId,
favorite.userIndex currentUserState.id
) )
) )
}, },
@ -144,10 +143,10 @@ fun AppNavigator() {
composable<Profil> { composable<Profil> {
val profil: Profil = it.toRoute() val profil: Profil = it.toRoute()
ProfilPage( ProfilPage(
navFavorite = { navController.navigate(Favorite(profil.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navAccueil = { navController.navigate(Accueil(profil.userIndex)) }, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navQuiz = { navController.navigate(QuizMenu(profil.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(currentUserState.id)) },
navSubmitQuote = { navController.navigate(SubmitQuote(profil.userIndex)) }, navSubmitQuote = { navController.navigate(SubmitQuote(currentUserState.id)) },
navUnLog = { navUnLog = {
navController.navigate(Login) { navController.navigate(Login) {
popUpTo(profil) { inclusive = true } popUpTo(profil) { inclusive = true }
@ -161,11 +160,10 @@ fun AppNavigator() {
val quote: OneQuote = it.toRoute() val quote: OneQuote = it.toRoute()
QuotePage( QuotePage(
quoteId = quote.quoteId, quoteId = quote.quoteId,
index = quote.userIndex, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navAccueil = { navController.navigate(Accueil(quote.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(currentUserState.id)) },
navQuiz = { navController.navigate(QuizMenu(quote.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navProfil = { navController.navigate(Profil(quote.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navFavorite = { navController.navigate(Favorite(quote.userIndex)) },
service = services, service = services,
currentUserVM = currentUserVM, currentUserVM = currentUserVM,
currentUserState = currentUserState, currentUserState = currentUserState,
@ -184,19 +182,18 @@ fun AppNavigator() {
) )
} }
composable<SubmitQuote> { composable<SubmitQuote> {
val submitQuote: SubmitQuote = it.toRoute() //val submitQuote: SubmitQuote = it.toRoute()
SubmitQuotePage( SubmitQuotePage(
index = submitQuote.userIndex, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navAccueil = { navController.navigate(Accueil(submitQuote.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navFavorite = { navController.navigate(Favorite(submitQuote.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navProfil = { navController.navigate(Profil(submitQuote.userIndex)) },
navControllerQuiz = { idQuiz -> navControllerQuiz = { idQuiz ->
navController.navigate(Quiz(submitQuote.userIndex, idQuiz)) navController.navigate(Quiz(currentUserState.id, idQuiz))
}, },
navRecap = { quoteContent, character, source -> navRecap = { quoteContent, character, source ->
navController.navigate( navController.navigate(
RecapSubmit( RecapSubmit(
submitQuote.userIndex, currentUserState.id,
quoteContent, quoteContent,
character, character,
source source
@ -210,28 +207,27 @@ fun AppNavigator() {
composable<RecapSubmit> { composable<RecapSubmit> {
val recapSubmit: RecapSubmit = it.toRoute() val recapSubmit: RecapSubmit = it.toRoute()
RecapSubmitPage( RecapSubmitPage(
index = recapSubmit.userIndex,
quoteContent = recapSubmit.quoteContent, quoteContent = recapSubmit.quoteContent,
character = recapSubmit.character, character = recapSubmit.character,
source = recapSubmit.source, source = recapSubmit.source,
navAccueil = { navController.navigate(Accueil(recapSubmit.userIndex)) }, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navFavorite = { navController.navigate(Favorite(recapSubmit.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navProfil = { navController.navigate(Profil(recapSubmit.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
currentUserVM = currentUserVM, currentUserVM = currentUserVM,
currentUserState = currentUserState, currentUserState = currentUserState,
) )
} }
composable<QuizMenu> { composable<QuizMenu> {
val quizMenu: QuizMenu = it.toRoute() //val quizMenu: QuizMenu = it.toRoute()
QuizMenu( QuizMenu(
currentUserVM = currentUserVM, currentUserVM = currentUserVM,
currentUserState = currentUserState, currentUserState = currentUserState,
navAccueil = { navController.navigate(Accueil(quizMenu.userIndex)) }, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navFavorite = { navController.navigate(Favorite(quizMenu.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navProfil = { navController.navigate(Profil(quizMenu.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navControllerQuiz = { idQuiz -> navControllerQuiz = { idQuiz ->
navController.navigate(Quiz(quizMenu.userIndex, idQuiz)) navController.navigate(Quiz(currentUserState.id, idQuiz))
}, },
) )
@ -239,13 +235,12 @@ fun AppNavigator() {
composable<Quiz> { composable<Quiz> {
val quiz: Quiz = it.toRoute() val quiz: Quiz = it.toRoute()
QuizPage( QuizPage(
index = quiz.userIndex, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navAccueil = { navController.navigate(Accueil(quiz.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navFavorite = { navController.navigate(Favorite(quiz.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navProfil = { navController.navigate(Profil(quiz.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(currentUserState.id)) },
navQuiz = { navController.navigate(QuizMenu(quiz.userIndex)) },
navControllerQuizEnd = { idQuiz, pts -> navControllerQuizEnd = { idQuiz, pts ->
navController.navigate(QuizEnd(quiz.userIndex, idQuiz, pts)) navController.navigate(QuizEnd(currentUserState.id, idQuiz, pts))
}, },
idQuiz = quiz.idQuiz, idQuiz = quiz.idQuiz,
currentUserVM = currentUserVM, currentUserVM = currentUserVM,
@ -257,11 +252,10 @@ fun AppNavigator() {
QuizEndPage( QuizEndPage(
idQuiz = quizEnd.idQuiz, idQuiz = quizEnd.idQuiz,
points = quizEnd.pts, points = quizEnd.pts,
index = quizEnd.userIndex, navAccueil = { navController.navigate(Accueil(currentUserState.id)) },
navAccueil = { navController.navigate(Accueil(quizEnd.userIndex)) }, navFavorite = { navController.navigate(Favorite(currentUserState.id)) },
navFavorite = { navController.navigate(Favorite(quizEnd.userIndex)) }, navProfil = { navController.navigate(Profil(currentUserState.id)) },
navProfil = { navController.navigate(Profil(quizEnd.userIndex)) }, navQuiz = { navController.navigate(QuizMenu(currentUserState.id)) },
navQuiz = { navController.navigate(QuizMenu(quizEnd.userIndex)) },
currentUserVM = currentUserVM, currentUserVM = currentUserVM,
currentUserState = currentUserState, currentUserState = currentUserState,
) )

@ -11,7 +11,6 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@ -22,7 +21,6 @@ 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.components.NavBar
import com.example.what_the_fantasy.ui.components.QuoteLittle import com.example.what_the_fantasy.ui.components.QuoteLittle
import com.example.what_the_fantasy.ui.states.CurrentUserState import com.example.what_the_fantasy.ui.states.CurrentUserState
import com.example.what_the_fantasy.ui.theme.colorBackground
import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel
@Composable @Composable
@ -36,7 +34,7 @@ fun AccueilPage(
currentUserState : CurrentUserState, currentUserState : CurrentUserState,
) { ) {
var itemCount by remember { mutableStateOf(15) } var itemCount by remember { mutableIntStateOf(15) }
val dailyQuote = DailyQuoteStub.dailyQuote val dailyQuote = DailyQuoteStub.dailyQuote
val quotes = services.getAllQuote().take(itemCount) val quotes = services.getAllQuote().take(itemCount)

@ -27,7 +27,6 @@ import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel
@Composable @Composable
fun FavoritePage( fun FavoritePage(
index: Int,
navAccueil: (Int) -> Unit, navAccueil: (Int) -> Unit,
navQuiz: (Int) -> Unit, navQuiz: (Int) -> Unit,
navProfil: (Int) -> Unit, navProfil: (Int) -> Unit,
@ -36,7 +35,7 @@ fun FavoritePage(
currentUserVM : CurrentUserViewModel, currentUserVM : CurrentUserViewModel,
currentUserState : CurrentUserState, currentUserState : CurrentUserState,
) { ) {
val user = services.getUserById(index) ?: return val user = services.getUserById(currentUserState.id) ?: return
val quotes = services.getFavorite(user) val quotes = services.getFavorite(user)

@ -53,8 +53,6 @@ fun LoginPage(navControllerSignUp: () -> Unit,
authState : AuthUserState, authState : AuthUserState,
initialierCurrentUser : (Int) -> Unit) { initialierCurrentUser : (Int) -> Unit) {
// val authUserVM : AuthUserViewModel = viewModel()
// val authState by authUserVM.userState.collectAsState()
Box( Box(
modifier = Modifier modifier = Modifier

@ -113,7 +113,7 @@ fun ProfilPage(navFavorite: (Int) -> Unit,
SpaceHeightComponent(16) SpaceHeightComponent(16)
ButtonLanguage(R.string.ButtonLanguageprofile, 18, MaterialTheme.colorScheme.background,currentUserVM, currentUserState) ButtonLanguage(R.string.ButtonLanguageprofile, 18, MaterialTheme.colorScheme.background,currentUserVM, currentUserState)
SpaceHeightComponent(16) SpaceHeightComponent(16)
ButtonUnLog(R.string.ButtonUnlogprofile, 18, navUnLog) ButtonUnLog(R.string.ButtonUnlogprofile, 18, navUnLog,currentUserVM)
@ -446,14 +446,16 @@ fun DisplayPassword(onEdit: () -> Unit) {
} }
@Composable @Composable
fun ButtonUnLog(textResId : Int, size :Int,navController: () -> Unit){ fun ButtonUnLog(textResId : Int, size :Int,navController: () -> Unit, currentUserVM: CurrentUserViewModel){
val text = stringResource(id = textResId) val text = stringResource(id = textResId)
val logsUser = LogsUsers() //gestion des logs pour les utilisateurs val logsUser = LogsUsers() //gestion des logs pour les utilisateurs
Button( Button(
onClick = { onClick = {
currentUserVM.clearCurrentUser()
navController() navController()
logsUser.unlogInformationUserConnect("UserUnLog") logsUser.unlogInformationUserConnect("UserUnLog")
}, },
colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.background), colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.background),
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),

@ -30,7 +30,6 @@ val gradient = Brush.linearGradient(
fun QuizEndPage( fun QuizEndPage(
idQuiz: Int, idQuiz: Int,
points: Int, points: Int,
index: Int,
navFavorite: (Int) -> Unit, navFavorite: (Int) -> Unit,
navAccueil: (Int) -> Unit, navAccueil: (Int) -> Unit,
navProfil:(Int) -> Unit, navProfil:(Int) -> Unit,

@ -24,7 +24,6 @@ import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel
@Composable @Composable
fun QuizPage( fun QuizPage(
index: Int,
currentUserVM : CurrentUserViewModel, currentUserVM : CurrentUserViewModel,
currentUserState : CurrentUserState, currentUserState : CurrentUserState,
navFavorite: (Int) -> Unit, navFavorite: (Int) -> Unit,

@ -47,7 +47,6 @@ import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel
fun QuotePage( fun QuotePage(
quoteId : Int, quoteId : Int,
service : IServices, service : IServices,
index : Int,
navAccueil: (Int) -> Unit, navAccueil: (Int) -> Unit,
navFavorite:(Int) -> Unit, navFavorite:(Int) -> Unit,
navQuiz: (Int) -> Unit, navQuiz: (Int) -> Unit,

@ -45,7 +45,6 @@ import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel
@Composable @Composable
fun RecapSubmitPage( fun RecapSubmitPage(
index: Int,
navFavorite: (Int) -> Unit, navFavorite: (Int) -> Unit,
navAccueil: (Int) -> Unit, navAccueil: (Int) -> Unit,
navProfil:(Int) -> Unit, navProfil:(Int) -> Unit,

@ -41,7 +41,6 @@ import com.example.what_the_fantasy.ui.viewModels.CurrentUserViewModel
@Composable @Composable
fun SubmitQuotePage( fun SubmitQuotePage(
index: Int,
navFavorite: (Int) -> Unit, navFavorite: (Int) -> Unit,
navAccueil: (Int) -> Unit, navAccueil: (Int) -> Unit,
navProfil:(Int) -> Unit, navProfil:(Int) -> Unit,
@ -89,7 +88,7 @@ fun SubmitQuotePage(
navRecap navRecap
) )
SpaceHeightComponent(20) SpaceHeightComponent(20)
BackButton(R.string.titleButtonBack, 12, Color.White,navProfil, index) BackButton(R.string.titleButtonBack, 12, Color.White,navProfil, currentUserState.id)
} }
} }
} }

@ -2,7 +2,6 @@ package com.example.what_the_fantasy.ui.viewModels
import android.util.Log import android.util.Log
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.example.what_the_fantasy.data.model.SrcLanguage import com.example.what_the_fantasy.data.model.SrcLanguage
import com.example.what_the_fantasy.data.services.ServicesStub import com.example.what_the_fantasy.data.services.ServicesStub
import com.example.what_the_fantasy.ui.states.CurrentUserState import com.example.what_the_fantasy.ui.states.CurrentUserState
@ -10,25 +9,12 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
class CurrentUserViewModel : ViewModel(){ class CurrentUserViewModel : ViewModel(){
private val services = ServicesStub() // faire repository qui gère les services Stub et API private val services = ServicesStub() // faire repository qui gère les services Stub et API
private val _currentUserState = MutableStateFlow(CurrentUserState()) private val _currentUserState = MutableStateFlow(CurrentUserState())
var currentUserState : StateFlow<CurrentUserState> = _currentUserState.asStateFlow() var currentUserState : StateFlow<CurrentUserState> = _currentUserState.asStateFlow()
// init{
// viewModelScope.launch {
// services.getUserById(10)?.let { // A changer : renvoie le meme user pour le moment
// setId(it.id)
// setUsername(it.username)
// setEmail(it.email)
// setPassword(it.password)
// setLangue(it.langage)
// setImage(it.imgUrl)
// }
// }
// }
fun initialiseCurrentUser(index : Int){ fun initialiseCurrentUser(index : Int){
services.getUserById(index)?.let { services.getUserById(index)?.let {
@ -39,7 +25,11 @@ class CurrentUserViewModel : ViewModel(){
setLangue(it.langage) setLangue(it.langage)
setImage(it.imgUrl) setImage(it.imgUrl)
} }
Log.e("ProfilInit", "${currentUserState.value.id}")
}
fun clearCurrentUser(){
_currentUserState.value = CurrentUserState()
} }
fun setId(id : Int){ fun setId(id : Int){
@ -87,9 +77,6 @@ class CurrentUserViewModel : ViewModel(){
fun editPassword(password : String, index : Int){ fun editPassword(password : String, index : Int){
services.EditPasswd(password, index) services.EditPasswd(password, index)
_currentUserState.update {
it.copy(password = password)
}
} }
fun editLangue(index : Int){ fun editLangue(index : Int){

Loading…
Cancel
Save