[ADD] ViewModel (fonctionne pas)

RepositoryAndroid
Renaud BEURET 1 year ago
parent 5abf2a8bbb
commit ba13a6477f

@ -3,7 +3,20 @@
<component name="deploymentTargetDropDown">
<value>
<entry key="app">
<State />
<State>
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="/local/avd/Pixel_7_Pro_API_34.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-03-21T10:47:15.864183783Z" />
</State>
</entry>
</value>
</component>

@ -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<ScientifiquesDecouvertsVM>().value
vm.addScientifiques(StubScientifique1.ToModel())
setContent {
ScienceQuestTheme {
// A surface container using the 'background' color from the theme

@ -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<Scientifique> = mutableStateListOf<Scientifique>()
fun getScientifiques(): MutableList<Scientifique> {
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")
}
}
}

@ -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)
}

@ -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()
}
)
}
}

@ -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<Scientifique> = 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)
}
}

@ -7,4 +7,5 @@
<string name="compte">Compte</string>
<string name="pendu">Pendu</string>
<string name="kahoot">Kahoot</string>
<string name="sc_decouverts">Scientifiques Decouverts</string>
</resources>
Loading…
Cancel
Save