diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramDetailActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramDetailActivity.java
index 65a0bae10d3f14a3eca9fdec14c6687134a981a9..01810455af67658aa2ea5f73786a4565cee2c802 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramDetailActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramDetailActivity.java
@@ -4,12 +4,12 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.Button;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -39,7 +39,9 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
     private final FirebaseDatabase firebaseDb = FirebaseDatabase.getInstance();
     private DatabaseReference db;
     ImageButton return_btn;
-    TextView start_workout, delete_workout;
+    TextView start_workout, delete_workout, show_workout;
+    private boolean isLocalProgram = false;
+    private String[][] exercisesData = null;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -53,6 +55,12 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
         //finish activity of there is no id
         if (id == 0){ this.finish(); }
 
+        delete_workout = findViewById(R.id.delete_workout);
+        delete_workout.setOnClickListener(view -> deleteWorkout());
+
+        show_workout = findViewById(R.id.show_workout);
+        show_workout.setOnClickListener(view -> showWorkout());
+
         db = firebaseDb.getReference("Programs");
         getProgramData(id, this_intent.getStringExtra("name"));
 
@@ -62,12 +70,23 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
         start_workout = findViewById(R.id.start_workout);
         start_workout.setOnClickListener(view -> {
             Intent intent = new Intent(ProgramDetailActivity.this, WorkoutActivity.class);
-            intent.putExtra("id", id);
+            if(isLocalProgram){
+                //si c'est un programme perso et qu'on clique sur démarrer
+                //on envoie un id qui est égal à 0, pour que Workout Activity comprenne que c'est un exercise perso
+                intent.putExtra("id", 0);
+                //on envoie la liste des exos sous forme de liste
+                intent.putExtra("exercisesData", exercisesData);
+            }else{
+                //si c'est un programme de la base de donnée et qu'on clique sur démarrer
+                //on envoie l'id du programme dans l'activité WorkoutActivity
+                intent.putExtra("id", id);
+            }
             startActivity(intent);
         });
+    }
 
-        delete_workout = findViewById(R.id.delete_workout);
-        delete_workout.setOnClickListener(view -> deleteWorkout());
+    private void showWorkout() {
+        //todo
     }
 
     private void deleteWorkout() {
@@ -125,11 +144,7 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
     private void getProgramData(int id, String name){
         if(id == -1){
             //It's a custom program
-
-            //TEMPORAIRE !!!
-            Button start = findViewById(R.id.start_workout);
-            start.setVisibility(View.INVISIBLE);
-
+            isLocalProgram = true;
             try {
                 // recup files saved (garde que ".ser")
                 File dir = getFilesDir();
@@ -159,7 +174,8 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
                                 int totalExercises = 0;
                                 for (Exercise values : set.getValue()){totalExercises ++;}
 
-                                String[][] exercisesData = new String[totalExercises][];
+                                //String[][] exercisesData = new String[totalExercises][];
+                                exercisesData = new String[totalExercises][];
 
                                 //for each exercises in the current day, get the details
                                 int exerciseId = 0;
@@ -184,16 +200,16 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
                         fileInputStream.close();
                     }
                 }
-
             } catch (IOException | ClassNotFoundException e) {
                 e.printStackTrace();
             }
         }else{
-            Button delete = findViewById(R.id.delete_workout);
-            delete.setVisibility(View.INVISIBLE);
+            isLocalProgram = false;
+            delete_workout.setVisibility(View.INVISIBLE);
+            show_workout.setVisibility(View.INVISIBLE);
             db.addValueEventListener(new ValueEventListener() {
                 @Override
-                public void onDataChange(DataSnapshot snapshot) {
+                public void onDataChange(@NonNull DataSnapshot snapshot) {
                     DataSnapshot program = snapshot.child(Integer.toString(id));
 
                     //update the title of the program
@@ -209,7 +225,7 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
                 }
 
                 @Override
-                public void onCancelled(DatabaseError error) {
+                public void onCancelled(@NonNull DatabaseError error) {
                     Toast.makeText(ProgramDetailActivity.this, "Fail to get data.", Toast.LENGTH_SHORT).show();
                 }
             });
@@ -219,7 +235,7 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
     private void getExercisesData(String[] exercises_id){
         db.addValueEventListener(new ValueEventListener() {
             @Override
-            public void onDataChange(DataSnapshot snapshot) {
+            public void onDataChange(@NonNull DataSnapshot snapshot) {
                 String[][] exercisesData = new String[exercises_id.length][];
 
                 //For each exercises that is link with the program in the database, add the data
@@ -242,7 +258,7 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
             }
 
             @Override
-            public void onCancelled(DatabaseError error) {
+            public void onCancelled(@NonNull DatabaseError error) {
                 Toast.makeText(ProgramDetailActivity.this, "Fail to get data.", Toast.LENGTH_SHORT).show();
             }
         });
diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java
index 9d99ddf3f00bc6cc2f9cad36b6485cbb49392594..58141cfc1e2a8c8acb55d3b84b863ae901c9a552 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java
@@ -22,9 +22,6 @@ import com.google.firebase.database.DatabaseReference;
 import com.google.firebase.database.FirebaseDatabase;
 import com.google.firebase.database.ValueEventListener;
 
-import org.w3c.dom.Text;
-
-import java.util.Locale;
 import java.util.Objects;
 
 public class WorkoutActivity extends AppCompatActivity {
@@ -57,17 +54,21 @@ public class WorkoutActivity extends AppCompatActivity {
         setContentView(R.layout.activity_workout);
         getSupportActionBar().hide();
 
+        next_btn = findViewById(R.id.next_btn);
+        next_btn.setOnClickListener(v -> onNextClick());
+
         //get the id of the workout && launch the workout
         Intent intent = this.getIntent();
         int id = intent.getIntExtra("id", 0);
-        //finish activity of there is no id
-        if (id == 0){ this.finish(); }
-
-        db = firebaseDb.getReference("Programs");
-        getProgramData(id);
-
-        next_btn = findViewById(R.id.next_btn);
-        next_btn.setOnClickListener(v -> onNextClick());
+        //if the id is 0, then it's a custom program
+        if (id == 0){
+            String[][] exercisesData = (String[][]) intent.getSerializableExtra("exercisesData");
+            //todo pour Killian
+        }else{
+            //it's a program from the database
+            db = firebaseDb.getReference("Programs");
+            getProgramData(id);
+        }
 
         ImageButton return_btn = findViewById(R.id.return_btn);
         return_btn.setOnClickListener(view -> {
diff --git a/app/src/main/res/layout/activity_detail_program.xml b/app/src/main/res/layout/activity_detail_program.xml
index 71611fd9f2306e0bb4cef096b3bae4aef842e6e2..c51058b09796eaf173a83da195376927ed14b0d6 100644
--- a/app/src/main/res/layout/activity_detail_program.xml
+++ b/app/src/main/res/layout/activity_detail_program.xml
@@ -35,6 +35,20 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
+    <Button
+        android:id="@+id/delete_workout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@color/orange"
+        android:backgroundTint="@color/orange"
+        android:text="@string/delete_workout"
+        android:textColor="@color/black"
+        app:iconTint="@color/orange"
+        android:layout_marginEnd="15dp"
+        app:layout_constraintBottom_toBottomOf="@+id/navigation_menu"
+        app:layout_constraintEnd_toEndOf="@+id/navigation_menu"
+        app:layout_constraintTop_toTopOf="@+id/navigation_menu" />
+
     <ScrollView
         android:id="@+id/scrollView_program_view"
         android:layout_width="377dp"
@@ -98,12 +112,12 @@
         app:layout_constraintStart_toStartOf="parent" />
 
     <Button
-        android:id="@+id/delete_workout"
+        android:id="@+id/show_workout"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:background="@color/orange"
         android:backgroundTint="@color/orange"
-        android:text="@string/delete_workout"
+        android:text="@string/show_workout"
         android:textColor="@color/black"
         app:iconTint="@color/orange"
         app:layout_constraintBottom_toBottomOf="parent"
@@ -111,5 +125,4 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/start_workout" />
 
-
 </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 daafd4599a7d636bfd77bcb343a7d04c1176315d..2624b16b5748a98d20d58629cc0d92c1930fc209 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -9,6 +9,7 @@
     <string name="entrainement_badminton">Entrainement Badminton</string>
     <string name="launch_workout">Démarrer</string>
     <string name="delete_workout">Supprimer le programme</string>
+    <string name="show_workout">Afficher / Modifier le programme</string>
     <string name="title_activity_account">AccountActivity</string>
     <string name="prompt_email">Email</string>
     <string name="prompt_password">Password</string>