Skip to content
Extraits de code Groupes Projets

Arthur

Fusionnées Arthur Schamroth a demandé de fusionner arthur vers main
4 fichiers
+ 316
114
Comparer les modifications
  • Côte à côte
  • En ligne
Fichiers
4
package be.lepl1509group13.workoutwarrior;
package be.lepl1509group13.workoutwarrior;
 
import be.lepl1509group13.workoutwarrior.ProgramCreationActivity;
 
import android.app.Dialog;
import android.content.Context;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;
 
import android.text.InputType;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ArrayAdapter;
 
import android.widget.Button;
 
import android.widget.CheckBox;
 
import android.widget.CompoundButton;
 
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toast;
 
import androidx.constraintlayout.widget.ConstraintLayout;
 
import java.util.ArrayList;
import java.util.ArrayList;
 
import java.util.Arrays;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Iterator;
import java.util.Map;
import java.util.Map;
 
import be.lepl1509group13.workoutwarrior.ProgramCreationActivity;
 
public class ListExercicesAdapter extends ArrayAdapter<String> {
public class ListExercicesAdapter extends ArrayAdapter<String> {
private final Context context;
private final Context context;
private ArrayList<String> values;
private ArrayList<String> values;
 
public Exercise actual_exo ;
 
public String img_actual_exo;
 
HashMap<Exercise, ArrayList<String>> program = new HashMap<>();
 
 
String name_exo;
 
String description_exo;
 
Long timer_exo;
 
Long break_exo;
 
ArrayList<String> days_exo = new ArrayList<String>();
 
CheckBox cb_lundi, cb_mardi, cb_mercredi, cb_jeudi, cb_vendredi, cb_samedi, cb_dimanche;
 
private ArrayList<CheckBox> cb_list = new ArrayList<>();
 
private ArrayList<String> current_days_checked = new ArrayList<>();
 
Integer nbre_day = 0;
 
public ListExercicesAdapter(Context context, ArrayList<String> values) {
public ListExercicesAdapter(Context context, ArrayList<String> values) {
super(context, R.layout.exercises_list_row, values);
super(context, R.layout.exercises_list_row, values);
this.context = context;
this.context = context;
@@ -40,7 +67,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
@@ -40,7 +67,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
ProgramCreationActivity activity = (ProgramCreationActivity) context;
ProgramCreationActivity activity = (ProgramCreationActivity) context;
System.out.println("values : " + values);
String exercise = values.get(position);
String exercise = values.get(position);
String training_days = "";
String training_days = "";
Drawable delete_cross = context.getResources().getDrawable(R.drawable.cross_mark);
Drawable delete_cross = context.getResources().getDrawable(R.drawable.cross_mark);
@@ -48,7 +74,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
@@ -48,7 +74,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
// Get training days for this exercise
// Get training days for this exercise
for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
System.out.println(set.getKey().name);
if (set.getKey().name == exercise) {
if (set.getKey().name == exercise) {
training_days = "";
training_days = "";
for (String day : set.getValue()) {
for (String day : set.getValue()) {
@@ -58,84 +83,168 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
@@ -58,84 +83,168 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
}
}
training_days = training_days.substring(0, training_days.length() - 2);
training_days = training_days.substring(0, training_days.length() - 2);
System.out.println("training days : " + training_days);
// Display texts and images in Views
// Display texts and images in Views
delete_button.setImageDrawable(delete_cross);
delete_button.setImageDrawable(delete_cross);
edit_button.setImageDrawable(pen);
edit_button.setImageDrawable(pen);
exercise_name.setText(exercise);
exercise_name.setText(exercise);
training_daysView.setText(training_days);
training_daysView.setText(training_days);
// Ecouteur de clics pour chaque élément de la ListView
// Ecouteur de clics pour chaque élément de la ListView
edit_button.setOnClickListener(view -> {
edit_button.setOnClickListener(view -> {
/*
days_exo = new ArrayList<>();
System.out.println("details : " + activity.program);
for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
if (set.getKey().name == exercise) {
View dialogView = inflater.inflate(R.layout.edit_workout, null);
for (String day : set.getValue()) {
builder.setView(dialogView);
if(!days_exo.contains(day)){
AlertDialog dialog = builder.create();
days_exo.add(day);
dialog.show();
}
}
name_exo = set.getKey().name;
TextView exerciseName = dialogView.findViewById(R.id.exercise_name);
description_exo = set.getKey().description;
exerciseName.setText(exercise);
timer_exo = Long.valueOf(set.getKey().timer);
break_exo = Long.valueOf(set.getKey().breakVal);
// Rechercher l'exercice dans la HashMap
img_actual_exo = set.getKey().image_url;
ArrayList<Exercise> exercises = activity.exoDetailsForEachDay.get(activity.current_day_displayed);
}
String imageUrl;
}
String description;
Dialog dialog = new Dialog(this.context);
for (Exercise exo : exercises) {
dialog.setContentView(R.layout.modify_exercice_popup);
if (Objects.equals(exo.name, exercise)) {
ImageView closeButton = dialog.findViewById(R.id.close_btn);
// Afficher les détails de l'exo
closeButton.setOnClickListener(w -> dialog.dismiss());
imageUrl = exo.image_url;
cb_lundi = dialog.findViewById(R.id.checkbox_monday);
ImageView imageView = dialogView.findViewById(R.id.exercise_image);
cb_mardi = dialog.findViewById(R.id.checkbox_tuesday);
int resourceId = context.getResources().getIdentifier(imageUrl, "drawable", context.getPackageName());
cb_mercredi = dialog.findViewById(R.id.checkbox_wednesday);
imageView.setImageResource(resourceId);
cb_jeudi = dialog.findViewById(R.id.checkbox_thursday);
cb_vendredi = dialog.findViewById(R.id.checkbox_friday);
TextView descriptionTextView = dialogView.findViewById(R.id.description_edit);
cb_samedi = dialog.findViewById(R.id.checkbox_saturday);
descriptionTextView.setText(exo.description);
cb_dimanche = dialog.findViewById(R.id.checkbox_sunday);
cb_list.add(cb_lundi);
TextView break_time_TextView = dialogView.findViewById(R.id.pause_edit);
cb_list.add(cb_mardi);
break_time_TextView.setText(String.valueOf(exo.breakVal/1000));
cb_list.add(cb_mercredi);
 
cb_list.add(cb_jeudi);
 
cb_list.add(cb_vendredi);
 
cb_list.add(cb_samedi);
 
cb_list.add(cb_dimanche);
 
 
for(int i = 0; i < days_exo.size(); i++){
 
if(days_exo.get(i).equals("lundi")){
 
cb_lundi.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
 
}
 
if(days_exo.get(i).equals("mardi")){
 
cb_mardi.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
 
}
 
if(days_exo.get(i).equals("mercredi")){
 
cb_mercredi.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
 
}
 
if(days_exo.get(i).equals("jeudi")){
 
cb_jeudi.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
 
}
 
if(days_exo.get(i).equals("vendredi")){
 
cb_vendredi.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
 
}
 
if(days_exo.get(i).equals("samedi")){
 
cb_samedi.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
 
}
 
if(days_exo.get(i).equals("dimanche")){
 
cb_dimanche.setChecked(true);
 
current_days_checked.add(days_exo.get(i));
 
nbre_day += 1;
}
}
}
}
// Enregistrer les modifications de l'exercice
for (CheckBox cb : cb_list) cb.setOnCheckedChangeListener(myCheckBoxListener);
Button save_btn = dialogView.findViewById(R.id.save_modif_button);
ConstraintLayout form_layout = dialog.findViewById(R.id.constraintLayout2);
save_btn.setOnClickListener(v -> {
EditText description_edit = dialogView.findViewById(R.id.description_edit);
EditText break_time_edit = dialogView.findViewById(R.id.pause_edit);
String new_description = description_edit.getText().toString();
int new_break_time = Integer.parseInt(break_time_edit.getText().toString());
// Rechercher l'exercice dans la HashMap et modifier ces paramètres
EditText description_text = dialog.findViewById(R.id.exercise_description);
 
EditText timer_edit = dialog.findViewById(R.id.exercise_timer);
 
EditText break_edit = dialog.findViewById(R.id.exercice_break);
 
TextView timer_text = dialog.findViewById(R.id.timer_text);
 
if(description_exo != null){
 
description_text.setText(description_exo);
 
}
 
if(timer_exo == 0){
 
timer_edit.setVisibility(View.INVISIBLE);
 
timer_edit.setEnabled(false);
 
timer_text.setText("");
 
}else{
 
timer_edit.setText(timer_exo.toString());
 
}
 
if(break_exo != null){
 
break_edit.setText(break_exo.toString());
 
}
for (Exercise exo : exercises) {
dialog.show();
if (Objects.equals(exo.name, exercise)) {
Button save_btn = dialog.findViewById(R.id.btn_save_modif);
exo.description = new_description;
save_btn.setOnClickListener(w -> {
exo.breakVal = new_break_time * 1000;
if(nbre_day > 0){
 
String description_str = description_text.getText().toString();
 
String string_break = break_edit.getText().toString();
 
Integer break_time = Integer.parseInt(string_break);
 
String string_timer = timer_edit.getText().toString();
 
if(string_timer.equals("")){
 
actual_exo = new Exercise(name_exo, description_str, break_time, "@drawable/developpe_couche_barre", 0);
 
}else{
 
Integer timer_int = Integer.parseInt(string_timer);
 
actual_exo = new Exercise(name_exo, description_str, break_time, "@drawable/developpe_couche_barre", timer_int);
 
}
 
Iterator<Map.Entry<Exercise, ArrayList<String>>> iterator = activity.program.entrySet().iterator();
 
while (iterator.hasNext()) {
 
Map.Entry<Exercise, ArrayList<String>> entry = iterator.next();
 
Exercise key = entry.getKey();
 
if (key.name.equals(exercise)) {
 
key.description = description_str;
 
key.breakVal = break_time;
 
key.timer = Math.toIntExact(timer_exo);
 
}
}
}
 
dialog.dismiss();
 
}
 
else{
 
Toast.makeText(this.context, "Veuillez sélectionner au moins un jour !",
 
Toast.LENGTH_SHORT).show();
}
}
activity.exoDetailsForEachDay.put(activity.current_day_displayed, exercises);
System.out.println("details : " + activity.exoDetailsForEachDay);
Toast.makeText(context, "Modifications sauvegardées", Toast.LENGTH_SHORT).show();
dialog.dismiss();
});
});
ImageView closeButton = dialogView.findViewById(R.id.close_btn);
form_layout.setOnClickListener(new View.OnClickListener() {
closeButton.setOnClickListener(v -> {
@Override
// Fermer la pop-up
public void onClick(View v) {
dialog.dismiss();
if (description_text.hasFocus()) {
 
description_text.clearFocus();
 
}
 
}
});
});
*/
 
description_text.setOnFocusChangeListener(new View.OnFocusChangeListener() {
 
@Override
 
public void onFocusChange(View v, boolean hasFocus) {
 
if (!hasFocus) {
 
description_text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
 
} else {
 
description_text.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
 
}
 
}
 
});
 
TextView name_exercice = dialog.findViewById(R.id.exercice_to_modify_name);
 
name_exercice.setText(name_exo);
 
 
int resId = context.getResources().getIdentifier(img_actual_exo, "drawable", context.getPackageName());
 
System.out.println(img_actual_exo);
 
System.out.println(resId);
 
ImageView image = dialog.findViewById(R.id.exercice_to_modify_image);
 
image.setImageResource(resId);
});
});
// Ajouter un OnClickListener à l'image
// Ajouter un OnClickListener à l'image
@@ -152,8 +261,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
@@ -152,8 +261,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
}
}
}
}
ArrayList<String> updatedExercicesList = new ArrayList<>();
ArrayList<String> updatedExercicesList = new ArrayList<>();
for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) {
updatedExercicesList.add(set.getKey().name);
updatedExercicesList.add(set.getKey().name);
@@ -171,11 +278,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
@@ -171,11 +278,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
this.values.clear();
this.values.clear();
this.values.addAll(exercices);
this.values.addAll(exercices);
notifyDataSetChanged();
notifyDataSetChanged();
System.out.println("values : " + values);
}
private void save_workout_details() {
}
}
String getShortDayName(String day) {
String getShortDayName(String day) {
@@ -189,7 +291,70 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
@@ -189,7 +291,70 @@ public class ListExercicesAdapter extends ArrayAdapter<String> {
else throw new IllegalArgumentException();
else throw new IllegalArgumentException();
}
}
public CompoundButton.OnCheckedChangeListener myCheckBoxListener =
 
new CompoundButton.OnCheckedChangeListener() {
 
@Override
 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
 
if (buttonView == cb_lundi) {
 
if(current_days_checked.contains("lundi")){
 
current_days_checked.remove("lundi");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("lundi");
 
nbre_day += 1;
 
}
 
} else if (buttonView == cb_mardi) {
 
if(current_days_checked.contains("mardi")){
 
current_days_checked.remove("mardi");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("mardi");
 
nbre_day += 1;
 
}
 
} else if (buttonView == cb_mercredi) {
 
if(current_days_checked.contains("mercredi")){
 
current_days_checked.remove("mercredi");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("mercredi");
 
nbre_day += 1;
 
}
 
} else if (buttonView == cb_jeudi) {
 
if(current_days_checked.contains("jeudi")){
 
current_days_checked.remove("jeudi");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("jeudi");
 
nbre_day += 1;
 
}
 
} else if (buttonView == cb_vendredi) {
 
if(current_days_checked.contains("vendredi")){
 
current_days_checked.remove("vendredi");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("vendredi");
 
nbre_day += 1;
 
}
 
} else if (buttonView == cb_samedi) {
 
if(current_days_checked.contains("samedi")){
 
current_days_checked.remove("samedi");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("samedi");
 
nbre_day += 1;
 
}
 
} else if (buttonView == cb_dimanche) {
 
if(current_days_checked.contains("dimanche")){
 
current_days_checked.remove("dimanche");
 
nbre_day -= 1;
 
}else{
 
current_days_checked.add("dimanche");
 
nbre_day += 1;
 
}
 
//for (CheckBox cb : cb_list) if (!Objects.equals(cb, cb_dimanche)) cb.setChecked(false);
 
}
 
}
 
};
}
}
Chargement en cours