From 1a3edfbdef6991a6f7eabcb9624cb7cd51e8a4bc Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Wed, 3 Apr 2024 11:33:09 +0200 Subject: [PATCH] [FIX] Lance exception si param incorrect --- .../viewModels/KahootViewModel.kt | 21 +++++++++---------- .../viewModels/uiStates/KahootUIState.kt | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/android/app/src/main/java/fr/iut/sciencequest/viewModels/KahootViewModel.kt b/android/app/src/main/java/fr/iut/sciencequest/viewModels/KahootViewModel.kt index 9a4a564..c4cad3d 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/viewModels/KahootViewModel.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/viewModels/KahootViewModel.kt @@ -2,19 +2,13 @@ package fr.iut.sciencequest.viewModels import android.os.Handler import android.os.Looper -import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import fr.iut.sciencequest.model.dto.extensions.ToModel import fr.iut.sciencequest.model.repositories.question.IQuestionRepository import fr.iut.sciencequest.model.repositories.question.QuestionAPIRepository -import fr.iut.sciencequest.model.repositories.question.QuestionStubRepository -import fr.iut.sciencequest.stub.StubQuestionWithReponses -import fr.iut.sciencequest.stub.StubQuestionWithReponses2 import fr.iut.sciencequest.viewModels.uixStates.KahootUIState import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch @@ -32,7 +26,7 @@ class KahootViewModel( _uiState.value = KahootUIState( questionRepo.questions.value.get(0), - duréePartie = uiState.value.duréePartie, + dureePartie = uiState.value.dureePartie, nbPoints = uiState.value.nbPoints, reponseChoisie = false ) @@ -41,12 +35,12 @@ class KahootViewModel( { _uiState.value = KahootUIState( questionRepo.questions.value.get(index), - duréePartie = uiState.value.duréePartie, + dureePartie = uiState.value.dureePartie, nbPoints = uiState.value.nbPoints, reponseChoisie = false ) }, - uiState.value.duréePartie * index + uiState.value.dureePartie * index ) } } @@ -54,12 +48,17 @@ class KahootViewModel( // NOTE : tpsReponse en ms fun ajouterPoints(tpsReponse: Long) { + if (tpsReponse < 0) { + throw IllegalArgumentException("ERREUR: Temps négatif donné à l'ajout de points") + } else if (tpsReponse > uiState.value.dureePartie) { + throw IllegalArgumentException("ERREUR: Utilsateur à répondu trop lentement") + } if (uiState.value.reponseChoisie) { return } - val nbPoints: Int = (10_000 - tpsReponse).toInt() + val nbPoints: Int = (uiState.value.dureePartie - tpsReponse).toInt() _uiState.value = KahootUIState(uiState.value.question, - duréePartie = uiState.value.duréePartie, + dureePartie = uiState.value.dureePartie, nbPoints = uiState.value.nbPoints + nbPoints, reponseChoisie = true) } diff --git a/android/app/src/main/java/fr/iut/sciencequest/viewModels/uiStates/KahootUIState.kt b/android/app/src/main/java/fr/iut/sciencequest/viewModels/uiStates/KahootUIState.kt index 13054d9..1ee7ae9 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/viewModels/uiStates/KahootUIState.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/viewModels/uiStates/KahootUIState.kt @@ -8,6 +8,6 @@ data class KahootUIState ( val question: QuestionWithSimpleReponse = StubQuestionWithReponses.ToModel(), val reponseChoisie: Boolean = false, // NOTE : Supposé en millisecondes - val duréePartie: Long = 10_000, + val dureePartie: Long = 10_000, val nbPoints: Int = 0 ) \ No newline at end of file