diff --git a/android/.idea/appInsightsSettings.xml b/android/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..6bbe2ae
--- /dev/null
+++ b/android/.idea/appInsightsSettings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/.idea/deploymentTargetDropDown.xml b/android/.idea/deploymentTargetDropDown.xml
index 3d7ae4a..0c0c338 100644
--- a/android/.idea/deploymentTargetDropDown.xml
+++ b/android/.idea/deploymentTargetDropDown.xml
@@ -2,24 +2,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
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 6e266a8..6773ad6 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
@@ -17,6 +17,7 @@ import fr.iut.sciencequest.view.HomeScreen
import fr.iut.sciencequest.view.LoginScreen
import fr.iut.sciencequest.view.games.KahootScreen
import fr.iut.sciencequest.view.games.PenduScreen
+import fr.iut.sciencequest.view.games.QuiScreen
import fr.iut.sciencequest.view.scientifiques.scientifiqueListeScreen
@@ -42,6 +43,9 @@ fun NavHost(kahotVM: KahootViewModel = viewModel()) {
goToKahoot = {
kahotVM.lancerPartie()
navController.navigate("kahoot")
+ },
+ goToQui = {
+ navController.navigate("qui")
}
)
}
@@ -89,6 +93,15 @@ fun NavHost(kahotVM: KahootViewModel = viewModel()) {
viewModel = kahotVM)
}
+ composable(route= "qui"){
+ QuiScreen(goToAccount = {
+ navController.navigate("account")
+ },
+ goToHome = {
+ navController.navigate("home")
+ })
+ }
+
composable(route = "listeScientifiques") {
scientifiqueListeScreen(goToAccount = {
navController.navigate("account")
diff --git a/android/app/src/main/java/fr/iut/sciencequest/view/HomeScreen.kt b/android/app/src/main/java/fr/iut/sciencequest/view/HomeScreen.kt
index b4555d0..b816e43 100644
--- a/android/app/src/main/java/fr/iut/sciencequest/view/HomeScreen.kt
+++ b/android/app/src/main/java/fr/iut/sciencequest/view/HomeScreen.kt
@@ -21,21 +21,22 @@ import fr.iut.sciencequest.ViewModels.KahootViewModel
fun HomeScreen(goToHome: () -> Unit,
goToAccount: () -> Unit,
goToPendu: () -> Unit,
- goToKahoot: () -> Unit) {
+ goToKahoot: () -> Unit,
+ goToQui: () -> Unit) {
Column (modifier = Modifier.fillMaxWidth()){
TopBar(goToAccount, goToHome)
- MainContent(goToPendu, goToKahoot)
+ MainContent(goToPendu, goToKahoot, goToQui)
}
}
@Preview
@Composable
fun HomeScreenPreview() {
- HomeScreen({},{},{}, {})
+ HomeScreen({},{},{},{},{})
}
@Composable
-fun MainContent(goToPendu: () -> Unit, goToKahoot: () -> Unit) {
+fun MainContent(goToPendu: () -> Unit, goToKahoot: () -> Unit, goToQui: () -> Unit) {
val context = LocalContext.current;
val comingSoon = Toast.makeText(context, "Coming soon", Toast.LENGTH_SHORT);
@@ -47,7 +48,7 @@ fun MainContent(goToPendu: () -> Unit, goToKahoot: () -> Unit) {
Button(onClick = goToKahoot, Modifier.fillMaxWidth()) {
Text(text = "Kahoot", fontSize = 13.sp)
}
- Button(onClick = { comingSoon.show() }, Modifier.fillMaxWidth()) {
+ Button(onClick = goToQui, Modifier.fillMaxWidth()) {
Text(text = "Qui est ce ?", fontSize = 13.sp)
}
}
diff --git a/android/app/src/main/java/fr/iut/sciencequest/view/games/Qui.kt b/android/app/src/main/java/fr/iut/sciencequest/view/games/Qui.kt
new file mode 100644
index 0000000..61b749b
--- /dev/null
+++ b/android/app/src/main/java/fr/iut/sciencequest/view/games/Qui.kt
@@ -0,0 +1,92 @@
+package fr.iut.sciencequest.view.games
+
+import android.widget.Toast
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.lazy.grid.GridCells
+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
+import androidx.compose.material3.Button
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.collectAsState
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.lifecycle.viewmodel.compose.viewModel
+import fr.iut.sciencequest.R
+import fr.iut.sciencequest.ViewModels.KahootViewModel
+import fr.iut.sciencequest.model.dto.question.QuestionWithSimpleResponseDTO
+import fr.iut.sciencequest.model.dto.reponse.ReponseSimpleDTO
+import fr.iut.sciencequest.stub.StubQuestionWithReponses
+import fr.iut.sciencequest.view.TopBar
+import java.util.Timer
+
+@Composable
+fun QuiScreen(viewModel: KahootViewModel = viewModel(),
+ goToAccount: () -> Unit,
+ goToHome: () -> Unit) {
+ val state = viewModel.uiState.collectAsState()
+ Column(modifier = Modifier.fillMaxWidth()) {
+ TopBar(goToAccount, goToHome, stringResource(id = R.string.kahoot))
+ QuiPlayer(state.value.question) {
+ viewModel.ajouterPoints(it)
+ }
+ }
+}
+
+@Preview
+@Composable
+fun QuiScreenPreview(){
+ QuiScreen(goToAccount = {}, goToHome = {})
+}
+
+
+@Preview
+@Composable
+fun QuiPlayerPreview(){
+ val i = 0
+ QuiPlayer(question = StubQuestionWithReponses) {}
+}
+
+
+@Composable
+fun QuiPlayer(question: QuestionWithSimpleResponseDTO,
+ sendReponse: (Long) -> Unit){
+ val context = LocalContext.current;
+ val currTime = System.currentTimeMillis()
+ Column (horizontalAlignment = Alignment.CenterHorizontally){
+ QuiQuestion(question = question.question)
+ QuiReponses(reponses = question.reponses) {
+ sendReponse(currTime - System.currentTimeMillis())
+ Toast.makeText(context, it.reponse, Toast.LENGTH_SHORT).show()
+ }
+ }
+}
+
+
+@Composable
+fun QuiReponses(reponses : List, action: (ReponseSimpleDTO)->Unit) {
+ LazyVerticalGrid(columns = GridCells.Fixed(2),
+ contentPadding = PaddingValues(12.dp),
+ verticalArrangement = Arrangement.spacedBy(10.dp),
+ horizontalArrangement = Arrangement.spacedBy(10.dp)) {
+ reponses.forEach {
+ item() {
+ Button(onClick = {action(it)}){
+ Text(it.reponse)
+ }
+ }
+ }
+ }
+}
+
+@Composable
+fun QuiQuestion(question: String){
+ Text(question, textAlign = TextAlign.Center)
+}
\ No newline at end of file