[ADD] Kahoot change de question au bout de 10 secondes

RepositoryAndroid
Renaud BEURET 1 year ago
parent a3972b743f
commit b306915e68

@ -1,9 +1,35 @@
package fr.iut.sciencequest.ViewModels
import android.os.Handler
import android.os.Looper
import android.util.Log
import androidx.lifecycle.ViewModel
import fr.iut.sciencequest.ViewModels.UiStates.KahootUIState
import fr.iut.sciencequest.stub.StubQuestionWithReponses2
import kotlinx.coroutines.flow.MutableStateFlow
class KahootViewModel: ViewModel() {
var uiState = MutableStateFlow(KahootUIState())
private val handler = Handler(Looper.getMainLooper())
fun lancerPartie() {
var nbPoints: Int
var tpsReponse = 10_000
handler.postDelayed(
{
Log.d("KahootViewModel","J'actualise les questions")
nbPoints = if(uiState.value.reponseChoisie) {
10_000 - tpsReponse
} else {
0
}
uiState.value = KahootUIState(StubQuestionWithReponses2,
duréePartie = uiState.value.duréePartie,
nbPoints = uiState.value.nbPoints + nbPoints,
reponseChoisie = false)
},
uiState.value.duréePartie * 1000
)
}
}

@ -5,5 +5,9 @@ import fr.iut.sciencequest.model.dto.reponse.ReponseSimpleDTO
import fr.iut.sciencequest.stub.StubQuestionWithReponses
data class KahootUIState (
val question: QuestionWithSimpleResponseDTO = StubQuestionWithReponses
val question: QuestionWithSimpleResponseDTO = StubQuestionWithReponses,
val reponseChoisie: Boolean = false,
// NOTE : Supposé en secondes, à changer si besoins
val duréePartie: Long = 10,
val nbPoints: Int = 0
)

@ -7,5 +7,5 @@ class PartieDTO (
val codeInvitation: String,
val joueurs: List<JoueurSimpleDTO>,
val jeu: JeuDTO,
val thematiques: List<ThematiqueDTO>
val thematiques: List<ThematiqueDTO>
)

@ -9,8 +9,19 @@ object StubQuestionWithReponses: QuestionWithSimpleResponseDTO(
reponses = listOf<ReponseSimpleDTO>(
ReponseSimpleDTO(id=0, "Reponse 1"),
ReponseSimpleDTO(id=1, "Reponse 2"),
ReponseSimpleDTO(id=1, "Reponse 3"),
ReponseSimpleDTO(id=1, "Reponse 4"),
ReponseSimpleDTO(id=2, "Reponse 3"),
ReponseSimpleDTO(id=3, "Reponse 4"),
)
)
{}
{}
object StubQuestionWithReponses2: QuestionWithSimpleResponseDTO(
id = 1,
question = "Ceci est une autre question ?",
reponses = listOf(
ReponseSimpleDTO(id = 4, "Moi une reponse?"),
ReponseSimpleDTO(id = 5, "La réponse A"),
ReponseSimpleDTO(id = 6, "Je suis faux"),
ReponseSimpleDTO(id = 5, "Toutes les réponses")
)
)

@ -31,6 +31,7 @@ fun KahootScreen(viewModel: KahootViewModel = viewModel(),
goToAccount: () -> Unit,
goToHome: () -> Unit) {
val state = viewModel.uiState.collectAsState()
viewModel.lancerPartie()
Column(modifier = Modifier.fillMaxWidth()) {
TopBar(goToAccount, goToHome, stringResource(id = R.string.kahoot))
KahootPlayer(state.value.question)

Loading…
Cancel
Save