Skip to content
Extraits de code Groupes Projets
Valider c213fa36 rédigé par Rémy Mathieu's avatar Rémy Mathieu
Parcourir les fichiers

Merge branch 'temp' into 'main'

Temp merge

See merge request !26
parents 9d58dafe 8abd9213
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!26Temp merge
......@@ -84,14 +84,14 @@ public class ProgramCreationActivity extends AppCompatActivity {
setContentView(R.layout.program_creation);
getSupportActionBar().hide();
init_days_TextView();
((TextView) findViewById(R.id.textview_monday)).setTypeface(Typeface.DEFAULT, Typeface.BOLD);
//init_days_TextView();
db = firebaseDb.getReference("Workouts");
get_DB_Exercices();
init_day_lists(); // initialisation des listes pour stocker les exercices choisis
init_checkboxes(); // initialisation des checkbox des jours
//init_checkboxes(); // initialisation des checkbox des jours
input_exo = findViewById(R.id.input_new_exo); // champ de recherche des exercices
exos_current_day = findViewById(R.id.exos_current_day_ListView); // liste des exercices choisis pour le jour courant
......@@ -219,11 +219,11 @@ public class ProgramCreationActivity extends AppCompatActivity {
}
/**
private void init_checkboxes() {
/**
* Ajoute les checkboxes dans la liste
*/
cb_lundi = findViewById(R.id.checkbox_monday);
cb_mardi = findViewById(R.id.checkbox_tuesday);
cb_mercredi = findViewById(R.id.checkbox_wednesday);
......@@ -240,6 +240,7 @@ public class ProgramCreationActivity extends AppCompatActivity {
cb_list.add(cb_samedi);
cb_list.add(cb_dimanche);
}
*/
private void init_day_lists() {
exoDetailsForEachDay.put("lundi", new ArrayList<>());
......@@ -252,11 +253,11 @@ public class ProgramCreationActivity extends AppCompatActivity {
System.out.println(exoDetailsForEachDay);
}
/**
void init_days_TextView() {
/**
* Ajoute à days_TextView tous les TextView des jours
*/
days_TextView.add(findViewById(R.id.textview_monday));
days_TextView.add(findViewById(R.id.textview_tuesday));
days_TextView.add(findViewById(R.id.textview_wednesday));
......@@ -265,6 +266,7 @@ public class ProgramCreationActivity extends AppCompatActivity {
days_TextView.add(findViewById(R.id.textview_saturday));
days_TextView.add(findViewById(R.id.textview_sunday));
}
*/
......
......@@ -34,7 +34,7 @@ public class WorkoutActivity extends AppCompatActivity {
private DatabaseReference db;
private Integer numberOfWorkouts;
private int[] workout_id = new int[25];
private boolean is_countdown = false;
private int timer;
......@@ -42,9 +42,11 @@ public class WorkoutActivity extends AppCompatActivity {
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 enclenché
private boolean workout_timer_counting = false; // vrai si le timer de l'exo est enclenché
private long timeLeftInMillis;
private boolean set_break_timer_counting = false; // vrai si le timer de pause est en train de décompter
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;
......@@ -63,11 +65,15 @@ public class WorkoutActivity extends AppCompatActivity {
db = firebaseDb.getReference("Programs");
getProgramData(id);
Button next_btn = findViewById(R.id.next_btn);
next_btn = findViewById(R.id.next_btn);
next_btn.setOnClickListener(v -> onNextClick());
ImageButton return_btn = findViewById(R.id.return_btn);
return_btn.setOnClickListener(view -> finish());
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);
......@@ -76,14 +82,17 @@ public class WorkoutActivity extends AppCompatActivity {
//Check if the user click on "start timer"
Button launch_timer = findViewById(R.id.launch_timer);
launch_timer.setOnClickListener(view -> {
updateTimer(timer, true);
countdown = workout_timer(timer);
countdown.start();
launch_timer.setVisibility(View.INVISIBLE);
workout_timer_started = true;
workout_timer_counting = true;
});
timeLeftInMillis = timer;
}
// Timer entre les séries
CountDownTimer set_timer() {
CountDownTimer workout_break_timer() {
CountDownTimer timer = new CountDownTimer(set_break_timer, 1000) {
public void onTick(long millisUntilFinished) {
set_break_timer_text.setText("Temps restant: " + millisUntilFinished / 1000);
......@@ -98,8 +107,11 @@ public class WorkoutActivity extends AppCompatActivity {
if (vibrator.hasVibrator()) {
vibrator.vibrate(vibrationDuration);
}
updateTimer((int) timeLeftInMillis, true);
workout_timer_counting = true;
if (workout_timer_started) {
countdown = workout_timer((int) timeLeftInMillis);
countdown.start();
workout_timer_counting = true;
}
}
};
return timer;
......@@ -166,14 +178,19 @@ public class WorkoutActivity extends AppCompatActivity {
set_break_timer = workout.child("break").getValue(Integer.class);
set_break_timer_text.setText(String.valueOf(set_break_timer/1000) + " secondes");
set_countDownTimer = set_timer();
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;
updateTimer((int) timeLeftInMillis, true);
workout_timer_counting = true;
// 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();
......@@ -192,7 +209,10 @@ public class WorkoutActivity extends AppCompatActivity {
launch_timer.setVisibility(View.VISIBLE);
}else{
launch_timer.setVisibility(View.INVISIBLE);
updateTimer(0, false);
if (countdown != null) {
countdown.cancel();
countdown.onFinish();
}
}
}
......@@ -205,26 +225,36 @@ public class WorkoutActivity extends AppCompatActivity {
@SuppressLint("SetTextI18n")
private void onNextClick() {
if (set_countDownTimer != null) {
set_countDownTimer.cancel();
set_countDownTimer.onFinish();
}
System.out.println("counting : " + workout_timer_counting + countdown);
if (workout_timer_counting && countdown != null) {
countdown.cancel();
countdown.onFinish();
countdown = null;
System.out.println("countdown = " + countdown);
workout_timer_counting = false;
}
TextView name = findViewById(R.id.workout_todo);
TextView description = findViewById(R.id.workout_detail);
ImageView image = findViewById(R.id.workout_image);
Button btn_next = findViewById(R.id.next_btn);
//Reset countdown of the exercise and hide button
if(is_countdown){
countdown.cancel();
}
updateTimer(0, false);
Button launch_timer = findViewById(R.id.launch_timer);
launch_timer.setVisibility(View.INVISIBLE);
if(step == 0){
finish();
}
// If it's not the last exercice, break and next exercice
// If it's not the last exercice, take a break then next exercice
else if(!Objects.equals(numberOfWorkouts, step)){
TextView timer_break = findViewById(R.id.timer_break);
CountDownTimer countDownBreak = new CountDownTimer(2000, 1000) {
CountDownTimer countDownBreak = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long l) {
timer_break.setText("");
......@@ -232,8 +262,8 @@ 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("");
//btn_next.setVisibility(View.INVISIBLE);
set_break_timer_text.setText("Il est temps de prendre une pause...");
set_break_btn.setVisibility(View.INVISIBLE);
}
......@@ -241,45 +271,53 @@ public class WorkoutActivity extends AppCompatActivity {
public void onFinish() {
timer_break.setText("");
image.setVisibility(View.VISIBLE);
btn_next.setVisibility(View.VISIBLE);
next_btn.setVisibility(View.VISIBLE);
set_break_btn.setVisibility(View.VISIBLE);
db = firebaseDb.getReference("Workouts");
getWorkoutData(Integer.toString(workout_id[step - 1]));
step ++;
}
}.start();
};
countDownBreak.start();
next_btn.setText("Passer");
next_btn.setOnClickListener(v -> {
countDownBreak.cancel();
countDownBreak.onFinish();
next_btn.setText("Suivant");
next_btn.setOnClickListener(v1 -> onNextClick());
});
} else if (numberOfWorkouts.equals(step)) {
name.setText("Workout terminé!");
name.setText("Entrainement terminé!");
description.setText("");
btn_next.setText("Retour à l'accueil");
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);
}
void updateTimer(Integer millis, Boolean isTime){
CountDownTimer workout_timer(Integer millis){
workout_timer_counting = true;
TextView timer = findViewById(R.id.workout_timer);
if(!isTime){
timer.setText("");
}else{
countdown = new CountDownTimer(millis, 1000) {
public void onTick(long millisUntilFinished) {
is_countdown = true;
int seconds = (int) (millisUntilFinished / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
timer.setText(String.format("%d:%02d", minutes, seconds));
timeLeftInMillis = millisUntilFinished;
}
public void onFinish() {
is_countdown = false;
timer.setText("Temps dépassé!");
CountDownTimer countdownTimer = new CountDownTimer(millis, 1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
timer.setText(String.format("%d:%02d", minutes, seconds));
timeLeftInMillis = millisUntilFinished;
}
public void onFinish() {
if (workout_timer_counting) {
timeLeftInMillis = 0;
timer.setText("Workout terminé!");
workout_timer_counting = false;
}
}.start();
}
}
};
return countdownTimer;
}
}
......@@ -133,7 +133,6 @@
android:id="@+id/set_break_timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pause"
android:textColor="@android:color/black"
app:layout_constraintBottom_toTopOf="@+id/set_break_btn"
app:layout_constraintEnd_toEndOf="@id/set_break_btn"
......
......@@ -46,22 +46,6 @@
android:textAlignment="center"
android:textSize="16sp" />
<!--
<Button
android:id="@+id/save_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="120dp"
android:layout_marginTop="12dp"
android:background="#FFFFFF"
android:backgroundTint="#FFFFFF"
android:clickable="true"
android:scaleType="fitCenter"
android:text="TEST"
android:textAlignment="center"
android:textSize="16sp" />
-->
</RelativeLayout>
<LinearLayout
......@@ -165,177 +149,96 @@
android:layout_marginTop="14dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_horizontal">
<TextView
<TableLayout
android:id="@+id/table_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins"
android:text="Sélectionnez les jours pour lesquels l'exercice sera ajouté :" />
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/checkbox_monday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
android:layout_height="wrap_content">
<TextView
android:id="@+id/textview_monday"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="lundi"
android:text="Lundi"
android:textSize="15dp" />
<CheckBox
android:id="@+id/checkbox_tuesday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
android:text="L"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<TextView
android:id="@+id/textview_tuesday"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="mardi"
android:text="Mardi"
android:textSize="15dp" />
<CheckBox
android:id="@+id/checkbox_wednesday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
android:text="M"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<TextView
android:id="@+id/textview_wednesday"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="mercredi"
android:text="Mercredi"
android:textColor="@color/black"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:text="M"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
<CheckBox
android:id="@+id/checkbox_thursday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<TextView
android:id="@+id/textview_thursday"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="jeudi"
android:text="Jeudi"
android:textSize="15dp" />
<CheckBox
android:id="@+id/checkbox_friday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
android:text="J"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<TextView
android:id="@+id/textview_friday"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="vendredi"
android:text="Vendredi"
android:textSize="15dp" />
<CheckBox
android:id="@+id/checkbox_saturday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
android:text="V"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<TextView
android:id="@+id/textview_saturday"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="samedi"
android:text="Samedi"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:text="S"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
<CheckBox
android:id="@+id/checkbox_sunday"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:buttonTint="@color/orange"
android:fontFamily="@font/poppins" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/black"/>
<TextView
android:id="@+id/textview_sunday"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:fontFamily="@font/poppins"
android:onClick="onNewDayTextClick"
android:tag="dimanche"
android:text="Dimanche"
android:textSize="15dp" />
</LinearLayout>
</LinearLayout>
android:text="D"
android:textAlignment="center"
android:textSize="20sp"
android:layout_weight="1"/>
</TableRow>
</TableLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter