diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java index 624d6a99e1e4be6379e1518949a19db3ab9ad62b..ef09429ebea10ab6efbf4d1e57e01cb0a9c32460 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ListExercicesAdapter.java @@ -68,29 +68,31 @@ public class ListExercicesAdapter extends ArrayAdapter<String> { ProgramCreationActivity activity = (ProgramCreationActivity) context; String exercise = values.get(position); - String training_days = ""; + final String[] training_days = {""}; Drawable delete_cross = context.getResources().getDrawable(R.drawable.cross_mark); Drawable pen = context.getResources().getDrawable(R.drawable.edit); // Get training days for this exercise for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) { if (set.getKey().name == exercise) { - training_days = ""; + training_days[0] = ""; for (String day : set.getValue()) { - training_days += getShortDayName(day) + ", "; + training_days[0] += getShortDayName(day) + " "; } } } - training_days = training_days.substring(0, training_days.length() - 2); + training_days[0] = training_days[0].substring(0, training_days[0].length() - 2); // Display texts and images in Views delete_button.setImageDrawable(delete_cross); edit_button.setImageDrawable(pen); exercise_name.setText(exercise); - training_daysView.setText(training_days); + training_daysView.setText(training_days[0]); // Ecouteur de clics pour chaque élément de la ListView edit_button.setOnClickListener(view -> { + current_days_checked = new ArrayList<String>(); + nbre_day = 0; days_exo = new ArrayList<>(); for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) { if (set.getKey().name == exercise) { @@ -209,7 +211,21 @@ public class ListExercicesAdapter extends ArrayAdapter<String> { key.breakVal = break_time; key.timer = Math.toIntExact(timer_exo); } + for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) { + if (set.getKey().name == exercise) { + set.setValue(current_days_checked); + } + } + } + for (Map.Entry<Exercise, ArrayList<String>> set : activity.program.entrySet()) { + if (set.getKey().name == exercise) { + training_days[0] = ""; + for (String day : set.getValue()) { + training_days[0] += getShortDayName(day) + " "; + } + } } + training_daysView.setText(training_days[0]); dialog.dismiss(); } else{ @@ -241,8 +257,6 @@ public class ListExercicesAdapter extends ArrayAdapter<String> { 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); }); @@ -353,6 +367,7 @@ public class ListExercicesAdapter extends ArrayAdapter<String> { } //for (CheckBox cb : cb_list) if (!Objects.equals(cb, cb_dimanche)) cb.setChecked(false); } + System.out.println(current_days_checked); } }; } diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java index 6a3668f5d000d989d574ae8e92b6abd04a95ee57..4b5a16d4a7dc67712d3f3a1c6893bb15a9716f42 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/ProgramCreationActivity.java @@ -57,6 +57,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -155,29 +156,48 @@ public class ProgramCreationActivity extends AppCompatActivity { public void saveProgramListener(){ Button save_btn = findViewById((R.id.save_button)); save_btn.setOnClickListener(v -> { - convertToProgramByDay(); - - try { - // recup le nom de programme comme nom de fichier -> nomdeprogramme.ser - EditText programNameEditText = findViewById(R.id.program_name); - String programName = programNameEditText.getText().toString(); - String programpath = programName + ".ser"; - - // place le HashMap du programme dans nomdeprogramme.ser - HashMap<String, ArrayList<Exercise>> entry = programByDay; - ExerciseEntry exerciseEntry = new ExerciseEntry(entry); - FileOutputStream fileOutputStream = openFileOutput(programpath, Context.MODE_PRIVATE); - ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); - objectOutputStream.writeObject(exerciseEntry); - objectOutputStream.close(); - fileOutputStream.close(); - - //Tell the mainActivity to refresh, to add the new program - setResult(1); - Toast.makeText(ProgramCreationActivity.this, "Programme enregistré !", + + String program_name = String.valueOf(R.id.program_name); + if(program_name.equals("")){ + Toast.makeText(ProgramCreationActivity.this, "Veuillez entrer un nom à votre programme !", Toast.LENGTH_SHORT).show(); - } catch (Exception e) { - e.printStackTrace(); + } + else{ + convertToProgramByDay(); + boolean all_empty = true; + for (ArrayList<Exercise> valeurs : programByDay.values()) { + if (!valeurs.isEmpty()) { + all_empty = false; + break; + } + } + if(all_empty){ + Toast.makeText(ProgramCreationActivity.this, "Veuillez entrer au moins un exercice à votre programme !", + Toast.LENGTH_SHORT).show(); + }else{ + try { + // recup le nom de programme comme nom de fichier -> nomdeprogramme.ser + EditText programNameEditText = findViewById(R.id.program_name); + String programName = programNameEditText.getText().toString(); + String programpath = programName + ".ser"; + + // place le HashMap du programme dans nomdeprogramme.ser + HashMap<String, ArrayList<Exercise>> entry = programByDay; + ExerciseEntry exerciseEntry = new ExerciseEntry(entry); + FileOutputStream fileOutputStream = openFileOutput(programpath, Context.MODE_PRIVATE); + ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); + objectOutputStream.writeObject(exerciseEntry); + objectOutputStream.close(); + fileOutputStream.close(); + + //Tell the mainActivity to refresh, to add the new program + setResult(1); + Toast.makeText(ProgramCreationActivity.this, "Programme enregistré !", + Toast.LENGTH_SHORT).show(); + } catch (Exception e) { + e.printStackTrace(); + } + } } }); @@ -190,6 +210,7 @@ public class ProgramCreationActivity extends AppCompatActivity { Button add_exo_button = findViewById(R.id.add_exo_button); add_exo_button.setOnClickListener(v -> { current_days_checked.clear(); + nbre_day = 0; // Récupérer la valeur du champ de texte AutoCompleteTextView String exercise_searched = input_exo.getText().toString();