From f574d458b7accf97bb5976b3e13a485ba3a9375c Mon Sep 17 00:00:00 2001 From: "@potel5u" <guillaume.potel!@etu.univ-lorrain.fr> Date: Thu, 3 Apr 2025 18:56:33 +0200 Subject: [PATCH] =?UTF-8?q?r=C3=A9solution=20probleme=20persistence=20donn?= =?UTF-8?q?=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/fr/ul/projet/AccesActivity.java | 2 +- .../java/fr/ul/projet/ModeleActivity.java | 13 ++++++--- .../main/java/fr/ul/projet/PieceActivity.java | 28 ++++++++++++++----- .../main/java/fr/ul/projet/modele/Modele.java | 17 ++++++++--- 4 files changed, 44 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/fr/ul/projet/AccesActivity.java b/app/src/main/java/fr/ul/projet/AccesActivity.java index 52828d7..f7a47d8 100644 --- a/app/src/main/java/fr/ul/projet/AccesActivity.java +++ b/app/src/main/java/fr/ul/projet/AccesActivity.java @@ -92,7 +92,7 @@ public class AccesActivity extends AppCompatActivity { public void backToPiece(View v){ Intent res = new Intent(AccesActivity.this, PieceActivity.class); res.putExtra("modele", this.modele); - res.putExtra("piece", this.piece); + // res.putExtra("piece", this.piece); launcher.launch(res); } } diff --git a/app/src/main/java/fr/ul/projet/ModeleActivity.java b/app/src/main/java/fr/ul/projet/ModeleActivity.java index 3861279..e7beadb 100644 --- a/app/src/main/java/fr/ul/projet/ModeleActivity.java +++ b/app/src/main/java/fr/ul/projet/ModeleActivity.java @@ -8,6 +8,7 @@ import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; +import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -48,24 +49,28 @@ public class ModeleActivity extends AppCompatActivity { TextView textView = findViewById(R.id.textView); textView.setText(this.modele.getNom()); + if (this.modele.getPieceCourante() != null && this.modele.getPieceCourante().getPhotoNord() != null){ + Log.i("PHOTOOOOO", this.modele.getPieceCourante().getPhotoNord().getPath()); + } + afficherPieces(); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.create), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); - afficherPieces(); + this.launcher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { @Override public void onActivityResult(ActivityResult result){ - int resCode = result.getResultCode(); // Code retourné par l'activité - } } ); + } public void afficherPieces(){ @@ -76,7 +81,7 @@ public class ModeleActivity extends AppCompatActivity { Button bouton = new Button(this); bouton.setText(piece.getNom()); bouton.setOnClickListener(v -> { - modele.setPieceCourante(piece); + this.modele.setPieceCourante(piece); Intent intent = new Intent(ModeleActivity.this, PieceActivity.class); intent.putExtra("modele", modele); launcher.launch(intent); diff --git a/app/src/main/java/fr/ul/projet/PieceActivity.java b/app/src/main/java/fr/ul/projet/PieceActivity.java index 912ac9e..0480477 100644 --- a/app/src/main/java/fr/ul/projet/PieceActivity.java +++ b/app/src/main/java/fr/ul/projet/PieceActivity.java @@ -51,7 +51,7 @@ public class PieceActivity extends AppCompatActivity { case "Nord": this.modele.modifierPieceCourante(this.piece.getNom(), imageUri, this.piece.getPhotoSud(), this.piece.getPhotoEst(), this.piece.getPhotoOuest()); //this.piece.setPhotoNord(imageUri); - Toast.makeText(this, "Photo Nord importée avec succés", Toast.LENGTH_LONG).show(); + Toast.makeText(this, "Photo Nord importée avec succés" + this.piece.getPhotoNord().getPath() + "ah", Toast.LENGTH_LONG).show(); break; case "Sud": this.piece.setPhotoSud(imageUri); @@ -79,7 +79,7 @@ public class PieceActivity extends AppCompatActivity { case "Nord": this.modele.modifierPieceCourante(this.piece.getNom(), this.photoUri, this.piece.getPhotoSud(), this.piece.getPhotoEst(), this.piece.getPhotoOuest()); //this.piece.setPhotoNord(this.photoUri); - Toast.makeText(this, "Photo Nord importée avec succés", Toast.LENGTH_LONG).show(); + Toast.makeText(this, "Photo Nord importée avec succés" + this.modele.getPieceCourante().getId(), Toast.LENGTH_LONG).show(); break; case "Sud": this.piece.setPhotoSud(this.photoUri); @@ -103,8 +103,17 @@ public class PieceActivity extends AppCompatActivity { EdgeToEdge.enable(this); setContentView(R.layout.activity_piece); + this.modele = getIntent().getParcelableExtra("modele"); this.piece = this.modele.getPieceCourante(); + Toast.makeText(this, "photo : "+this.piece.getPhotoNord(), Toast.LENGTH_LONG).show(); + + + + for (Piece piece : this.modele.getPieces().values()){ + System.out.println(piece.getPhotoNord()); + } + TextView textView = findViewById(R.id.nomPiece); textView.setText(getString(R.string.piece_nom, this.modele.getNom(), this.piece.getNom())); @@ -118,6 +127,7 @@ public class PieceActivity extends AppCompatActivity { this.directionSelectionne = "Nord"; this.selectionImageDialog(); this.piece.setValide(); + }); photosContainer.addView(boutonNord); Button boutonSud = new Button(this); @@ -152,6 +162,8 @@ public class PieceActivity extends AppCompatActivity { return insets; }); + + this.launcher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() { @@ -162,6 +174,7 @@ public class PieceActivity extends AppCompatActivity { } ); + } public void selectionImageDialog(){ @@ -190,13 +203,14 @@ public class PieceActivity extends AppCompatActivity { } if (photo != null){ + Intent intent = new Intent(PieceActivity.this, AccesActivity.class); - intent.putExtra("modele", modele); + intent.putExtra("modele", this.modele); intent.putExtra("photo", photo); intent.putExtra("direction", directionSelectionne); launcher.launch(intent); }else{ - Toast.makeText(this, "Vous devez ajouter la photo avant d'ajouter un accés", Toast.LENGTH_LONG).show(); + Toast.makeText(this, "Vous devez ajouter la photo avant d'ajouter un accés" + this.modele.getPieceCourante().getId(), Toast.LENGTH_LONG).show(); } } }) @@ -212,7 +226,7 @@ public class PieceActivity extends AppCompatActivity { // Créer un fichier unique avec un nom basé sur l'horodatage File photoFile = new File(storageDir, "photo_" + System.currentTimeMillis() + ".jpg"); - photoPath = photoFile.getAbsolutePath(); // Stocker le chemin absolu + this.photoPath = photoFile.getAbsolutePath(); // Stocker le chemin absolu try { boolean created = photoFile.createNewFile(); @@ -223,13 +237,13 @@ public class PieceActivity extends AppCompatActivity { // Vérifier que le fichier a bien été créé if (photoFile.exists() && photoFile.canWrite()) { - photoUri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".fileprovider", photoFile); + this.photoUri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".fileprovider", photoFile); Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); // Vérifier que l'appareil a une caméra avant de lancer l'intent if (cameraIntent.resolveActivity(getPackageManager()) != null) { - cameraLauncher.launch(cameraIntent); + this.cameraLauncher.launch(cameraIntent); } else { Toast.makeText(this, "Aucune application de caméra trouvée", Toast.LENGTH_SHORT).show(); } diff --git a/app/src/main/java/fr/ul/projet/modele/Modele.java b/app/src/main/java/fr/ul/projet/modele/Modele.java index 5d03ec8..2105b3c 100644 --- a/app/src/main/java/fr/ul/projet/modele/Modele.java +++ b/app/src/main/java/fr/ul/projet/modele/Modele.java @@ -75,12 +75,20 @@ public class Modele implements Parcelable{ this.orientationCourante = in.readString(); this.pieces = new HashMap<Integer, Piece>(); int size = in.readInt(); + this.pieceCourante = in.readParcelable(Piece.class.getClassLoader()); + if (pieceCourante != null){ + this.pieces.put(this.pieceCourante.getId(), this.pieceCourante); + } + for (int i = 0; i < size; i++){ int key = in.readInt(); - Piece piece = in.readParcelable(Piece.class.getClassLoader()); - this.pieces.put(key, piece); + if (key != this.pieceCourante.getId()){ + Piece piece = in.readParcelable(Piece.class.getClassLoader()); + this.pieces.put(key, piece); + } + } - this.pieceCourante = in.readParcelable(Piece.class.getClassLoader()); + } /** @@ -108,11 +116,12 @@ public class Modele implements Parcelable{ dest.writeString(this.nom); dest.writeString(this.orientationCourante); dest.writeInt(this.pieces.size()); + dest.writeParcelable(this.pieceCourante, flags); for (Map.Entry<Integer, Piece> entry : this.pieces.entrySet()){ dest.writeInt(entry.getKey()); dest.writeParcelable(entry.getValue(), flags); } - dest.writeParcelable(this.pieceCourante, flags); + } /** -- GitLab