diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java index 58141cfc1e2a8c8acb55d3b84b863ae901c9a552..63beeb088192ef4ad9ea3015d9c57f1a10879b23 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java @@ -22,6 +22,7 @@ import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; +import java.util.Arrays; import java.util.Objects; public class WorkoutActivity extends AppCompatActivity { @@ -45,7 +46,7 @@ public class WorkoutActivity extends AppCompatActivity { private boolean workout_timer_started = false; // vrai si le timer de l'exo a déjà été démarré (qu'il soit sur pause ou non) private long timeLeftInMillis; // temps restant sur le timer du workout Button next_btn; - + int exerciseIndexToDisplay = 0; @Override @@ -64,6 +65,10 @@ public class WorkoutActivity extends AppCompatActivity { if (id == 0){ String[][] exercisesData = (String[][]) intent.getSerializableExtra("exercisesData"); //todo pour Killian + System.out.println("custom : " + Arrays.deepToString(exercisesData)); + + next_btn.setOnClickListener(v -> onNextClickCustomProgram(exercisesData)); + displayCustomExercise(exercisesData); }else{ //it's a program from the database db = firebaseDb.getReference("Programs"); @@ -93,6 +98,89 @@ public class WorkoutActivity extends AppCompatActivity { timeLeftInMillis = timer; } + // Lauch custom program + void onNextClickCustomProgram(String[][] exercises) { + exerciseIndexToDisplay++; + System.out.println("index : " + exerciseIndexToDisplay); + System.out.println("len : " + exercises.length); + if (exerciseIndexToDisplay >= exercises.length) { + System.out.println("on finish"); + finish(); + } else { + TextView name = findViewById(R.id.workout_todo); + TextView description = findViewById(R.id.workout_detail); + ImageView image = findViewById(R.id.workout_image); + + + Button launch_timer = findViewById(R.id.launch_timer); + launch_timer.setVisibility(View.INVISIBLE); + + name.setText(exercises[exerciseIndexToDisplay][0]); + name.setVisibility(View.INVISIBLE); + + description.setText(exercises[exerciseIndexToDisplay][1]); + description.setVisibility(View.INVISIBLE); + + int resourceId = getResources().getIdentifier(exercises[exerciseIndexToDisplay][2], "drawable", getPackageName()); + image.setImageResource(resourceId); + image.setVisibility(View.INVISIBLE); + TextView timer_break = findViewById(R.id.timer_break); + CountDownTimer countDownBreak = new CountDownTimer(3000, 1000) { + @Override + public void onTick(long l) { + timer_break.setText(""); + name.setText(""); + description.setText(""); + image.setVisibility(View.INVISIBLE); + timer_break.setText("" + l / 1000); + //btn_next.setVisibility(View.INVISIBLE); + set_break_timer_text.setText("Il est temps de prendre une pause..."); + set_break_btn.setVisibility(View.INVISIBLE); + } + + @Override + public void onFinish() { + set_break_timer_text.setText(""); + timer_break.setText(""); + next_btn.setVisibility(View.VISIBLE); + set_break_btn.setVisibility(View.VISIBLE); + displayCustomExercise(exercises); + } + }; + countDownBreak.start(); + next_btn.setText("Passer"); + next_btn.setOnClickListener(v -> { + countDownBreak.cancel(); + countDownBreak.onFinish(); + next_btn.setText("Suivant"); + //next_btn.setOnClickListener(v1 -> displayCustomExercise(exercises)); + }); + } + + } + + void displayCustomExercise(String[][] exercises) { + if (exerciseIndexToDisplay >= exercises.length) finish(); + next_btn.setOnClickListener(v1 -> onNextClickCustomProgram(exercises)); + TextView name = findViewById(R.id.workout_todo); + name.setText(exercises[exerciseIndexToDisplay][0]); + name.setVisibility(View.VISIBLE); + + TextView description = findViewById(R.id.workout_detail); + description.setText(exercises[exerciseIndexToDisplay][1]); + description.setVisibility(View.VISIBLE); + + ImageView image = findViewById(R.id.workout_image); + int resourceId = getResources().getIdentifier(exercises[exerciseIndexToDisplay][2], "drawable", getPackageName()); + image.setImageResource(resourceId); + image.setVisibility(View.VISIBLE); + } + + + + + + // Timer entre les séries CountDownTimer workout_break_timer() { CountDownTimer timer = new CountDownTimer(set_break_timer, 1000) { @@ -258,7 +346,7 @@ public class WorkoutActivity extends AppCompatActivity { else if(!Objects.equals(numberOfWorkouts, step)){ TextView timer_break = findViewById(R.id.timer_break); - CountDownTimer countDownBreak = new CountDownTimer(10000, 1000) { + CountDownTimer countDownBreak = new CountDownTimer(3000, 1000) { @Override public void onTick(long l) { timer_break.setText("");