Merge remote-tracking branch 'origin/Android' into Android

# Conflicts:
#	android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt
#	android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt
RepositoryAndroid^2
Lilian BRETON 1 year ago
commit 1766d0aae4

@ -2,17 +2,45 @@ package fr.iut.sciencequest.ViewModels
import android.util.Log import android.util.Log
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import fr.iut.sciencequest.ViewModels.UiStates.PenduUIState import fr.iut.sciencequest.ViewModels.UiStates.PenduUIState
import fr.iut.sciencequest.model.buisness.Scientifique.fetchScientifiqueById
import fr.iut.sciencequest.model.buisness.Scientifique.fetchScientifiques
import fr.iut.sciencequest.model.dto.extensions.ToModel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch
class PenduViewModel : ViewModel() { class PenduViewModel : ViewModel() {
var uiState = MutableStateFlow<PenduUIState>(PenduUIState()) var uiState = MutableStateFlow(PenduUIState())
fun InitPartie() {
Log.d("PenduViewModel","Un utilisateur initialise une partie")
viewModelScope.launch {
fetchScientifiqueById(1).collect {
val nomComplet = it.prenom + " " + it.nom
Log.d("ViewModelPendu",nomComplet)
var motATrou = ""
for (chr in nomComplet) {
motATrou += if (chr == ' ') {
' '
} else {
'_'
}
}
uiState.value = PenduUIState(
isActionGood = true,
motATrouver = nomComplet,
motATrou = motATrou
)
}
}
}
// mot : mot à trouver // mot : mot à trouver
// motAct : état actuel du mot trouvé par l'utilisateur // motAct : état actuel du mot trouvé par l'utilisateur
public fun PlayAction(lettre: Char) { fun PlayAction(lettre: Char) {
Log.d("PenduViewModel","Un utilisateur joue une action") Log.d("PenduViewModel","Un utilisateur joue une action")
if (uiState.value.motATrou.contains(lettre)) { if (lettre == ' ' || uiState.value.motATrou.contains(lettre)) {
Log.d("PenduViewModel","L'utilisateur a fait une action invalide") Log.d("PenduViewModel","L'utilisateur a fait une action invalide")
uiState.value = PenduUIState(false, uiState.value = PenduUIState(false,
false, false,
@ -35,7 +63,6 @@ class PenduViewModel : ViewModel() {
if (nvMotATrou.equals(uiState.value.motATrouver)) { if (nvMotATrou.equals(uiState.value.motATrouver)) {
isWon = true isWon = true
} }
uiState.value = PenduUIState(isWon, uiState.value = PenduUIState(isWon,
true, true,
uiState.value.nbViesRestantes, uiState.value.nbViesRestantes,

@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextField import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -49,9 +50,9 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(),
goToHome() goToHome()
} }
}}, }},
modifier = Modifier.padding(20.dp).fillMaxWidth()) modifier = Modifier.padding(20.dp))
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.Center) { Button(onClick = { viewModel.InitPartie() }) {
Text(text = state.value.nbViesRestantes.toString()) Text(text = stringResource(id = R.string.reset_game))
} }
} }
} }

@ -13,4 +13,5 @@
<string name="continue_no_acc">Continuer sans compte</string> <string name="continue_no_acc">Continuer sans compte</string>
<string name="no_account_details">Si vous n\'avez pas encore de compte, vous avez deux possibilitées, soit vous continuez sans compte, soit vous vous inscrivez</string> <string name="no_account_details">Si vous n\'avez pas encore de compte, vous avez deux possibilitées, soit vous continuez sans compte, soit vous vous inscrivez</string>
<string name="coming_soon">Coming soon...</string> <string name="coming_soon">Coming soon...</string>
<string name="reset_game">Nouvelle Partie</string>
</resources> </resources>
Loading…
Cancel
Save