|
|
@ -1,31 +1,42 @@
|
|
|
|
package fr.iut.ouaff.vues
|
|
|
|
package fr.iut.ouaff.vues
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Intent
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.os.Bundle
|
|
|
|
import androidx.activity.result.ActivityResultLauncher
|
|
|
|
|
|
|
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
|
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
|
|
import androidx.fragment.app.Fragment
|
|
|
|
|
|
|
|
import fr.iut.ouaff.R
|
|
|
|
import fr.iut.ouaff.R
|
|
|
|
import fr.iut.ouaff.data.chargeur.Stub
|
|
|
|
import fr.iut.ouaff.data.chargeur.Stub
|
|
|
|
import fr.iut.ouaff.modele.metier.Chien
|
|
|
|
import fr.iut.ouaff.modele.metier.Chien
|
|
|
|
import fr.iut.ouaff.modele.metier.Genre
|
|
|
|
import fr.iut.ouaff.modele.metier.Genre
|
|
|
|
import fr.iut.ouaff.vues.fragment.FragmentDetail
|
|
|
|
import fr.iut.ouaff.utils.DogSelectedCallback
|
|
|
|
import fr.iut.ouaff.vues.fragment.FragmentMaster
|
|
|
|
import fr.iut.ouaff.vues.fragment.FragmentMaster
|
|
|
|
|
|
|
|
|
|
|
|
class MainActivity : AppCompatActivity() {
|
|
|
|
class MainActivity : AppCompatActivity(), DogSelectedCallback {
|
|
|
|
|
|
|
|
|
|
|
|
private var listeChiens: MutableList<Chien> = Stub().charger("")
|
|
|
|
private var listeChiens: MutableList<Chien> = Stub().charger("")
|
|
|
|
private lateinit var fragment:FragmentMaster
|
|
|
|
private lateinit var fragment:FragmentMaster
|
|
|
|
private var activityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){ result ->
|
|
|
|
private var activityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){ result ->
|
|
|
|
if(result.resultCode == RESULT_OK){
|
|
|
|
if(result.resultCode == RESULT_OK){
|
|
|
|
result.data?.let { ajouterChien(
|
|
|
|
result.data?.let {
|
|
|
|
|
|
|
|
if(it.getBooleanExtra(DetailActivity.AJOUTCHIEN, false)){
|
|
|
|
|
|
|
|
ajouterChien(
|
|
|
|
DetailActivity.getNomChien(it),
|
|
|
|
DetailActivity.getNomChien(it),
|
|
|
|
DetailActivity.getRaceChien(it),
|
|
|
|
DetailActivity.getRaceChien(it),
|
|
|
|
DetailActivity.getGenreChien(it) as Genre,
|
|
|
|
DetailActivity.getGenreChien(it) as Genre,
|
|
|
|
DetailActivity.getMesureChien(it),
|
|
|
|
DetailActivity.getMesureChien(it),
|
|
|
|
DetailActivity.getAgressiviteChien(it))
|
|
|
|
DetailActivity.getAgressiviteChien(it))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else{
|
|
|
|
|
|
|
|
modifierChien(
|
|
|
|
|
|
|
|
it.getIntExtra(DetailActivity.POSITION,-1),
|
|
|
|
|
|
|
|
it.getStringExtra(DetailActivity.NOMCHIEN),
|
|
|
|
|
|
|
|
it.getStringExtra(DetailActivity.RACECHIEN),
|
|
|
|
|
|
|
|
it.getSerializableExtra(DetailActivity.GENRECHIEN) as Genre,
|
|
|
|
|
|
|
|
it.getIntExtra(DetailActivity.MESURECHIEN,0),
|
|
|
|
|
|
|
|
it.getIntExtra(DetailActivity.AGRESSIVITECHIEN,0)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fragment.listDogsChanged()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -34,7 +45,7 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
setContentView(R.layout.activity_main)
|
|
|
|
setContentView(R.layout.activity_main)
|
|
|
|
|
|
|
|
|
|
|
|
if(supportFragmentManager.findFragmentById(R.id.id_fragment) == null){
|
|
|
|
if(supportFragmentManager.findFragmentById(R.id.id_fragment) == null){
|
|
|
|
fragment = FragmentMaster(listeChiens)
|
|
|
|
fragment = FragmentMaster(listeChiens, this)
|
|
|
|
supportFragmentManager.beginTransaction()
|
|
|
|
supportFragmentManager.beginTransaction()
|
|
|
|
.add(R.id.id_fragment, fragment)
|
|
|
|
.add(R.id.id_fragment, fragment)
|
|
|
|
.commit()
|
|
|
|
.commit()
|
|
|
@ -48,6 +59,20 @@ class MainActivity : AppCompatActivity() {
|
|
|
|
|
|
|
|
|
|
|
|
private fun ajouterChien(nom: String?, race: String?, genre: Genre, poids: Int, agressivite: Int) {
|
|
|
|
private fun ajouterChien(nom: String?, race: String?, genre: Genre, poids: Int, agressivite: Int) {
|
|
|
|
if(nom != null && race != null) listeChiens.add(Chien(nom, race, genre, poids, agressivite))
|
|
|
|
if(nom != null && race != null) listeChiens.add(Chien(nom, race, genre, poids, agressivite))
|
|
|
|
fragment.newDogAdded()
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun dogSelectedCallback(selectedDog: Chien, position: Int) {
|
|
|
|
|
|
|
|
activityLauncher.launch(DetailActivity.createIntent(this, selectedDog, position))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun modifierChien(pos:Int, nom: String?, race: String?, genre: Genre, poids: Int, agressivite: Int){
|
|
|
|
|
|
|
|
if(pos >= 0){
|
|
|
|
|
|
|
|
val chien = listeChiens.get(pos)
|
|
|
|
|
|
|
|
chien.nom = nom!!
|
|
|
|
|
|
|
|
chien.race = race!!
|
|
|
|
|
|
|
|
chien.genre = genre
|
|
|
|
|
|
|
|
chien.poids = poids
|
|
|
|
|
|
|
|
chien.agressivite = agressivite
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|