diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 0c0c338..31d6335 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -3,7 +3,20 @@ - + + + + + + + + + + + + + + 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 284f64e..dde03bd 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt @@ -4,18 +4,23 @@ import android.os.Bundle import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import androidx.activity.viewModels import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.ui.Modifier +import fr.iut.sciencequest.ViewModels.ScientifiquesDecouvertsVM import fr.iut.sciencequest.model.buisness.fetchScientifiqueById +import fr.iut.sciencequest.model.dto.extensions.ToModel import fr.iut.sciencequest.navigation.NavHost +import fr.iut.sciencequest.stub.StubScientifique1 import fr.iut.sciencequest.ui.theme.ScienceQuestTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - fetchScientifiqueById(1) + val vm = viewModels().value + vm.addScientifiques(StubScientifique1.ToModel()) setContent { ScienceQuestTheme { // A surface container using the 'background' color from the theme diff --git a/android/app/src/main/java/fr/iut/sciencequest/ViewModels/ScientifiquesDecouvertsVM.kt b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/ScientifiquesDecouvertsVM.kt new file mode 100644 index 0000000..826dd20 --- /dev/null +++ b/android/app/src/main/java/fr/iut/sciencequest/ViewModels/ScientifiquesDecouvertsVM.kt @@ -0,0 +1,24 @@ +package fr.iut.sciencequest.ViewModels + +import android.util.Log +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateListOf +import androidx.lifecycle.ViewModel +import fr.iut.sciencequest.model.metier.Scientifique + +class ScientifiquesDecouvertsVM : ViewModel() { + private var listeScientifique: MutableList = mutableStateListOf() + + fun getScientifiques(): MutableList { + Log.d("ViewModel","""je get un scientifique, taille act : ${listeScientifique.size}""") + return listeScientifique + } + + fun addScientifiques(scientifique: Scientifique) { + if (listeScientifique.add(scientifique)) { + Log.d("ViewModel","""j'ajoute un scientifique, taille act : ${listeScientifique.size}""") + } else { + Log.d("ViewModel","Erreur lors d'un ajout") + } + } + } \ No newline at end of file diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt index 0d242e1..e63c506 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt @@ -1,6 +1,12 @@ package fr.iut.sciencequest.model.buisness import android.util.Log +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelLazy +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import androidx.lifecycle.viewmodel.compose.viewModel +import fr.iut.sciencequest.ViewModels.ScientifiquesDecouvertsVM import fr.iut.sciencequest.model.dto.ScientifiqueDTO import retrofit2.Call import retrofit2.Callback @@ -53,6 +59,7 @@ fun fetchScientifiquesById(index: Int, count: Int) { // Pour le moment des print pour vérifier que la requêtre fonctionne // sans avoir besoin des vues. for (scientifique in data) { + Log.d("Requete API",scientifique.id.toString()) Log.d("Requete API", scientifique.nom) } 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 1cfe3e8..5478677 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 @@ -7,6 +7,7 @@ import androidx.compose.ui.Modifier import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController +import fr.iut.sciencequest.ViewModels.ScientifiquesDecouvertsVM import fr.iut.sciencequest.model.dto.extensions.ToModel import fr.iut.sciencequest.stub.StubQuestionWithReponses import fr.iut.sciencequest.stub.getScientifiqueListeStub @@ -28,7 +29,6 @@ fun NavHost() { startDestination = "listeScientifiques" ) { composable(route = "home") { - Log.d("tag", "dzadza") HomeScreen( goToAccount = { navController.navigate("account") @@ -94,8 +94,7 @@ fun NavHost() { }, goToHome = { navController.navigate("home") - }, - scientifiques = getScientifiqueListeStub().ToModel() + } ) } } diff --git a/android/app/src/main/java/fr/iut/sciencequest/view/scientifiques/ScientifiqueListeScreen.kt b/android/app/src/main/java/fr/iut/sciencequest/view/scientifiques/ScientifiqueListeScreen.kt index 62cd173..9136861 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/view/scientifiques/ScientifiqueListeScreen.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/view/scientifiques/ScientifiqueListeScreen.kt @@ -1,24 +1,28 @@ package fr.iut.sciencequest.view.scientifiques +import android.util.Log import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview +import androidx.lifecycle.viewmodel.compose.viewModel import fr.iut.sciencequest.R +import fr.iut.sciencequest.ViewModels.ScientifiquesDecouvertsVM import fr.iut.sciencequest.model.dto.extensions.ToModel import fr.iut.sciencequest.model.metier.Scientifique import fr.iut.sciencequest.stub.getScientifiqueListeStub import fr.iut.sciencequest.view.TopBar @Composable -fun scientifiqueListeScreen(scientifiques: List = getScientifiqueListeStub().ToModel(), +fun scientifiqueListeScreen(viewModel: ScientifiquesDecouvertsVM = viewModel(), goToAccount: () -> Unit, goToHome: () -> Unit) { + Log.d("Vue","je suis la") Scaffold( topBar = { - TopBar(goToAccount, goToHome, stringResource(id = R.string.connection)) + TopBar(goToAccount, goToHome, stringResource(id = R.string.sc_decouverts)) }, ) { innerPadding -> - scientifiqueListeContainer(scientifiques, innerPadding) + scientifiqueListeContainer(viewModel.getScientifiques(), innerPadding) } } \ No newline at end of file diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 3c7e941..aba9418 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -7,4 +7,5 @@ Compte Pendu Kahoot + Scientifiques Decouverts \ No newline at end of file