Ekawa  1.0
BTS SNIR LaSalle Avignon 2021
Preference.java
Aller à la documentation de ce fichier.
1 package com.example.ekawa;
2 
3 import android.content.SharedPreferences;
4 
5 import android.util.Log;
6 
7 import java.text.DateFormat;
8 import java.util.Date;
9 import java.util.Map;
10 
23 public class Preference
24 {
28  private static final String TAG = "Preference";
29 
30  // Noms des préférences de l'utilisateur
31  public final static String CAPSULE = "capsulePreferee";
32  public final static String BOISSON = "boissonPreferee";
33  public final static String DERNIERE_DATE = "derniereDate";
34  public final static String NB_CAFE_DU_JOUR = "nombreCafeDuJour";
35 
36  private SharedPreferences donneesUtilisateurs;
37 
42  public Preference(Ihm ihm)
43  {
44  Log.d(TAG, "Preference()");
45  donneesUtilisateurs = ihm.getPreferences(ihm.MODE_PRIVATE);
46  }
47 
54  public Object obtenir(String nomPreference)
55  {
56  Log.d(TAG, "obtenir() nomPreference = " + nomPreference);
57  Map<String,?> donnees = donneesUtilisateurs.getAll();
58  Log.d(TAG, "obtenir() donnees = " + donnees);
59  if(contient(nomPreference))
60  return donnees.get(nomPreference);
61  else
62  return "";
63  }
64 
71  public int obtenirNombreCafeDuJour(int nombreCafeDuJour)
72  {
73  String date = DateFormat.getDateInstance().format(new Date());
77  editer(Preference.NB_CAFE_DU_JOUR, nombreCafeDuJour);
78 
79  if(date.equals((String) obtenir(Preference.DERNIERE_DATE)))
80  nombreCafeDuJour = (int) obtenir(Preference.NB_CAFE_DU_JOUR);
81  else
82  {
83  editer(Preference.NB_CAFE_DU_JOUR, nombreCafeDuJour);
85  nombreCafeDuJour = 0;
86  }
87  return nombreCafeDuJour;
88  }
89 
96  public boolean contient(String nomPreference)
97  {
98  Log.d(TAG, "contient()");
99  if(donneesUtilisateurs.contains(nomPreference))
100  return true;
101  return false;
102  }
103 
110  public void editer(String nomPreference, String valeur)
111  {
112  Log.d(TAG, "editer(String)");
113  donneesUtilisateurs.edit().putString(nomPreference, valeur).apply();
114  }
115 
122  public void editer(String nomPreference, int valeur)
123  {
124  Log.d(TAG, "editer(int)");
125  donneesUtilisateurs.edit().putInt(nomPreference, valeur).apply();
126  }
127 
134  public void editer(String nomPreference, boolean valeur)
135  {
136  Log.d(TAG, "editer(boolean)");
137  donneesUtilisateurs.edit().putBoolean(nomPreference, valeur).apply();
138  }
139 
145  public void supprimer(String nomPreference)
146  {
147  Log.d(TAG, "supprimer()");
148  donneesUtilisateurs.edit().remove(nomPreference).apply();
149  }
150 
157  {
158  int i = 0;
160  {
161  ++i;
162  }
163  return i;
164  }
165 
171  {
172  Log.d(TAG, "supprimerLesProgrammations()");
173  int id = 0;
175  {
176  String idProgrammation = Programmation.PROGRAMMATION + id;
177  supprimer(idProgrammation);
178  ++id;
179  }
180  }
181 
187  public void reorganiserLesProgrammations(int position)
188  {
189  Log.d(TAG, "reorganiserLesProgrammations()");
190  if(position >= Programmation.MIN_PROGRAMMATION && position < Programmation.MAX_PROGRAMMATION)
191  {
192  int anciennePosition = position + 1;
193  String idAncienneProgrammation = Programmation.PROGRAMMATION + anciennePosition;
194  String idNouvelleProgrammation = Programmation.PROGRAMMATION + position;
195  if(contient(idAncienneProgrammation))
196  {
197  editer(idNouvelleProgrammation, (int) obtenir(idAncienneProgrammation));
198  editer(idNouvelleProgrammation + "_" + Programmation.CAPSULE, (int) obtenir(idAncienneProgrammation + "_" + Programmation.CAPSULE));
199  editer(idNouvelleProgrammation + "_" + Programmation.BOISSON, (int) obtenir(idAncienneProgrammation + "_" + Programmation.BOISSON));
200  editer(idNouvelleProgrammation + "_" + Programmation.JOUR, (int) obtenir(idAncienneProgrammation + "_" + Programmation.JOUR));
201  editer(idNouvelleProgrammation + "_" + Programmation.HEURE, (String) obtenir(idAncienneProgrammation + "_" + Programmation.HEURE));
202  editer(idNouvelleProgrammation + "_" + Programmation.FREQUENCE, (int) obtenir(idAncienneProgrammation + "_" + Programmation.FREQUENCE));
203  editer(idNouvelleProgrammation + "_" + Programmation.IDENTIFIANT, (int) obtenir(idAncienneProgrammation + "_" + Programmation.IDENTIFIANT));
204 
205  supprimer(idAncienneProgrammation);
206  }
207  reorganiserLesProgrammations(anciennePosition);
208  }
209  }
210 }
int obtenirNombreCafeDuJour(int nombreCafeDuJour)
Méthode qui retourne le nombre de café du jour.
Definition: Preference.java:71
void editer(String nomPreference, boolean valeur)
Méthode qui permet de créer ou modifier une préférence.
static final String FREQUENCE
L&#39;identifiant qui permet l&#39;enregistrement de la fréquence de la programmation.
static final String CAPSULE
La capsule dans les préférences.
Definition: Preference.java:31
static final String CAPSULE
L&#39;identifiant qui permet l&#39;enregistrement du nom de la capsule de la programmation.
static final String HEURE
L&#39;identifiant qui permet l&#39;enregistrement de l&#39;heure de la programmation.
Object obtenir(String nomPreference)
Méthode qui permet d&#39;obtenir une préférence.
Definition: Preference.java:54
static final String DERNIERE_DATE
La dernière date dans les préférences.
Definition: Preference.java:33
static final String NB_CAFE_DU_JOUR
Le nombre de café du jour dans les préférences.
Definition: Preference.java:34
static final int MIN_PROGRAMMATION
Le nombre minimum de programmation.
static final String BOISSON
La boisson dans les préférences.
Definition: Preference.java:32
boolean contient(String nomPreference)
Méthode qui permet de vérifier la présence d&#39;une préférence.
Definition: Preference.java:96
Preference(Ihm ihm)
Constructeur de la classe Preference.
Definition: Preference.java:42
void reorganiserLesProgrammations(int position)
Méthode qui permet de réorganiser les programmations.
Déclaration de l&#39;activité principale de l&#39;application Ekawa.
Definition: Ihm.java:61
static final String BOISSON
L&#39;identifiant qui permet l&#39;enregistrement du nom de la boisson de la programmation.
static final String TAG
TAG pour les logs.
Definition: Preference.java:28
Définit les caractéristiques des préfences de l&#39;utilisateur d&#39;EKAWA.
Definition: Preference.java:23
int obtenirNbProgrammations()
Méthode qui permet d’obtenir le nombre de programmation.
void editer(String nomPreference, String valeur)
Méthode qui permet de créer ou modifier une préférence.
void supprimerLesProgrammations()
Méthode qui permet de supprimer toutes les programmations.
void supprimer(String nomPreference)
Méthode qui permet de supprimer une préférence.
static final String PROGRAMMATION
L&#39;identifiant qui permet l&#39;enregistrement du nom de la programmation.
Définit les caractéristiques des programmations EKAWA.
static final String JOUR
L&#39;identifiant qui permet l&#39;enregistrement du jour de la programmation.
static final String IDENTIFIANT
L&#39;identifiant qui permet l&#39;enregistrement de l&#39;identifiant de la programmation.
static final int MAX_PROGRAMMATION
Le nombre maximum de programmation.
void editer(String nomPreference, int valeur)
Méthode qui permet de créer ou modifier une préférence.
SharedPreferences donneesUtilisateurs
Les préférences utilisateur.
Definition: Preference.java:36