Skip to content
Extraits de code Groupes Projets

POssibility to check the program in the program view

Fusionnées Rémy Mathieu a demandé de fusionner arthur vers main
4 fichiers
+ 208
2
Comparer les modifications
  • Côte à côte
  • En ligne
Fichiers
4
package be.lepl1509group13.workoutwarrior;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
@@ -42,6 +46,10 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
TextView start_workout, delete_workout, show_workout;
private boolean isLocalProgram = false;
private String[][] exercisesData = null;
private ArrayList<ArrayList<String>> allExercices = new ArrayList<ArrayList<String>>();
Map<String, ArrayList<Exercise>> all_ex_all_days = new HashMap<>();
String program_name = "";
ArrayList<String> all_days_exos = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -51,6 +59,7 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
//get the id of the workout && launch the workout
Intent this_intent = this.getIntent();
program_name = this_intent.getStringExtra("name");
int id = this_intent.getIntExtra("id", 0);
//finish activity of there is no id
if (id == 0){ this.finish(); }
@@ -86,7 +95,64 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
}
private void showWorkout() {
//todo
Dialog dialog = new Dialog(ProgramDetailActivity.this);
dialog.setContentView(R.layout.detail_program_popup);
TextView program_name_popup = dialog.findViewById(R.id.program_name);
program_name_popup.setText(program_name);
ImageView closeButton = dialog.findViewById(R.id.close_btn);
closeButton.setOnClickListener(w -> dialog.dismiss());
ListView listView = dialog.findViewById(R.id.list_exo_program);
// Création tableau avec nom d'exo
String[] exo_name = new String[exercisesData.length];
for (int i = 0; i < exercisesData.length; i++) {
exo_name[i] = exercisesData[i][0];
}
String[] days_exos = new String[exercisesData.length];
for (int i = 0; i < exercisesData.length; i++) {
String globalString = "";
for (String key : all_ex_all_days.keySet()) {
ArrayList<Exercise> values = all_ex_all_days.get(key);
for (Exercise ex : values) {
if (ex.name.equals(exercisesData[i][0])) {
globalString += key + ", ";
break;
}
}
}
globalString = globalString.replaceAll(", $", " ");
days_exos[i] = globalString;
}
// Création tableau avec description d'exo
String[] exo_description = new String[exercisesData.length];
for (int i = 0; i < exercisesData.length; i++) {
exo_description[i] = exercisesData[i][1];
}
ArrayList<HashMap<String, String>> list = new ArrayList<>();
for (int i = 0; i < exo_name.length; i++) {
HashMap<String, String> map = new HashMap<>();
map.put("title", exo_name[i]);
map.put("subtitle", exo_description[i]);
map.put("days", days_exos[i]);
list.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(
ProgramDetailActivity.this,
list,
R.layout.exo_in_program_item,
new String[]{"title", "subtitle", "days"},
new int[]{R.id.title_textview, R.id.subtitle_textview, R.id.day_item});
listView.setAdapter(adapter);
dialog.show();
}
private void deleteWorkout() {
@@ -155,9 +221,12 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
for (String filename : fileNames){
if (filename.equals(name + ".ser")){
ArrayList<String> exo = new ArrayList<String>();
//update the title of the program
TextView title = findViewById(R.id.title);
title.setText(name);
exo.add(name);
FileInputStream fileInputStream = openFileInput(filename);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
@@ -165,10 +234,23 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
// ici tu peux utiliser entry comme programme perso
HashMap<String, ArrayList<Exercise>> entry = exerciseEntry.getEntry();
for (Map.Entry<String, ArrayList<Exercise>> entrySet : entry.entrySet()) {
String key = entrySet.getKey(); // Récupération de la clé
ArrayList<Exercise> value = entrySet.getValue(); // Récupération de la valeur correspondante
all_ex_all_days.put(key, value);
}
for (Map.Entry<String, ArrayList<Exercise>> set : entry.entrySet()) {
for (Exercise values : set.getValue()){
String customName = values.name;
exo.add(customName);
String description = values.description;
exo.add(description);
}
String dayOfTheWeek = new SimpleDateFormat("EEEE", Locale.FRENCH).format(date.getTime());
String day = set.getKey();
if(Objects.equals(dayOfTheWeek, day)){
//Get the data from the day of the week only
int totalExercises = 0;
@@ -196,6 +278,16 @@ public class ProgramDetailActivity extends AppCompatActivity implements ProgramA
recyclerView.setAdapter(adapter);
}
}
boolean axo_in_program = false;
for (ArrayList<String> element : allExercices) {
if (element.equals(exo)) {
axo_in_program = true;
break;
}
}
if(!axo_in_program) {
allExercices.add(exo);
}
objectInputStream.close();
fileInputStream.close();
}
Chargement en cours