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