From 11c147633425c3fedcd0bb97c482bbd3db7546d6 Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Thu, 28 Mar 2024 10:00:32 +0100 Subject: [PATCH] =?UTF-8?q?[ADD]=20Toast=20quand=20gagn=C3=A9,=20retour=20?= =?UTF-8?q?home=20quand=20perdu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/fr/iut/sciencequest/MainActivity.kt | 2 +- .../iut/sciencequest/ViewModels/PenduViewModel.kt | 11 +++++++++-- .../ViewModels/UiStates/PenduUIState.kt | 1 + .../java/fr/iut/sciencequest/navigation/NavHost.kt | 6 ++++-- .../java/fr/iut/sciencequest/view/games/Pendu.kt | 14 +++++++++++--- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt b/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt index 3ea7785..ad6c327 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt @@ -25,7 +25,7 @@ class MainActivity : ComponentActivity() { modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { - NavHost() + NavHost(this) } } } diff --git a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt index f548d03..d5b93d6 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/PenduViewModel.kt @@ -15,6 +15,7 @@ class PenduViewModel : ViewModel() { if (uiState.value.motATrou.contains(lettre)) { Log.d("PenduViewModel","L'utilisateur a fait une action invalide") uiState.value = PenduUIState(false, + false, uiState.value.nbViesRestantes, uiState.value.motATrouver, uiState.value.motATrou @@ -28,14 +29,20 @@ class PenduViewModel : ViewModel() { nvMotATrou = nvMotATrou.replaceRange(index,index + 1, lettre.toString()) } } - uiState.value = PenduUIState(true, + var isWon = false + if (nvMotATrou.equals(uiState.value.motATrouver)) { + isWon = true + } + uiState.value = PenduUIState(isWon, + true, uiState.value.nbViesRestantes, uiState.value.motATrouver, nvMotATrou ) } else { Log.d("PenduViewModel","L'utilisateur s'est trompé de lettre") - uiState.value = PenduUIState(true, + uiState.value = PenduUIState(false, + true, uiState.value.nbViesRestantes - 1, uiState.value.motATrouver, uiState.value.motATrou diff --git a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt index 0717bed..9a5f6e6 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/UiStates/PenduUIState.kt @@ -1,6 +1,7 @@ package fr.iut.sciencequest.ViewModels.UiStates data class PenduUIState( + val isWon: Boolean = false, val isActionGood: Boolean = false, val nbViesRestantes: Int = 10, val motATrouver: String = "Mot", diff --git a/android/app/src/main/java/fr/iut/sciencequest/navigation/NavHost.kt b/android/app/src/main/java/fr/iut/sciencequest/navigation/NavHost.kt index 4d0176a..b7d2f9c 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/navigation/NavHost.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/navigation/NavHost.kt @@ -1,5 +1,6 @@ package fr.iut.sciencequest.navigation +import android.content.Context import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -18,7 +19,7 @@ import fr.iut.sciencequest.view.scientifiques.scientifiqueListeScreen @Composable -fun NavHost() { +fun NavHost(context: Context) { val navController = rememberNavController() NavHost( modifier = Modifier.fillMaxSize(), @@ -71,7 +72,8 @@ fun NavHost() { }, goToHome = { navController.navigate("home") - } + }, + context = context ) } diff --git a/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt b/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt index 1a86694..fed615e 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/view/games/Pendu.kt @@ -1,5 +1,7 @@ package fr.iut.sciencequest.view.games +import android.content.Context +import android.widget.Toast import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -19,6 +21,7 @@ import fr.iut.sciencequest.view.TopBar @Composable fun PenduScreen(viewModel: PenduViewModel = viewModel(), + context: Context, goToAccount: () -> Unit, goToHome: () -> Unit) { val state = viewModel.uiState.collectAsState() @@ -32,6 +35,11 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(), onValueChange = { if (it.isNotEmpty()) { viewModel.PlayAction(it[0]) + if ((!state.value.isWon) && (state.value.nbViesRestantes == 0)) { + goToHome() + } else { + Toast.makeText(context,"Vous avez gagné !",Toast.LENGTH_LONG).show() + } }}, modifier = Modifier.padding(20.dp)) } @@ -41,7 +49,7 @@ fun PenduScreen(viewModel: PenduViewModel = viewModel(), @Preview @Composable fun PenduPreview(){ - PenduScreen(goToAccount = {}) { - - } + //PenduScreen(goToAccount = {}) { +// + //} } \ No newline at end of file