diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dc8cfa34408dcff46292ff147a208ac82382aa75..ec21a8c5c5c222b79e1373dc955b988aef3e5f51 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,7 +5,11 @@
         android:name="android.hardware.camera"
         android:required="true" />
 
-
+    <queries>
+        <intent>
+            <action android:name="android.media.action.IMAGE_CAPTURE" />
+        </intent>
+    </queries>
     <application
         android:allowBackup="true"
         android:dataExtractionRules="@xml/data_extraction_rules"
@@ -16,6 +20,7 @@
         android:supportsRtl="true"
         android:theme="@style/Theme.PROJET"
         tools:targetApi="31">
+
         <provider
             android:name="androidx.core.content.FileProvider"
             android:authorities="fr.ul.projet.fileprovider"
@@ -41,11 +46,14 @@
         <activity
             android:name=".PieceActivity"
             android:exported="false"/>
+        <activity
+            android:name=".AccesActivity"
+            android:exported="false"/>
     </application>
 
     <uses-permission android:name="android.permission.CAMERA" android:required="true"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
 
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/fr/ul/projet/AccesActivity.java b/app/src/main/java/fr/ul/projet/AccesActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..52828d7ef51818a9048017d7dc496c302009ae5e
--- /dev/null
+++ b/app/src/main/java/fr/ul/projet/AccesActivity.java
@@ -0,0 +1,98 @@
+package fr.ul.projet;
+
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+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;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.activity.EdgeToEdge;
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultCallback;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.FileProvider;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+import fr.ul.projet.modele.Modele;
+import fr.ul.projet.modele.Piece;
+
+public class AccesActivity extends AppCompatActivity {
+
+    private Modele modele;
+    private Piece piece;
+    private String direction;
+    private Uri photo;
+
+    private ActivityResultLauncher<Intent> launcher;
+
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState){
+        super.onCreate(savedInstanceState);
+        EdgeToEdge.enable(this);
+        setContentView(R.layout.activity_acces);
+
+        this.modele = getIntent().getParcelableExtra("modele");
+        this.piece = this.modele.getPieceCourante();
+        this.photo = getIntent().getParcelableExtra("photo");
+        this.direction = getIntent().getExtras().getString("direction");
+
+        TextView textView = findViewById(R.id.textView2);
+        textView.setText(getString(R.string.acces, this.modele.getNom(), this.piece.getNom(), direction));
+
+        ImageView imageView = findViewById(R.id.imageView);
+        imageView.setImageURI(photo);
+
+        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.acces), (v, insets) -> {
+            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+            return insets;
+        });
+
+        this.launcher = registerForActivityResult(
+                new ActivityResultContracts.StartActivityForResult(),
+                new ActivityResultCallback<ActivityResult>() {
+                    @Override
+                    public void onActivityResult(ActivityResult result){
+
+                    }
+                }
+        );
+
+    }
+
+
+    public void quit(View v){
+        Intent res = new Intent(AccesActivity.this, MainActivity.class);
+        launcher.launch(res);
+    }
+
+    public void backToPiece(View v){
+        Intent res = new Intent(AccesActivity.this, PieceActivity.class);
+        res.putExtra("modele", this.modele);
+        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 6e3783ec60bf4a439ab124e30d46697215c0c41e..3861279ae52857e2c8a06d44f58d5fefb4d8429d 100644
--- a/app/src/main/java/fr/ul/projet/ModeleActivity.java
+++ b/app/src/main/java/fr/ul/projet/ModeleActivity.java
@@ -98,7 +98,7 @@ public class ModeleActivity extends AppCompatActivity {
             @Override
             public void onClick(DialogInterface dialog, int which){
                 String userInput = input.getText().toString();
-                modele.ajouterPiece(userInput, "", "", "", "");
+                modele.ajouterPiece(userInput, null, null, null, null);
                 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 f4eb1b7dae6dd34d3878c1069d5751101852d5d6..912ac9e9f608a5c1841ea6a805a25463923cc732 100644
--- a/app/src/main/java/fr/ul/projet/PieceActivity.java
+++ b/app/src/main/java/fr/ul/projet/PieceActivity.java
@@ -8,8 +8,9 @@ import android.os.Environment;
 import android.provider.MediaStore;
 import android.util.Log;
 import android.view.View;
+import android.widget.Button;
 import android.widget.EditText;
-import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -26,6 +27,7 @@ import androidx.core.view.ViewCompat;
 import androidx.core.view.WindowInsetsCompat;
 
 import java.io.File;
+import java.io.IOException;
 
 import fr.ul.projet.modele.Modele;
 import fr.ul.projet.modele.Piece;
@@ -33,58 +35,65 @@ import fr.ul.projet.modele.Piece;
 public class PieceActivity extends AppCompatActivity {
 
     private Modele modele;
-    private static final int NB_IMAGES = 4;
-    private int imageIndex = 0;
     private Piece piece;
-    private Uri photoUri;
     private ActivityResultLauncher<Intent> launcher;
+    private String directionSelectionne;
+    private Uri photoUri;
+    private String photoPath;
 
     private final ActivityResultLauncher<Intent> pickImageLauncher = registerForActivityResult(
             new ActivityResultContracts.StartActivityForResult(),
             result -> {
-                if (result.getResultCode() == RESULT_OK && result.getData() != null && imageIndex < NB_IMAGES) {
+                if (result.getResultCode() == RESULT_OK && result.getData() != null) {
                     Uri imageUri = result.getData().getData();
                     if (imageUri != null) {
-                        switch (imageIndex){
-                            case 0:
-                                PieceActivity.this.piece.setPhotoNord(imageUri.getPath());
+                        switch (directionSelectionne){
+                            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();
                                 break;
-                            case 1:
-                                PieceActivity.this.piece.setPhotoSud(imageUri.getPath());
+                            case "Sud":
+                                this.piece.setPhotoSud(imageUri);
+                                Toast.makeText(this, "Photo Sud importée avec succés", Toast.LENGTH_LONG).show();
                                 break;
-                            case 2:
-                                PieceActivity.this.piece.setPhotoEst(imageUri.getPath());
+                            case "Est":
+                                this.piece.setPhotoEst(imageUri);
+                                Toast.makeText(this, "Photo Est importée avec succés", Toast.LENGTH_LONG).show();
                                 break;
-                            case 3:
-                                PieceActivity.this.piece.setPhotoOuest(imageUri.getPath());
+                            case "Ouest":
+                                this.piece.setPhotoOuest(imageUri);
+                                Toast.makeText(this, "Photo Ouest importée avec succés", Toast.LENGTH_LONG).show();
                                 break;
                         }
                     }
-                    imageIndex++;
                 }
             });
 
     private final ActivityResultLauncher<Intent> cameraLauncher = registerForActivityResult(
             new ActivityResultContracts.StartActivityForResult(),
             result -> {
-                if (result.getResultCode() == RESULT_OK && imageIndex < NB_IMAGES) {
-                    ImageView imageView = findViewById(R.id.imageView);
-                    imageView.setImageURI(this.photoUri);
-                    /*switch (imageIndex){
-                        case 0:
-                            PieceActivity.this.piece.setPhotoNord(photoUri.getPath());
+                if (result.getResultCode() == RESULT_OK) {
+
+                    switch (directionSelectionne){
+                        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();
                             break;
-                        case 1:
-                            PieceActivity.this.piece.setPhotoSud(photoUri.getPath());
+                        case "Sud":
+                            this.piece.setPhotoSud(this.photoUri);
+                            Toast.makeText(this, "Photo Sud importée avec succés", Toast.LENGTH_LONG).show();
                             break;
-                        case 2:
-                            PieceActivity.this.piece.setPhotoEst(photoUri.getPath());
+                        case "Est":
+                            this.piece.setPhotoEst(this.photoUri);
+                            Toast.makeText(this, "Photo Est importée avec succés", Toast.LENGTH_LONG).show();
                             break;
-                        case 3:
-                            PieceActivity.this.piece.setPhotoOuest(photoUri.getPath());
+                        case "Ouest":
+                            this.piece.setPhotoOuest(this.photoUri);
+                            Toast.makeText(this, "Photo Ouest importée avec succés", Toast.LENGTH_LONG).show();
                             break;
-                    }*/
-                    imageIndex++;
+                    }
                 }
             });
 
@@ -94,35 +103,48 @@ public class PieceActivity extends AppCompatActivity {
         EdgeToEdge.enable(this);
         setContentView(R.layout.activity_piece);
 
-        String nomPiece = getIntent().getStringExtra("nomPiece");
         this.modele = getIntent().getParcelableExtra("modele");
         this.piece = this.modele.getPieceCourante();
+
         TextView textView = findViewById(R.id.nomPiece);
-        textView.setText(this.modele.getNom()+ " : " + this.piece.getNom());
-        ImageView imageView = findViewById(R.id.imageView);
-        switch (this.modele.getOrientationCourante()){
+        textView.setText(getString(R.string.piece_nom, this.modele.getNom(), this.piece.getNom()));
+
+        LinearLayout photosContainer = findViewById(R.id.photos);
+        photosContainer.removeAllViews();
+
+        Button boutonNord = new Button(this);
+        boutonNord.setText(R.string.nord);
+        boutonNord.setOnClickListener(v -> {
+            this.directionSelectionne = "Nord";
+            this.selectionImageDialog();
+            this.piece.setValide();
+        });
+        photosContainer.addView(boutonNord);
+        Button boutonSud = new Button(this);
+        boutonSud.setText(R.string.sud);
+        boutonSud.setOnClickListener(v -> {
+            this.directionSelectionne = "Sud";
+            this.selectionImageDialog();
+            this.piece.setValide();
+        });
+        photosContainer.addView(boutonSud);
+        Button boutonEst = new Button(this);
+        boutonEst.setText(R.string.est);
+        boutonEst.setOnClickListener(v -> {
+            this.directionSelectionne = "Est";
+            this.selectionImageDialog();
+            this.piece.setValide();
+        });
+        photosContainer.addView(boutonEst);
+        Button boutonOuest = new Button(this);
+        boutonOuest.setText(R.string.ouest);
+        boutonOuest.setOnClickListener(v -> {
+            this.directionSelectionne = "Ouest";
+            this.selectionImageDialog();
+            this.piece.setValide();
+        });
+        photosContainer.addView(boutonOuest);
 
-            case "Nord":
-                if (!this.piece.getPhotoNord().equals("")){
-                    imageView.setImageURI(Uri.fromFile(new File(this.piece.getPhotoNord())));
-                }
-                break;
-            case "Sud":
-                if (!this.piece.getPhotoNord().equals("")){
-                    imageView.setImageURI(Uri.fromFile(new File(this.piece.getPhotoSud())));
-                }
-                break;
-            case "Est":
-                if (!this.piece.getPhotoNord().equals("")){
-                    imageView.setImageURI(Uri.fromFile(new File(this.piece.getPhotoEst())));
-                }
-                break;
-            case "Ouest":
-                if (!this.piece.getPhotoNord().equals("")){
-                    imageView.setImageURI(Uri.fromFile(new File(this.piece.getPhotoOuest())));
-                }
-                break;
-        }
 
         ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.piece), (v, insets) -> {
             Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
@@ -135,55 +157,85 @@ public class PieceActivity extends AppCompatActivity {
                 new ActivityResultCallback<ActivityResult>() {
                     @Override
                     public void onActivityResult(ActivityResult result){
-                        int resCode = result.getResultCode(); // Code retourné par l'activité
-                        if (result.getResultCode() == RESULT_OK && result.getData() != null && imageIndex < NB_IMAGES){
-                            Uri imageUri = result.getData().getData();
-                            if (imageUri != null) {
-                                switch (imageIndex){
-                                    case 0:
-                                        PieceActivity.this.piece.setPhotoNord(imageUri.getPath());
-                                        break;
-                                    case 1:
-                                        PieceActivity.this.piece.setPhotoSud(imageUri.getPath());
-                                        break;
-                                    case 2:
-                                        PieceActivity.this.piece.setPhotoEst(imageUri.getPath());
-                                        break;
-                                    case 3:
-                                        PieceActivity.this.piece.setPhotoOuest(imageUri.getPath());
-                                        break;
-                                }
-                            }
-                        }
+
                     }
                 }
         );
 
     }
 
-    public void selectionImageDialog(View v){
-        if (imageIndex >= NB_IMAGES){
-            Toast.makeText(this, "Vous avez déjà sélectionné 4 images", Toast.LENGTH_LONG).show();
-            return;
-        }
+    public void selectionImageDialog(){
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setTitle("Choisir une option")
-                .setItems(new String[]{"Prendre une photo, Séléctionner une photo"}, (dialog, which) -> {
+                .setItems(new String[]{"Prendre une photo", "Séléctionner une photo", "Ajouter un accès","Annuler"}, (dialog, which) -> {
                     if (which == 0){
                         this.prendrePhoto();
-                    } else{
+                    } else if (which == 1){
                         this.selectionnerPhoto();
+                    } else if (which == 2){
+                        Uri photo=null;
+                        switch (directionSelectionne){
+                            case "Nord":
+                                photo = this.piece.getPhotoNord();
+                                break;
+                            case "Sud":
+                                photo = this.piece.getPhotoSud();
+                                break;
+                            case "Est":
+                                photo = this.piece.getPhotoEst();
+                                break;
+                            case "Ouest":
+                                photo = this.piece.getPhotoOuest();
+                                break;
+                        }
+
+                        if (photo != null){
+                            Intent intent = new Intent(PieceActivity.this, AccesActivity.class);
+                            intent.putExtra("modele", 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();
+                        }
                     }
         })
                 .show();
     }
 
-    private void prendrePhoto(){
-        File photo = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "photo_" + System.currentTimeMillis() + ".jpg");
-        this.photoUri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".fileprovider", photo);
-        Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
-        camera.putExtra(MediaStore.EXTRA_OUTPUT, this.photoUri);
-        cameraLauncher.launch(camera);
+    private void prendrePhoto() {
+        // Obtenir le dossier de stockage des images
+        File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
+        if (storageDir != null && !storageDir.exists()) {
+            storageDir.mkdirs(); // Créer le dossier s'il n'existe pas
+        }
+
+        // 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
+
+        try {
+            boolean created = photoFile.createNewFile();
+            Log.i("CREATION", created ? "SUCCÈS" : "ÉCHEC");
+        } catch (IOException e) {
+            Log.e("ERREUR", "Erreur lors de la création du fichier : " + e.getMessage());
+        }
+
+        // Vérifier que le fichier a bien été créé
+        if (photoFile.exists() && photoFile.canWrite()) {
+            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);
+            } else {
+                Toast.makeText(this, "Aucune application de caméra trouvée", Toast.LENGTH_SHORT).show();
+            }
+        } else {
+            Toast.makeText(this, "Impossible de créer l'image", Toast.LENGTH_SHORT).show();
+        }
     }
 
     private void selectionnerPhoto(){
@@ -192,33 +244,6 @@ public class PieceActivity extends AppCompatActivity {
         pickImageLauncher.launch(intent);
     }
 
-    public void nouvellePiece(View v){
-        AlertDialog.Builder builder = new AlertDialog.Builder(this);
-        builder.setTitle("Entrez un nom pour votre pièce");
-
-        final EditText input = new EditText(this);
-        builder.setView(input);
-
-        // Bouton de validation
-        builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
-            @Override
-            public void onClick(DialogInterface dialog, int which){
-                String userInput = input.getText().toString();
-                Intent intent = new Intent(PieceActivity.this, PieceActivity.class);
-                intent.putExtra("nomPiece", userInput);
-                launcher.launch(intent);
-            }
-        });
-
-        // Bouton d'annulatiopn
-        builder.setNegativeButton("Annuler", new DialogInterface.OnClickListener(){
-            @Override
-            public void onClick(DialogInterface dialog, int which){
-                dialog.cancel();
-            }
-        });
-        builder.show();
-    }
 
     public void quit(View v){
         Intent res = new Intent(PieceActivity.this, MainActivity.class);
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 6b9de199d08871ef01c32d33f36a8e73f98ad8c0..5d03ec8cdaadd166c48760c3b149b3cb905d199c 100644
--- a/app/src/main/java/fr/ul/projet/modele/Modele.java
+++ b/app/src/main/java/fr/ul/projet/modele/Modele.java
@@ -230,7 +230,7 @@ public class Modele implements Parcelable{
      * @param photoEst      Chemin vers la photo représentant l'orientation Est de la pièce
      * @param photoOuest    Chemin vers la photo représentant l'orientation Ouest de la pièce
      */
-    public void ajouterPiece(String nom, String photoNord, String photoSud, String photoEst, String photoOuest){
+    public void ajouterPiece(String nom, Uri photoNord, Uri photoSud, Uri photoEst, Uri photoOuest){
         Piece piece = new Piece(nom, photoNord, photoSud, photoEst, photoOuest);
         this.pieces.put(piece.getId(), piece);
         this.setPieceCourante(piece);
@@ -244,7 +244,7 @@ public class Modele implements Parcelable{
      * @param photoEst      Chemin vers la photo représentant l'orientation Est de la pièce
      * @param photoOuest    Chemin vers la photo représentant l'orientation Ouest de la pièce
      */
-    public void modifierPieceCourante(String nom, String photoNord, String photoSud, String photoEst, String photoOuest){
+    public void modifierPieceCourante(String nom, Uri photoNord, Uri photoSud, Uri photoEst, Uri photoOuest){
         this.getPieceCourante().setNom(nom);
         this.getPieceCourante().setPhotoNord(photoNord);
         this.getPieceCourante().setPhotoSud(photoSud);
@@ -404,10 +404,10 @@ public class Modele implements Parcelable{
                     Piece piece = new Piece();
                     piece.setId(pieceJson.getInt("id"));
                     piece.setNom(pieceJson.getString("nom"));
-                    piece.setPhotoNord(pieceJson.getString("cheminPhotoNord"));
-                    piece.setPhotoSud(pieceJson.getString("cheminPhotoSud"));
-                    piece.setPhotoEst(pieceJson.getString("cheminPhotoEst"));
-                    piece.setPhotoOuest(pieceJson.getString("cheminPhotoOuest"));
+                    piece.setPhotoNord(Uri.parse(pieceJson.getString("cheminPhotoNord")));
+                    piece.setPhotoSud(Uri.parse(pieceJson.getString("cheminPhotoSud")));
+                    piece.setPhotoEst(Uri.parse(pieceJson.getString("cheminPhotoEst")));
+                    piece.setPhotoOuest(Uri.parse(pieceJson.getString("cheminPhotoOuest")));
                     this.pieces.put(piece.getId(), piece);
                     Log.i("nom piece", piece.getNom());
                 }
diff --git a/app/src/main/java/fr/ul/projet/modele/Piece.java b/app/src/main/java/fr/ul/projet/modele/Piece.java
index 0afa50612588fe9050a77a82eeb5120057c25375..c8f5e17567046698d94fed2814b1455428f6e9e2 100644
--- a/app/src/main/java/fr/ul/projet/modele/Piece.java
+++ b/app/src/main/java/fr/ul/projet/modele/Piece.java
@@ -1,5 +1,6 @@
 package fr.ul.projet.modele;
 
+import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -14,12 +15,14 @@ public class Piece implements Parcelable {
 
     private int id;
     String nom;
-    String photoNord, photoSud, photoEst, photoOuest;
+    Uri photoNord, photoSud, photoEst, photoOuest;
 
     HashMap<Integer, Acces> acces;
 
+    boolean valide;
 
-    public Piece(String nom, String photoNord, String photoSud, String photoEst, String photoOuest){
+
+    public Piece(String nom, Uri photoNord, Uri photoSud, Uri photoEst, Uri photoOuest){
         this.id = FabriqueIdentifiant.getInstance().getIdentifiantPiece();
         this.photoNord = photoNord;
         this.photoSud = photoSud;
@@ -27,25 +30,27 @@ public class Piece implements Parcelable {
         this.photoOuest = photoOuest;
         this.nom = nom;
         this.acces = new HashMap<Integer, Acces>();
+        this.setValide();
     }
 
     public Piece(){
         this.id = FabriqueIdentifiant.getInstance().getIdentifiantPiece();
-        this.photoNord = "";
-        this.photoSud = "";
-        this.photoEst = "";
-        this.photoOuest = "";
+        this.photoNord = null;
+        this.photoSud = null;
+        this.photoEst = null;
+        this.photoOuest = null;
         this.nom = "";
         this.acces = new HashMap<Integer, Acces>();
+        this.setValide();
     }
 
     protected Piece(Parcel in){
         this.id = in.readInt();
         this.nom = in.readString();
-        this.photoNord = in.readString();
-        this.photoSud = in.readString();
-        this.photoEst = in.readString();
-        this.photoOuest = in.readString();
+        this.photoNord = in.readParcelable(Uri.class.getClassLoader());
+        this.photoSud = in.readParcelable(Uri.class.getClassLoader());
+        this.photoEst = in.readParcelable(Uri.class.getClassLoader());
+        this.photoOuest = in.readParcelable(Uri.class.getClassLoader());
         this.acces = new HashMap<Integer, Acces>();
         int size = in.readInt();
         for (int i = 0; i < size; i++){
@@ -71,10 +76,10 @@ public class Piece implements Parcelable {
     public void writeToParcel(Parcel dest, int flags){
         dest.writeInt(this.id);
         dest.writeString(this.nom);
-        dest.writeString(this.photoNord);
-        dest.writeString(this.photoSud);
-        dest.writeString(this.photoEst);
-        dest.writeString(this.photoOuest);
+        dest.writeParcelable(this.photoNord, flags);
+        dest.writeParcelable(this.photoSud, flags);
+        dest.writeParcelable(this.photoEst, flags);
+        dest.writeParcelable(this.photoOuest, flags);
         dest.writeInt(this.acces.size());
         for (Map.Entry<Integer, Acces> entry : this.acces.entrySet()){
             dest.writeInt(entry.getKey());
@@ -95,6 +100,19 @@ public class Piece implements Parcelable {
         this.id = i;
     }
 
+    public boolean isValide(){
+        return this.valide;
+    }
+
+    public void setValide(){
+
+        if (this.getPhotoNord() != null || this.getPhotoSud() != null || this.getPhotoEst() != null || this.getPhotoOuest() != null){
+            this.valide = true;
+        }else {
+            this.valide = false;
+        }
+    }
+
     public String getNom() {
         return this.nom;
     }
@@ -103,32 +121,32 @@ public class Piece implements Parcelable {
         this.nom = nom;
     }
 
-    public String getPhotoNord() {
+    public Uri getPhotoNord() {
         return this.photoNord;
     }
 
-    public void setPhotoNord(String photoNord){
+    public void setPhotoNord(Uri photoNord){
         this.photoNord = photoNord;
     }
 
-    public String getPhotoEst() {
+    public Uri getPhotoEst() {
         return this.photoEst;
     }
 
-    public void setPhotoEst(String photoEst){
+    public void setPhotoEst(Uri photoEst){
         this.photoEst = photoEst;
     }
 
-    public String getPhotoSud() {
+    public Uri getPhotoSud() {
         return this.photoSud;
     }
-    public void setPhotoSud(String photoSud){
+    public void setPhotoSud(Uri photoSud){
         this.photoSud = photoSud;
     }
-    public String getPhotoOuest(){
+    public Uri getPhotoOuest(){
         return this.photoOuest;
     }
-    public void setPhotoOuest(String photoOuest){
+    public void setPhotoOuest(Uri photoOuest){
         this.photoOuest = photoOuest;
     }
 
@@ -151,10 +169,10 @@ public class Piece implements Parcelable {
         try{
             piece.put("id", this.getId());
             piece.put("nom", this.getNom());
-            piece.put("cheminPhotoNord", this.getPhotoNord());
-            piece.put("cheminPhotoSud", this.getPhotoSud());
-            piece.put("cheminPhotoEst", this.getPhotoEst());
-            piece.put("cheminPhotoOuest", this.getPhotoOuest());
+            piece.put("cheminPhotoNord", this.getPhotoNord().getPath());
+            piece.put("cheminPhotoSud", this.getPhotoSud().getPath());
+            piece.put("cheminPhotoEst", this.getPhotoEst().getPath());
+            piece.put("cheminPhotoOuest", this.getPhotoOuest().getPath());
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/app/src/main/res/layout/activity_acces.xml b/app/src/main/res/layout/activity_acces.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4a5f3d4c263e9f32dd1b47d34eca61e4dfde38e5
--- /dev/null
+++ b/app/src/main/res/layout/activity_acces.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:id="@+id/acces"
+    android:layout_height="match_parent">
+
+    <Button
+        android:id="@+id/boutonRetour2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:onClick="backToPiece"
+        android:text="@string/backPiece"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.866" />
+
+    <Button
+        android:id="@+id/boutonAccueil2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:onClick="quit"
+        android:text="@string/quitter"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.951" />
+
+    <ImageView
+        android:id="@+id/imageView"
+        android:layout_width="399dp"
+        android:layout_height="248dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:srcCompat="@tools:sample/backgrounds/scenic" />
+
+    <TextView
+        android:id="@+id/textView2"
+        android:layout_width="222dp"
+        android:layout_height="45dp"
+        android:textSize="24sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.254" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_piece.xml b/app/src/main/res/layout/activity_piece.xml
index 1c4ee93cb881a39a527be05b6d8963bca3e254d7..bff8bc723b209ecce553f20c431c43abc727079d 100644
--- a/app/src/main/res/layout/activity_piece.xml
+++ b/app/src/main/res/layout/activity_piece.xml
@@ -45,26 +45,17 @@
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.951" />
 
-    <ImageView
-        android:id="@+id/imageView"
-        android:layout_width="379dp"
-        android:layout_height="263dp"
+    <LinearLayout
+        android:id="@+id/photos"
+        android:layout_width="359dp"
+        android:layout_height="266dp"
+        android:orientation="vertical"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
-        tools:srcCompat="@tools:sample/backgrounds/scenic" />
+        app:layout_constraintVertical_bias="0.404">
+
+    </LinearLayout>
 
-    <Button
-        android:id="@+id/button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:onClick="selectionImageDialog"
-        android:text="Button"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.498"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.25" />
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e7234d130d55ee80a9d8f302ccc7601d26704b34..4fa53b305d17d066f0a26072531bb2462969b46b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,6 +6,13 @@
     <string name="ouvrir_mess">Modèle correctement importé</string>
     <string name="quitter">Retour à l\'accueil</string>
     <string name="accueil">Retour au modèle</string>
+    <string name="backPiece">Retour à la pièce</string>
     <string name="creer_piece">Ajouter un pièce</string>
     <string name="sauvegarder">Sauvegarder le modèle</string>
+    <string name="nord">Photo Nord</string>
+    <string name="sud">Photo Sud</string>
+    <string name="est">Photo Est</string>
+    <string name="ouest">Photo Ouest</string>
+    <string name="piece_nom">%1$s : %2$s</string>
+    <string name="acces">%1$s : %2$s (%3$s)</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml
index 8e9109d13fc2e4e3fc5ef499c08aa6ddbe0e20c2..a01ef46df280492f539b397fa7452744727ad9c3 100644
--- a/app/src/main/res/xml/file_paths.xml
+++ b/app/src/main/res/xml/file_paths.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <paths xmlns:android="http://schemas.android.com/apk/res/android">
-    <!-- Spécifie les chemins des fichiers partagés -->
-    <external-path
-        name="external_files"
-        path="." />
+    <external-files-path
+        name="images"
+        path="Pictures/" />
 </paths>
\ No newline at end of file