modif finales + ratio

This commit is contained in:
NonoL3Robot
2022-03-17 10:04:52 +01:00
parent feb779db25
commit 8b9f86a727
9 changed files with 89 additions and 82 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ android {
defaultConfig { defaultConfig {
applicationId "com.example.outilcuisson" applicationId "com.example.outilcuisson"
minSdk 23 minSdk 21
targetSdk 32 targetSdk 32
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
@@ -11,7 +11,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.adapter.FragmentStateAdapter;
/** /**
* Gestionnaire des différent fragments de l'application * Gestionnaire des différents fragments de l'application
* *
* @author THIZY Alexandre * @author THIZY Alexandre
* @author VABRE Lucàs * @author VABRE Lucàs
@@ -20,14 +20,14 @@ import androidx.viewpager2.adapter.FragmentStateAdapter;
public class AdaptateurPage extends FragmentStateAdapter { public class AdaptateurPage extends FragmentStateAdapter {
/** /**
* Nombre de fragment de l'application * Nombre de fragments de l'application
*/ */
private static final int NB_FRAGMENT = 2; private static final int NB_FRAGMENT = 2;
/** /**
* Crée une adaptateur de page * Crée un adaptateur de page
* *
* @param activite le Main Activity de référence * @param activite la MainActivity de référence
*/ */
public AdaptateurPage(FragmentActivity activite) { public AdaptateurPage(FragmentActivity activite) {
super(activite); super(activite);
@@ -68,7 +68,7 @@ public class AfficherFragment extends Fragment {
View view = inflater.inflate(R.layout.afficher_fragment, container,false); View view = inflater.inflate(R.layout.afficher_fragment, container,false);
/* Elements intéractifs */ /* Éléments intéractifs */
listView = view.findViewById(R.id.listeCuisson); listView = view.findViewById(R.id.listeCuisson);
adapterCuissons = new ArrayAdapter<>(getActivity(), adapterCuissons = new ArrayAdapter<>(getActivity(),
R.layout.ligne_liste, R.id.item_cuisson, new ArrayList<>()); R.layout.ligne_liste, R.id.item_cuisson, new ArrayList<>());
@@ -88,8 +88,8 @@ public class AfficherFragment extends Fragment {
} }
/** /**
* Met a jour la liste visuelle des cuissons par rapport au cuissons * Met à jour la liste visuelle des cuissons par rapport aux cuissons
* enregistré dans le MainActivity * enregistrées dans la MainActivity
*/ */
public void afficherCuisson() { public void afficherCuisson() {
adapterCuissons.clear(); adapterCuissons.clear();
@@ -121,7 +121,7 @@ public class AfficherFragment extends Fragment {
} }
/** /**
* Réalise l'action souhaité en fonction de l'item du menu selectionné * Réalise l'action souhaitée en fonction de l'item du menu selectionné
*/ */
@SuppressLint("NonConstantResourceId") @SuppressLint("NonConstantResourceId")
@Override @Override
@@ -149,10 +149,10 @@ public class AfficherFragment extends Fragment {
* Crée une fenêtre qui montre les informations de la cuisson sélectionnée * Crée une fenêtre qui montre les informations de la cuisson sélectionnée
* avec notamment la valeur du thermostat * avec notamment la valeur du thermostat
* *
* @param index indice de la cuisson sélectionné dans la liste des cuissons * @param index indice de la cuisson sélectionnée dans la liste des cuissons
*/ */
public void afficherThermos(int index) { public void afficherThermos(int index) {
/* Recupère l'objet cuisson */ /* Récupère l'objet cuisson */
Cuisson cuisson = activity.getListeCuisson().get(index); Cuisson cuisson = activity.getListeCuisson().get(index);
String content = getString(R.string.alert_content_thermos, String content = getString(R.string.alert_content_thermos,
@@ -170,7 +170,7 @@ public class AfficherFragment extends Fragment {
/** /**
* Supprime l'objet correspondant cuisson * Supprime l'objet correspondant cuisson
* *
* @param index indice de la cuissons sélectionnée dans la liste des * @param index indice de la cuisson sélectionnée dans la liste des
* cuissons * cuissons
*/ */
public void supprimerCuisson(int index) { public void supprimerCuisson(int index) {
@@ -44,22 +44,22 @@ public class AjouterFragment extends Fragment {
EditText inputPlat; EditText inputPlat;
/** /**
* Element graphique qui permet de sélectionner une durée * Élément graphique qui permet de sélectionner une durée
*/ */
TimePicker inputDuree; TimePicker inputDuree;
/** /**
* Zone de texte correspondant a la température du plat * Zone de texte correspondant à la température du plat
*/ */
EditText inputTemperature; EditText inputTemperature;
/** /**
* Boutton qui efface les champs et rétablie leurs valeurs par défaut * Bouton qui efface les champs et rétabli leurs valeurs par défaut
*/ */
Button btnEffacer; Button btnEffacer;
/** /**
* Boutton qui essaye de créer/editer une cuisson si celle-ci est valide * Bouton qui essaye de créer/éditer une cuisson si celle-ci est valide
*/ */
Button btnValider; Button btnValider;
@@ -98,11 +98,11 @@ public class AjouterFragment extends Fragment {
inputDuree.setIs24HourView(true); inputDuree.setIs24HourView(true);
champsDefaut(); champsDefaut();
/* Actions des buttons */ /* Actions des boutons */
btnValider.setOnClickListener(this::actionBtnValider); btnValider.setOnClickListener(this::actionBtnValider);
btnEffacer.setOnClickListener(this::actionBtnEffacer); btnEffacer.setOnClickListener(this::actionBtnEffacer);
/* Référence le main activity */ /* Référence la MainActivity */
activity = (MainActivity) getActivity(); activity = (MainActivity) getActivity();
return view; return view;
@@ -113,16 +113,16 @@ public class AjouterFragment extends Fragment {
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
/* Si on est en mode edition, on préremplis le champs */ /* Si on est en mode édition, on pré-rempli le champ */
if (activity.modeEdition) { if (activity.modeEdition) {
Cuisson cuisson = activity.cuissonAEditer; Cuisson cuisson = activity.cuissonAEditer;
System.out.println(cuisson); System.out.println(cuisson);
/* On remplis les champs */ /* On rempli les champs */
inputPlat.setText(cuisson.getPlat()); inputPlat.setText(cuisson.getPlat());
inputDuree.setHour(cuisson.getHeure()); inputDuree.setCurrentHour(cuisson.getHeure());
inputDuree.setMinute(cuisson.getMinute()); inputDuree.setCurrentMinute(cuisson.getMinute());
inputTemperature.setText(Integer.toString(cuisson.getDegree())); inputTemperature.setText(Integer.toString(cuisson.getDegree()));
} }
} }
@@ -135,23 +135,23 @@ public class AjouterFragment extends Fragment {
} }
/** /**
* Action lors du clic sur le boutton Valider * Action lors du clic sur le bouton Valider
* *
* @param view Ecouteur d'évènement * @param view Écouteur d'évènements
*/ */
private void actionBtnValider(View view) { private void actionBtnValider(View view) {
/* Récupère toutes les valeurs des champs */ /* Récupère toutes les valeurs des champs */
String txtPlat = inputPlat.getText().toString(); String txtPlat = inputPlat.getText().toString();
String txtTemperature = inputTemperature.getText().toString(); String txtTemperature = inputTemperature.getText().toString();
int hDuree = inputDuree.getHour(); int hDuree = inputDuree.getCurrentHour();
int mDuree = inputDuree.getMinute(); int mDuree = inputDuree.getCurrentMinute();
/* Convertis la température en entier */ /* Convertit la température en entier */
int temperature = txtTemperature.isEmpty() ? -1 : Integer.parseInt(txtTemperature); int temperature = txtTemperature.isEmpty() ? -1 : Integer.parseInt(txtTemperature);
/* /*
* Si le mode edition est activée, edite la cuisson, sinon crée une * Si le mode édition est activé, édite la cuisson, sinon crée une
* nouvelle cuisson * nouvelle cuisson
*/ */
if (activity.modeEdition) if (activity.modeEdition)
@@ -160,7 +160,7 @@ public class AjouterFragment extends Fragment {
} }
/** /**
* Edite une cuisson * Édite une cuisson
* *
* @param plat Nouveau nom du plat * @param plat Nouveau nom du plat
* @param heure La nouvelle durée en heure de la cuisson * @param heure La nouvelle durée en heure de la cuisson
@@ -174,7 +174,8 @@ public class AjouterFragment extends Fragment {
activity.changeFragment(0); activity.changeFragment(0);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
/* Crée un boite de dialogue qui informe que les valeurs sont incorrectes */ /* Crée une boite de dialogue qui informe que les valeurs sont
incorrectes */
new AlertDialog new AlertDialog
.Builder(getContext()) .Builder(getContext())
.setTitle(R.string.alert_title_error) .setTitle(R.string.alert_title_error)
@@ -188,7 +189,7 @@ public class AjouterFragment extends Fragment {
/** /**
* Methode qui tente de créer une nouvelle Cuisson si elle est valide * Methode qui tente de créer une nouvelle Cuisson si elle est valide
* *
* Si la cuisson est valide mais qu'elle existe deja, on demande si l'on * Si la cuisson est valide mais qu'elle existe déjà, on demande si l'on
* veut l'éditer et change la valeur suivant le choix de l'utilisateur * veut l'éditer et change la valeur suivant le choix de l'utilisateur
* *
* @param plat Le nouveau nom du plat * @param plat Le nouveau nom du plat
@@ -200,7 +201,7 @@ public class AjouterFragment extends Fragment {
try { try {
Cuisson cuisson = new Cuisson(plat, heure, minutes, temperature); Cuisson cuisson = new Cuisson(plat, heure, minutes, temperature);
/* On ajoute la cuisson a la liste des cuisson */ /* On ajoute la cuisson à la liste des cuissons */
activity.addCuisson(cuisson); activity.addCuisson(cuisson);
/* Remet les champs vides */ /* Remet les champs vides */
@@ -225,7 +226,7 @@ public class AjouterFragment extends Fragment {
} catch (CuissonDejaExistanteException e) { } catch (CuissonDejaExistanteException e) {
/* /*
* La cuisson existe deja, on propose d'éditer le plat qui fait * La cuisson existe déjà, on propose d'éditer le plat qui fait
* doublon * doublon
*/ */
new AlertDialog new AlertDialog
@@ -258,7 +259,7 @@ public class AjouterFragment extends Fragment {
/* Recherche l'indice de l'élément qui fait doublon */ /* Recherche l'indice de l'élément qui fait doublon */
for (int j = 0; j < listeCuisson.size(); j++) { for (int j = 0; j < listeCuisson.size(); j++) {
/* Et modifie sa valeur avant d'arreter la fonction */ /* Et modifie sa valeur avant d'arrêter la fonction */
if (listeCuisson.get(j).getPlat().equals(plat)) { if (listeCuisson.get(j).getPlat().equals(plat)) {
listeCuisson.get(j).editCuisson(plat, listeCuisson.get(j).editCuisson(plat,
heure, minutes, temperature); heure, minutes, temperature);
@@ -269,7 +270,7 @@ public class AjouterFragment extends Fragment {
} }
/** /**
* Action lors du clic sur le boutton Effacer * Action lors du clic sur le bouton Effacer
* *
* *
* @param view non utilisé * @param view non utilisé
@@ -280,12 +281,12 @@ public class AjouterFragment extends Fragment {
} }
/** /**
* Remet la valeurs des champs par défaut * Remet les valeurs des champs par défaut
*/ */
private void champsDefaut() { private void champsDefaut() {
inputPlat.setText(""); inputPlat.setText("");
inputDuree.setHour(0); inputDuree.setCurrentHour(0);
inputDuree.setMinute(40); inputDuree.setCurrentMinute(40);
inputTemperature.setText(""); inputTemperature.setText("");
} }
} }
@@ -9,8 +9,8 @@ package com.example.outilcuisson;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Classe qui défini une cuisson * Classe qui définit une cuisson
* Elements serealizable qui permettra d'être sauvegardé et chargé depuis un * Éléments serializable qui permettra d'être sauvegardé et chargé depuis un
* fichier * fichier
* *
* @author THIZY Alexandre * @author THIZY Alexandre
@@ -21,8 +21,7 @@ public class Cuisson implements Serializable {
/** /**
* Valeur de la chaîne qui représente une cuisson si l'une des * Valeur de la chaîne qui représente une cuisson si l'une des
* caractéristiques * caractéristiques de la cuisson est invalide
* de la cuisson est invalide
*/ */
private static final String CHAINE_DEFAUT = "Information incohérente"; private static final String CHAINE_DEFAUT = "Information incohérente";
@@ -50,18 +49,26 @@ public class Cuisson implements Serializable {
* La durée en heure de la cuisson du plat * La durée en heure de la cuisson du plat
*/ */
private int heure; private int heure;
/**
* La durée en minute de la cuisson du plat
*/
private int minute; private int minute;
/**
* La température en degrés de la cuisson du plat
*/
private int degree; private int degree;
/** /**
* Crée une nouvelle cuisson * Crée une nouvelle cuisson
* *
* @param plat La nom du plat * @param plat Le nom du plat
* @param heure La durée en heure * @param heure La durée en heure
* @param minute La durée en minutes * @param minute La durée en minutes
* @param degree La température en degrée * @param degree La température en degrés
* @throws IllegalArgumentException Si les valeurs passées en arguments * @throws IllegalArgumentException Si les valeurs passées en arguments
* ne sont pas corrects * ne sont pas correctes
*/ */
public Cuisson(String plat, int heure, int minute, int degree) { public Cuisson(String plat, int heure, int minute, int degree) {
if (!platValide(plat) if (!platValide(plat)
@@ -78,10 +85,9 @@ public class Cuisson implements Serializable {
/** /**
* Détermine si un nom de plat est valide (non vide, au plus 20 * Détermine si un nom de plat est valide (non vide, au plus 20
* caractères et ne * caractères et ne contient pas le caractère '|')
* contient pas le caractère '|')
* *
* @param nomPlat chaîne à testesr * @param nomPlat chaîne à tester
* @return un booléen égal à vrai ssi la chaîne à tester est valide * @return un booléen égal à vrai ssi la chaîne à tester est valide
*/ */
public static boolean platValide(String nomPlat) { public static boolean platValide(String nomPlat) {
@@ -90,12 +96,12 @@ public class Cuisson implements Serializable {
} }
/** /**
* Prédicat qui défini si un horaire est valide * Prédicat qui définit si un horaire est valide
* Les heures et les minutes doivent être valides et ne doivent pas être * Les heures et les minutes doivent être valides et ne doivent pas être
* nulles * nulles
* *
* @param heure La durée en heure a tester * @param heure La durée en heure à tester
* @param minute La durée en minutes a tester * @param minute La durée en minutes à tester
* @return true si le prédicat est vérifié, false sinon * @return true si le prédicat est vérifié, false sinon
*/ */
public static boolean horaireValide(int heure, int minute) { public static boolean horaireValide(int heure, int minute) {
@@ -167,11 +173,11 @@ public class Cuisson implements Serializable {
} }
/** /**
* Edite la totalité des champs de la cuisson * Édite la totalité des champs de la cuisson
* *
* @param plat Le nouveau nom du plat * @param plat Le nouveau nom du plat
* @param heure La nouvelle durée en heure de la cuisson * @param heure La nouvelle durée en heure de la cuisson
* @param minute La nouvelle durée en minutes de la cuisson * @param minute La nouvelle durée en minutes de la cuisson
* @param degree Le nouvelle température de la cuisson * @param degree Le nouvelle température de la cuisson
* @throws IllegalArgumentException Si les paramètres sont incorrects * @throws IllegalArgumentException Si les paramètres sont incorrects
*/ */
@@ -201,7 +207,7 @@ public class Cuisson implements Serializable {
} }
/** /**
* Renvoie le thermostat correspondant à la temperature argument * Renvoie le thermostat correspondant à la température argument
* (celle-ci doit être inférieure à TEMPERATURE_MAX) * (celle-ci doit être inférieure à TEMPERATURE_MAX)
* *
* @return l'entier égal au thermostat ou -1 si la température est invalide * @return l'entier égal au thermostat ou -1 si la température est invalide
@@ -225,8 +231,7 @@ public class Cuisson implements Serializable {
* @return une chaîne constituée du caractère espace * @return une chaîne constituée du caractère espace
*/ */
private static String chaineEspace(int nbEspace) { private static String chaineEspace(int nbEspace) {
StringBuilder aRenvoyer = new StringBuilder(); final char ESPACE = ' ';
for (int i = 1; i <= nbEspace; i++) aRenvoyer.append(" "); return new String(new char[nbEspace]).replace('\0', ESPACE);
return aRenvoyer.toString();
} }
} }
@@ -7,8 +7,8 @@
package com.example.outilcuisson; package com.example.outilcuisson;
/** /**
* Exception levé lorsque l'utilisateur décide de créer une nouvelle cuisson * Exception levée lorsque l'utilisateur décide de créer une nouvelle cuisson
* qui à le même nom que l'une des cuissons déja crée dans l'application * qui a le même nom que l'une des cuissons déjà créée dans l'application
* *
* @author THIZY Alexandre * @author THIZY Alexandre
* @author VABRE Lucàs * @author VABRE Lucàs
@@ -29,6 +29,8 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
/** /**
* Activité principale de l'application
*
* @author THIZY Alexandre * @author THIZY Alexandre
* @author VABRE Lucàs * @author VABRE Lucàs
* @author VILLENEUVE Noé * @author VILLENEUVE Noé
@@ -51,12 +53,12 @@ public class MainActivity extends AppCompatActivity {
private ViewPager2 gestionnairePagination; private ViewPager2 gestionnairePagination;
/** /**
* Défini si l'utilisateur est entrain de éditer une cuisson * Définit si l'utilisateur est en train d'éditer une cuisson
*/ */
public boolean modeEdition = false; public boolean modeEdition = false;
/** /**
* La cuisson que l'utilisateur est entrain de éditer * La cuisson que l'utilisateur est en train d'éditer
*/ */
public Cuisson cuissonAEditer; public Cuisson cuissonAEditer;
@@ -94,17 +96,14 @@ public class MainActivity extends AppCompatActivity {
} }
/** /**
* Ajoute une cuisson a la liste des cuissons * Ajoute une cuisson dans la liste des cuissons
* *
* @param cuisson Objet cuisson a ajouter dans la liste * @param cuisson Objet cuisson à ajouter dans la liste
*/ */
public void addCuisson(Cuisson cuisson) throws CuissonDejaExistanteException { public void addCuisson(Cuisson cuisson) throws CuissonDejaExistanteException {
if (estDansCuisson(cuisson)) throw new CuissonDejaExistanteException(); if (estDansCuisson(cuisson)) throw new CuissonDejaExistanteException();
listeCuisson.add(cuisson); listeCuisson.add(cuisson);
/* Test affichage du contennu de la liste des cuisson */
System.out.println(Arrays.asList(listeCuisson));
} }
/** /**
@@ -115,10 +114,10 @@ public class MainActivity extends AppCompatActivity {
} }
/** /**
* Vérifie si la cuisson passée en paramètre est déja dans la liste des * Vérifie si la cuisson passée en paramètre est déjà dans la liste des
* cuisson * cuisson
* *
* @param aTester La Cuisson a tester * @param aTester La Cuisson à tester
* @return true si la cuisson est présente dans la liste, false sinon * @return true si la cuisson est présente dans la liste, false sinon
*/ */
private boolean estDansCuisson(Cuisson aTester) { private boolean estDansCuisson(Cuisson aTester) {
@@ -129,9 +128,9 @@ public class MainActivity extends AppCompatActivity {
} }
/** /**
* Lance l'edition d'une cuisson en redirigeant l'utilisateur vers le * Lance l'édition d'une cuisson en redirigeant l'utilisateur vers le
* fragment d'édition, défini le que l'utilisateur est en mode édition et * fragment d'édition, définit que l'utilisateur est en mode édition et
* référence la cuisson a éditer dans la classe activity * référence la cuisson à éditer dans la classe activity
* *
* @param index L'indice de la cuisson à éditer dans la liste des cuissons * @param index L'indice de la cuisson à éditer dans la liste des cuissons
*/ */
@@ -142,7 +141,7 @@ public class MainActivity extends AppCompatActivity {
} }
/** /**
* Charge le fichier de sauvegarde et attribue les cuissons sauvegardée * Charge le fichier de sauvegarde et attribue les cuissons sauvegardées
* dans la liste des cuissons * dans la liste des cuissons
*/ */
private void chargerFichier() { private void chargerFichier() {
@@ -162,7 +161,7 @@ public class MainActivity extends AppCompatActivity {
} }
/** /**
* Suvegarde les liste des cuissons dans le fichier de sauvegarde * Suvegarde la liste des cuissons dans le fichier de sauvegarde
*/ */
private void sauvegarderFichier() { private void sauvegarderFichier() {
try { try {
@@ -189,7 +188,7 @@ public class MainActivity extends AppCompatActivity {
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }
/* Réalise l'action souhaité en fonction de l'item du menu selectionné */ /* Réalise l'action souhaitée en fonction de l'item du menu selectionné */
@SuppressLint("NonConstantResourceId") @SuppressLint("NonConstantResourceId")
@Override @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { public boolean onOptionsItemSelected(@NonNull MenuItem item) {
@@ -232,7 +231,7 @@ public class MainActivity extends AppCompatActivity {
} }
/** /**
* Change le fragment courrant * Change le fragment courant
* *
* @param pos indice du fragment dans le ViewPager2 * @param pos indice du fragment dans le ViewPager2
*/ */
+6 -4
View File
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- Espacement -->
<dimen name="categories_margin">5dp</dimen> <dimen name="categories_margin">5dp</dimen>
<dimen name="title_margin_bottom">10dp</dimen> <dimen name="title_margin_bottom">10dp</dimen>
<dimen name="cuissons_padding">5dp</dimen> <dimen name="cuissons_padding">20dp</dimen>
<!-- Polices --> <!-- Polices -->
<dimen name="titre_police">20sp</dimen> <dimen name="titre_police">35sp</dimen>
<dimen name="categories_police">16sp</dimen> <dimen name="categories_police">24sp</dimen>
<dimen name="cuissons_police">16sp</dimen> <dimen name="cuissons_police">24sp</dimen>
</resources> </resources>
+3 -3
View File
@@ -6,13 +6,13 @@
<style name="tablayout_style" parent="clickable_element_style"> <style name="tablayout_style" parent="clickable_element_style">
<item name="tabTextColor">@color/text_color</item> <item name="tabTextColor">@color/text_color</item>
<item name="tabIndicatorColor">@color/text_color</item> <item name="tabIndicatorColor">@color/text_color</item>
<item name="tabMaxWidth">0dp</item>
<item name="tabGravity">fill</item>
<item name="tabMode">fixed</item>
</style> </style>
<style name="button_ok_style" parent="clickable_element_style"> <style name="button_ok_style" parent="clickable_element_style">
<item name="android:textColor">@color/white</item> <item name="android:textColor">@color/white</item>
</style> </style>
<style name="button_cancel_style" parent="clickable_element_style">
<item name="buttonBarNegativeButtonStyle">?attr/buttonBarButtonStyle</item>
</style>
<style name="textview_style"> <style name="textview_style">
<item name="android:textColor">@color/text_color</item> <item name="android:textColor">@color/text_color</item>