diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java index 6a3668f5d000d989d574ae8e92b6abd04a95ee57..38fcd490e06574879bd18ccf4efa0154a785ac28 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java @@ -306,7 +306,8 @@ public class ProgramCreationActivity extends AppCompatActivity { }else{ Integer timer_int = Integer.parseInt(string_timer); actual_exo = new Exercise(exercise_searched, description_str, break_time, img, timer_int); - actual_exo = new Exercise(exercise_searched, description_str, break_time, img, 0); + //nice + //actual_exo = new Exercise(exercise_searched, description_str, break_time, img, 0); } addToProgram(actual_exo, new ArrayList<>(current_days_checked)); dialog.dismiss(); diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java index 86d3a79af70797ea432b8390b7e57c2dbfc18934..942ac23f74600dd815a72ab402b3f2ea5cf68572 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/WorkoutActivity.java @@ -3,11 +3,9 @@ package be.lepl1509group13.workoutwarrior; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; -import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.CountDownTimer; -import android.os.Vibrator; import android.util.Log; import android.view.View; import android.widget.Button; @@ -33,20 +31,15 @@ public class WorkoutActivity extends AppCompatActivity { private DatabaseReference db; private Integer numberOfWorkouts; private int[] workout_id = new int[25]; - - private int timer; - - Button set_break_btn; - TextView set_break_timer_text; - private CountDownTimer set_countDownTimer; - long set_break_timer; // temps de pause entre les séries - private boolean set_break_timer_counting = false; // vrai si le timer de pause est en train de décompter + private Button btn_exercise_timer; + private Button btn_next_during_break; + private TextView countdown_text; + private TextView text_little_timer; private boolean workout_timer_counting = false; // vrai si le timer de l'exo est en train de décompter - 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; + private Button next_btn; + private int exerciseIndexToDisplay = 0; @Override @@ -58,6 +51,11 @@ public class WorkoutActivity extends AppCompatActivity { next_btn = findViewById(R.id.next_btn); next_btn.setOnClickListener(v -> onNextClick()); + btn_exercise_timer = findViewById(R.id.btn_exercise_timer); + btn_next_during_break = findViewById(R.id.btn_next_during_break); + countdown_text = findViewById(R.id.workout_timer); + text_little_timer = findViewById(R.id.text_little_timer); + //get the id of the workout && launch the workout Intent intent = this.getIntent(); int id = intent.getIntExtra("id", 0); @@ -78,22 +76,29 @@ public class WorkoutActivity extends AppCompatActivity { ImageButton return_btn = findViewById(R.id.return_btn); return_btn.setOnClickListener(view -> { if (countdown != null) countdown.cancel(); - if (set_countDownTimer != null) set_countDownTimer.cancel(); finish(); }); - // Timer de pause entre les séries - set_break_btn = findViewById(R.id.set_break_btn); - set_break_timer_text = findViewById(R.id.set_break_timer); - - //Check if the user click on "start timer" - Button launch_timer = findViewById(R.id.launch_timer); - launch_timer.setOnClickListener(view -> { - countdown = workout_timer(timer); - countdown.start(); - launch_timer.setVisibility(View.INVISIBLE); - workout_timer_started = true; - workout_timer_counting = true; + //Check if the user click on the timer button + btn_exercise_timer.setOnClickListener(view -> { + Log.d("TAG", "onCreate: time left " + timeLeftInMillis); + if(btn_exercise_timer.getText() == "Pause"){ + Log.d("TAG", "onCreate: COUNTDOWN CANCEL"); + countdown.cancel(); + btn_exercise_timer.setText("Reprendre"); + }else if(btn_exercise_timer.getText() == "Reprendre") { + Log.d("TAG", "onCreate: COUNTDOWN RESTART"); + countdown = workout_timer((int) timeLeftInMillis); + countdown.start(); + btn_exercise_timer.setText("Pause"); + }else{ + Log.d("TAG", "onCreate: COUNTDOWN START"); + countdown = workout_timer(timer); + countdown.start(); + btn_exercise_timer.setText("Pause"); + countdown_text.setVisibility(View.VISIBLE); + workout_timer_counting = true; + } }); timeLeftInMillis = timer; } @@ -105,7 +110,6 @@ public class WorkoutActivity extends AppCompatActivity { */ exerciseIndexToDisplay++; - TextView countdown_text = findViewById(R.id.workout_timer); countdown_text.setVisibility(View.INVISIBLE); if (countdown != null) countdown.cancel(); @@ -117,9 +121,7 @@ public class WorkoutActivity extends AppCompatActivity { 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); + btn_exercise_timer.setVisibility(View.INVISIBLE); name.setText(exercises[exerciseIndexToDisplay][0]); name.setVisibility(View.INVISIBLE); @@ -139,31 +141,27 @@ public class WorkoutActivity extends AppCompatActivity { 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); + next_btn.setVisibility(View.INVISIBLE); + btn_next_during_break.setVisibility(View.VISIBLE); + text_little_timer.setText("Il est temps de prendre une pause..."); } @Override public void onFinish() { - set_break_timer_text.setText(""); + text_little_timer.setText(""); timer_break.setText(""); next_btn.setVisibility(View.VISIBLE); - set_break_btn.setVisibility(View.VISIBLE); + btn_next_during_break.setVisibility(View.INVISIBLE); displayCustomExercise(exercises); - next_btn.setText("Suivant"); } }; countDownBreak.start(); - next_btn.setText("Passer"); - next_btn.setOnClickListener(v -> { + //button to pass the break between 2 exercises + btn_next_during_break.setOnClickListener(view -> { countDownBreak.cancel(); countDownBreak.onFinish(); - //next_btn.setText("Suivant"); - //next_btn.setOnClickListener(v1 -> displayCustomExercise(exercises)); }); } - } void displayCustomExercise(String[][] exercises) { @@ -188,29 +186,35 @@ public class WorkoutActivity extends AppCompatActivity { timer = Integer.parseInt(exercises[exerciseIndexToDisplay][3]) * 1000; System.out.println("timer = " + timer); + if(timer != 0){ + //Show the button to start the timer + btn_exercise_timer.setVisibility(View.VISIBLE); + }else{ + btn_exercise_timer.setVisibility(View.INVISIBLE); + if (countdown != null) { + countdown.cancel(); + } + } + + /* if (timer > 0) { //Check if the user click on "start timer" - Button launch_timer = findViewById(R.id.launch_timer); - launch_timer.setVisibility(View.VISIBLE); - launch_timer.setOnClickListener(view -> { - TextView countdown_text = findViewById(R.id.workout_timer); + btn_exercise_timer.setVisibility(View.VISIBLE); + btn_exercise_timer.setOnClickListener(view -> { countdown_text.setVisibility(View.VISIBLE); countdown = workout_timer(timer); countdown.start(); - launch_timer.setVisibility(View.INVISIBLE); - workout_timer_started = true; + btn_exercise_timer.setVisibility(View.INVISIBLE); workout_timer_counting = true; }); timeLeftInMillis = timer; } - } - - - - + */ + } // Timer entre les séries + /* CountDownTimer workout_break_timer() { CountDownTimer timer = new CountDownTimer(set_break_timer, 1000) { public void onTick(long millisUntilFinished) { @@ -235,7 +239,7 @@ public class WorkoutActivity extends AppCompatActivity { }; return timer; } - + */ private void getProgramData(int id){ db.addValueEventListener(new ValueEventListener() { @@ -294,46 +298,16 @@ public class WorkoutActivity extends AppCompatActivity { int resourceId = getResources().getIdentifier(workout.child("image_url").getValue(String.class), "drawable", getPackageName()); image.setImageResource(resourceId); - set_break_timer = workout.child("break").getValue(Integer.class); - set_break_timer_text.setText(String.valueOf(set_break_timer/1000) + " secondes"); - - set_countDownTimer = workout_break_timer(); - set_break_btn.setOnClickListener(view -> { - if (set_break_timer_counting) { - set_countDownTimer.cancel(); - set_break_timer_text.setText(String.valueOf(set_break_timer/1000) + " secondes"); - set_break_timer_counting = false; - - // Si le timer avait déjà été actionné, on reprend le décompte - if (workout_timer_started) { - countdown = workout_timer((int) timeLeftInMillis); - countdown.start(); - workout_timer_counting = true; - } - } - else { - set_countDownTimer.start(); - set_break_timer_counting = true; - if (workout_timer_counting && countdown != null) { - countdown.cancel(); - workout_timer_counting = false; - } - } - }); - - Button launch_timer = findViewById(R.id.launch_timer); timer = workout.child("timer").getValue(Integer.class); if(timer != 0){ //Show the button to start the timer - launch_timer.setVisibility(View.VISIBLE); + btn_exercise_timer.setVisibility(View.VISIBLE); }else{ - launch_timer.setVisibility(View.INVISIBLE); + btn_exercise_timer.setVisibility(View.INVISIBLE); if (countdown != null) { countdown.cancel(); - countdown.onFinish(); } } - } @Override @@ -345,28 +319,17 @@ public class WorkoutActivity extends AppCompatActivity { @SuppressLint("SetTextI18n") private void onNextClick() { - try { + if(countdown != null){ countdown.cancel(); - TextView countdown_text = findViewById(R.id.workout_timer); - countdown_text.setText(""); - } catch (Exception e){ - Log.d("Exception", "onNextClick: " + e); - } - - - if (set_countDownTimer != null) { - set_countDownTimer.cancel(); - //set_countDownTimer.onFinish(); - workout_timer_started = false; + countdown_text.setVisibility(View.INVISIBLE); } 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); + btn_exercise_timer.setVisibility(View.INVISIBLE); + btn_exercise_timer.setText("Démarrer le timer"); if(step == 0){ finish(); @@ -382,41 +345,37 @@ public class WorkoutActivity extends AppCompatActivity { name.setText(""); description.setText(""); image.setVisibility(View.INVISIBLE); + next_btn.setVisibility(View.INVISIBLE); + btn_next_during_break.setVisibility(View.VISIBLE); 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); + text_little_timer.setText("Il est temps de prendre une pause..."); } @Override public void onFinish() { + text_little_timer.setText(""); timer_break.setText(""); image.setVisibility(View.VISIBLE); next_btn.setVisibility(View.VISIBLE); - set_break_btn.setVisibility(View.VISIBLE); + btn_next_during_break.setVisibility(View.INVISIBLE); db = firebaseDb.getReference("Workouts"); getWorkoutData(Integer.toString(workout_id[step - 1])); step ++; } }; countDownBreak.start(); - next_btn.setText("Passer"); - next_btn.setOnClickListener(v -> { + //button to pass the break between 2 exercises + btn_next_during_break.setOnClickListener(view -> { countDownBreak.cancel(); countDownBreak.onFinish(); - next_btn.setText("Suivant"); - next_btn.setOnClickListener(v1 -> onNextClick()); }); } else if (numberOfWorkouts.equals(step)) { name.setText("Entrainement terminé!"); description.setText(""); next_btn.setText("Retour à l'accueil"); image.setImageResource(0); - set_break_timer_text.setText(""); - set_break_btn.setVisibility(View.INVISIBLE); step = 0; } - System.out.println("countdown = " + countdown); } CountDownTimer workout_timer(Integer millis){ diff --git a/app/src/main/res/layout/activity_workout.xml b/app/src/main/res/layout/activity_workout.xml index afe126e9d0f6aa2d1edb08241b7a1268a8d1e0a5..2c5f0c306f9342d6c636644237199b98c17c5bc6 100644 --- a/app/src/main/res/layout/activity_workout.xml +++ b/app/src/main/res/layout/activity_workout.xml @@ -109,7 +109,7 @@ app:layout_constraintStart_toStartOf="parent" /> <Button - android:id="@+id/launch_timer" + android:id="@+id/btn_exercise_timer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="35dp" @@ -119,27 +119,16 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> - <Button - android:id="@+id/set_break_btn" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Pause" - android:layout_marginTop="20dp" - app:layout_constraintTop_toBottomOf="@id/workout_detail" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent"/> - <TextView - android:id="@+id/set_break_timer" + android:id="@+id/text_little_timer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" - app:layout_constraintBottom_toTopOf="@+id/set_break_btn" - app:layout_constraintEnd_toEndOf="@id/set_break_btn" - app:layout_constraintStart_toStartOf="@id/set_break_btn" - app:layout_constraintTop_toBottomOf="@+id/workout_detail" /> - - + app:layout_constraintBottom_toTopOf="@+id/btn_exercise_timer" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/workout_detail" + tools:text="textview" /> <Button android:id="@+id/next_btn" @@ -152,4 +141,16 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" /> + <Button + android:id="@+id/btn_next_during_break" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginRight="25dp" + android:layout_marginBottom="25dp" + android:backgroundTint="@color/orange" + android:text="Passer" + android:visibility="invisible" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file