1 package com.example.ekawa;
3 import android.Manifest;
5 import android.app.Activity;
6 import android.app.AlertDialog;
8 import android.app.Notification;
9 import android.app.NotificationManager;
10 import android.content.DialogInterface;
11 import android.content.pm.PackageManager;
13 import android.os.Build;
14 import android.os.Bundle;
16 import android.os.Message;
17 import android.util.Log;
19 import android.view.LayoutInflater;
20 import android.view.View;
21 import android.view.ViewGroup;
23 import android.widget.AdapterView;
24 import android.widget.ArrayAdapter;
25 import android.widget.Button;
26 import android.widget.EditText;
27 import android.widget.FrameLayout;
28 import android.widget.ImageButton;
29 import android.widget.ImageView;
30 import android.widget.LinearLayout;
31 import android.widget.ListView;
32 import android.widget.ProgressBar;
33 import android.widget.Spinner;
34 import android.widget.Switch;
35 import android.widget.TextView;
36 import android.widget.TimePicker;
37 import android.widget.Toast;
39 import androidx.annotation.RequiresApi;
40 import androidx.appcompat.app.AppCompatActivity;
42 import androidx.core.app.ActivityCompat;
43 import androidx.core.content.ContextCompat;
45 import java.io.IOException;
46 import java.util.ArrayList;
61 public class Ihm extends AppCompatActivity
66 private static final String
TAG =
"_Ihm";
69 final static int CODE_REQUETE_PERMISSION = 1;
70 final static String PERMISSION_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION;
71 final static String PERMISSION_BLUETOOTH = Manifest.permission.BLUETOOTH;
72 final static String PERMISSION_BLUETOOTH_ADMIN = Manifest.permission.BLUETOOTH_ADMIN;
195 super(context, R.layout.item_selection, noms);
209 public View
getView(
int position, View itemConverti, ViewGroup parent)
211 View item = itemConverti;
212 LayoutInflater inflater = context.getLayoutInflater();
213 if (itemConverti == null)
214 item = inflater.inflate(R.layout.item_selection, null,
true);
215 ImageView imageItem = (ImageView) item.findViewById(R.id.item_image);
216 TextView texteItem = (TextView) item.findViewById(R.id.item_texte);
218 imageItem.setImageResource(identifiantsImages[position]);
219 texteItem.setText(String.valueOf(position) +
" - " + noms[position]);
246 super(context, R.layout.item_selection, programmations);
248 nomsCapsulesProgrammer =
new ArrayList<String>();
249 nomsBoissonsProgrammer =
new ArrayList<String>();
250 identifiantsImagesCapsulesProgrammer =
new ArrayList<Integer>();
251 joursProgrammer =
new ArrayList<String>();
252 heuresProgrammer =
new ArrayList<String>();
253 frequencesProgrammer =
new ArrayList<String>();
256 this.nomsCapsulesProgrammer.add(nomsCapsules[programmation.obtenirCapsule()]);
257 this.nomsBoissonsProgrammer.add(nomsBoisson[programmation.obtenirBoisson()]);
258 this.identifiantsImagesCapsulesProgrammer.add(identifiantsImagesCapsules[programmation.obtenirCapsule()]);
260 this.heuresProgrammer.add(programmation.obtenirHeure());
273 public View
getView(
int position, View itemConverti, ViewGroup parent)
275 View item = itemConverti;
276 LayoutInflater inflater = context.getLayoutInflater();
277 if (itemConverti == null)
278 item = inflater.inflate(R.layout.item_programmer, null,
true);
279 ImageView imageItem = (ImageView) item.findViewById(R.id.item_image_programmer);
280 TextView texteCapsuleItem = (TextView) item.findViewById(R.id.item_capsule);
281 TextView texteBoissonItem = (TextView) item.findViewById(R.id.item_boisson);
282 TextView texteJourHeureItem = (TextView) item.findViewById(R.id.item_jour_heure);
283 TextView texteFrequenceItem = (TextView) item.findViewById(R.id.item_frequence);
287 imageItem.setImageResource(R.drawable.ic_plus);
288 texteCapsuleItem.setText(
"");
289 texteBoissonItem.setText(
"");
290 texteJourHeureItem.setText(
"");
291 texteFrequenceItem.setText(
"");
295 imageItem.setImageResource(identifiantsImagesCapsulesProgrammer.get(position));
296 texteCapsuleItem.setText(nomsCapsulesProgrammer.get(position));
297 texteBoissonItem.setText(nomsBoissonsProgrammer.get(position));
298 texteJourHeureItem.setText(joursProgrammer.get(position) +
" - " + heuresProgrammer.get(position));
299 texteFrequenceItem.setText(frequencesProgrammer.get(position));
313 super.onCreate(savedInstanceState);
314 setContentView(R.layout.ihm);
315 Log.d(TAG,
"Création de l'activité");
342 Log.d(TAG,
"onStart()");
353 Log.d(TAG,
"onResume()");
365 Log.d(TAG,
"onPause()");
376 Log.d(TAG,
"onStop()");
388 Log.d(TAG,
"onDestroy()");
397 Log.d(TAG,
"demanderPermissions()");
398 if (ActivityCompat.checkSelfPermission(getApplicationContext(), PERMISSION_LOCATION) != PackageManager.PERMISSION_GRANTED)
400 ActivityCompat.requestPermissions(
this,
new String[]{PERMISSION_LOCATION}, CODE_REQUETE_PERMISSION);
411 Log.d(TAG,
"onRequestPermissionsResult()");
414 case CODE_REQUETE_PERMISSION:
416 if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
431 Log.d(TAG,
"initialiserBoutonsIndicateurs()");
432 boutonBluetooth = (ImageButton) findViewById(R.id.bouton_bluetooth);
433 boutonBluetooth.setOnClickListener(
new View.OnClickListener()
436 public void onClick(View v)
449 boutonTasse = (ImageButton) findViewById(R.id.bouton_tasse);
450 boutonTasse.setOnClickListener(
new View.OnClickListener()
453 public void onClick(View v)
459 boutonBac = (ImageButton) findViewById(R.id.bouton_bac);
460 boutonBac.setOnClickListener(
new View.OnClickListener()
463 public void onClick(View v)
469 barNiveauEauFond = (ProgressBar) findViewById(R.id.fond_niveau_eau);
470 barNiveauEau = (ProgressBar) findViewById(R.id.bar_niveau_eau);
471 texteNiveauEau = (TextView) findViewById(R.id.texte_niveau_eau);
472 texteNiveauEau.setOnClickListener(
new View.OnClickListener()
475 public void onClick(View v)
488 Log.d(TAG,
"initialiserSelectionCapsule()");
489 boutonSelectionCapsule = (FrameLayout) findViewById(R.id.bouton_selection_capsule);
490 listeSelectionCapsule = (ListView) findViewById(R.id.liste_selection_capsule);
491 imageCapsuleActuelle = (ImageView) findViewById(R.id.image_selection_capsule);
492 texteCapsuleActuelle = (TextView) findViewById(R.id.texte_capsule_actuelle);
493 boutonSelectionCapsule.setOnClickListener(
new View.OnClickListener()
496 public void onClick(View v)
498 if (visibiliteListeSelectionCapsule)
500 listeSelectionCapsule.setVisibility(View.INVISIBLE);
501 visibiliteListeSelectionCapsule =
false;
505 listeSelectionCapsule.setVisibility(View.VISIBLE);
506 visibiliteListeSelectionCapsule =
true;
507 if (visibiliteListeSelectionBoisson)
508 boutonSelectionBoisson.callOnClick();
518 identifiantsImagesCapsules[i] = cafetiere.
listerCapsules().get(i).obtenirImage();
521 listeSelectionCapsule.setAdapter(
new AdaptateurSelection(
this, nomsCapsules, identifiantsImagesCapsules));
523 listeSelectionCapsule.setOnItemClickListener(
new AdapterView.OnItemClickListener()
526 public void onItemClick(AdapterView<?> a, View v,
int position,
long id)
530 texteCapsuleActuelle.setText(nomsCapsules[position]);
531 imageCapsuleActuelle.setImageResource(identifiantsImagesCapsules[position]);
533 boutonSelectionCapsule.callOnClick();
545 Log.d(TAG,
"initialiserSelectionBoisson()");
546 boutonSelectionBoisson = (FrameLayout) findViewById(R.id.bouton_selection_boisson);
547 listeSelectionBoisson = (ListView) findViewById(R.id.liste_selection_boisson);
548 imageBoissonActuelle = (ImageView) findViewById(R.id.image_selection_boisson);
549 texteBoissonActuelle = (TextView) findViewById(R.id.texte_boisson_actuelle);
550 boutonSelectionBoisson.setOnClickListener(
new View.OnClickListener()
553 public void onClick(View v)
555 if (visibiliteListeSelectionBoisson)
557 listeSelectionBoisson.setVisibility(View.INVISIBLE);
558 visibiliteListeSelectionBoisson =
false;
562 listeSelectionBoisson.setVisibility(View.VISIBLE);
563 visibiliteListeSelectionBoisson =
true;
564 if (visibiliteListeSelectionCapsule)
565 boutonSelectionCapsule.callOnClick();
575 identifiantsImagesBoisson[i] = cafetiere.
listerBoissons().get(i).obtenirImage();
578 listeSelectionBoisson.setAdapter(
new AdaptateurSelection(
this, nomsBoisson, identifiantsImagesBoisson));
580 listeSelectionBoisson.setOnItemClickListener(
new AdapterView.OnItemClickListener()
583 public void onItemClick(AdapterView<?> a, View v,
int position,
long id)
585 texteBoissonActuelle.setText(nomsBoisson[position]);
586 imageBoissonActuelle.setImageResource(identifiantsImagesBoisson[position]);
588 boutonSelectionBoisson.callOnClick();
591 texteBoissonActuelle.setText(nomsBoisson[0]);
592 imageBoissonActuelle.setImageResource(identifiantsImagesBoisson[0]);
601 Log.d(TAG,
"initialiserBoutonLancerCafe()");
602 boutonLancerCafe = (FrameLayout) findViewById(R.id.bouton_lancer_cafe);
603 boutonLancerCafe.setOnClickListener(
new View.OnClickListener()
606 public void onClick(View v)
627 Log.d(TAG,
"initialiserMenu()");
628 boutonPageInformations = (LinearLayout) findViewById(R.id.bouton_page_informations);
629 boutonPageProgrammer = (LinearLayout) findViewById(R.id.bouton_page_programmer);
630 boutonPageParametres = (LinearLayout) findViewById(R.id.bouton_page_parametres);
631 pageInformations = (LinearLayout) findViewById(R.id.page_informations);
632 pageProgrammer = (LinearLayout) findViewById(R.id.page_programmer);
633 pageParametres = (LinearLayout) findViewById(R.id.page_parametres);
635 boutonPageInformations.setOnClickListener(
new View.OnClickListener()
638 public void onClick(View v)
640 if(!visibilitePageInformations)
642 pageInformations.setVisibility(View.VISIBLE);
643 pageProgrammer.setVisibility(View.INVISIBLE);
644 pageParametres.setVisibility(View.INVISIBLE);
645 visibilitePageInformations =
true;
646 visibilitePageProgrammer =
false;
647 visibilitePageParametres =
false;
648 boutonLancerCafe.setEnabled(
false);
652 pageInformations.setVisibility(View.INVISIBLE);
653 visibilitePageInformations =
false;
654 boutonLancerCafe.setEnabled(
true);
660 boutonPageProgrammer.setOnClickListener(
new View.OnClickListener()
663 public void onClick(View v)
665 if(!visibilitePageProgrammer)
667 pageInformations.setVisibility(View.INVISIBLE);
669 pageProgrammer.setVisibility(View.VISIBLE);
672 pageParametres.setVisibility(View.INVISIBLE);
673 visibilitePageInformations =
false;
674 visibilitePageProgrammer =
true;
675 visibilitePageParametres =
false;
676 boutonLancerCafe.setEnabled(
false);
680 pageProgrammer.setVisibility(View.INVISIBLE);
681 visibilitePageProgrammer =
false;
682 boutonLancerCafe.setEnabled(
true);
687 boutonPageParametres.setOnClickListener(
new View.OnClickListener()
690 public void onClick(View v)
692 if(!visibilitePageParametres)
694 pageInformations.setVisibility(View.INVISIBLE);
695 pageProgrammer.setVisibility(View.INVISIBLE);
696 pageParametres.setVisibility(View.VISIBLE);
697 visibilitePageInformations =
false;
698 visibilitePageProgrammer =
false;
699 visibilitePageParametres =
true;
700 boutonLancerCafe.setEnabled(
false);
704 pageParametres.setVisibility(View.INVISIBLE);
705 visibilitePageParametres =
false;
706 boutonLancerCafe.setEnabled(
true);
718 Log.d(TAG,
"initialiserPageInformations()");
719 texteNbCafeJour = (TextView) findViewById(R.id.nb_cafe_jour);
720 texteNomCafetiere = (TextView) findViewById(R.id.nom_cafetiere);
721 texteNbCafe = (TextView) findViewById(R.id.nb_cafe);
722 texteNbBac = (TextView) findViewById(R.id.nb_bac);
723 texteNbEau = (TextView) findViewById(R.id.nb_eau);
724 texteDureteEau = (TextView) findViewById(R.id.duretee_eau);
725 texteQualiteEau = (TextView) findViewById(R.id.qualite_eau);
726 listeCapsuleInformations = (ListView) findViewById(R.id.liste_capsule_informations);
727 listeCapsuleInformations.setAdapter(
new AdaptateurSelection(
this, nomsCapsules, identifiantsImagesCapsules));
729 listeCapsuleInformations.setOnItemClickListener(
new AdapterView.OnItemClickListener()
732 public void onItemClick(AdapterView<?> parent, View view,
int position,
long id)
735 .setTitle(nomsCapsules[position])
738 fenetreInformations.show();
749 Log.d(TAG,
"initialiserPageProgrammer()");
750 listeProgrammer = (ListView) findViewById(R.id.liste_programmer);
753 apparenceFenetreProgrammer = getLayoutInflater().inflate(R.layout.page_programmer, null);
758 listeProgrammer.setOnItemClickListener(
new AdapterView.OnItemClickListener()
760 @RequiresApi(api = Build.VERSION_CODES.M)
762 public void onItemClick(AdapterView<?> a, View v,
int position,
long id)
764 Log.d(TAG,
"initialiserPageProgrammer() onItemClick = " + position);
766 positionProgrammer = position - 1;
779 spinnerJourProgrammer.setSelection(programmation.
obtenirJour());
781 String[] splitHeureMinute = heureMinute.split(
"h");
782 heureProgrammer.setHour(Integer.parseInt(splitHeureMinute[0]));
783 heureProgrammer.setMinute(Integer.parseInt(splitHeureMinute[1]));
787 fenetreProgrammer.show();
789 if(listeCapsuleProgrammer.getChildAt(capsuleProgrammation) != null)
792 listeCapsuleProgrammer.getChildAt(capsuleProgrammation).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.grey));
794 if(listeBoissonProgrammer.getChildAt(boissonProgrammation) != null)
797 listeBoissonProgrammer.getChildAt(boissonProgrammation).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.grey));
809 Log.d(TAG,
"initialiserFenetreProgrammer()");
814 Log.d(TAG,
"initialiserFenetreProgrammer() capsuleProgrammation = " + capsuleProgrammation);
815 Log.d(TAG,
"initialiserFenetreProgrammer() boissonProgrammation = " + boissonProgrammation);
817 listeCapsuleProgrammer = (ListView) apparenceFenetreProgrammer.findViewById(R.id.liste_capsule_programmer);
818 listeBoissonProgrammer = (ListView) apparenceFenetreProgrammer.findViewById(R.id.liste_boisson_programmer);
819 spinnerJourProgrammer = (Spinner) apparenceFenetreProgrammer.findViewById(R.id.liste_jour_programmer);
820 heureProgrammer = (TimePicker) apparenceFenetreProgrammer.findViewById(R.id.temps_programmer);
821 spinnerFrequenceProgrammer = (Spinner) apparenceFenetreProgrammer.findViewById(R.id.liste_frequence_programmer);
823 listeCapsuleProgrammer.setAdapter(
new AdaptateurSelection(
this, nomsCapsules, identifiantsImagesCapsules));
824 listeCapsuleProgrammer.setOnItemClickListener(
new AdapterView.OnItemClickListener()
827 public void onItemClick(AdapterView<?> parent, View view,
int position,
long id)
830 listeCapsuleProgrammer.getChildAt(position).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.grey));
831 capsuleProgrammation = position;
835 listeBoissonProgrammer.setAdapter(
new AdaptateurSelection(
this, nomsBoisson, identifiantsImagesBoisson));
836 listeBoissonProgrammer.setOnItemClickListener(
new AdapterView.OnItemClickListener()
839 public void onItemClick(AdapterView<?> parent, View view,
int position,
long id)
842 listeBoissonProgrammer.getChildAt(position).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.grey));
843 boissonProgrammation = position;
847 spinnerJourProgrammer.setAdapter(
new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item,
Programmation.
Jours.
JOURS));
848 heureProgrammer.setIs24HourView(
true);
852 @RequiresApi(api = Build.VERSION_CODES.M)
854 public void onClick(DialogInterface dialog,
int which)
859 capsuleProgrammation,
860 boissonProgrammation,
861 spinnerJourProgrammer.getSelectedItemPosition(),
862 heureProgrammer.getHour() +
"h" + heureProgrammer.getMinute(),
863 spinnerFrequenceProgrammer.getSelectedItemPosition()
870 capsuleProgrammation,
871 boissonProgrammation,
872 spinnerJourProgrammer.getSelectedItemPosition(),
873 heureProgrammer.getHour() +
"h" + heureProgrammer.getMinute(),
874 spinnerFrequenceProgrammer.getSelectedItemPosition()
883 public void onClick(DialogInterface dialog,
int which)
891 public void onClick(DialogInterface dialog,
int which)
902 fenetreProgrammer.setOnShowListener(
new DialogInterface.OnShowListener(){
904 public void onShow(DialogInterface dialogInterface){
905 Log.d(TAG,
"fenetreProgrammer.onShow()");
906 listeCapsuleProgrammer.performItemClick(listeCapsuleProgrammer, capsuleProgrammation, listeCapsuleProgrammer.getItemIdAtPosition(capsuleProgrammation));
907 listeBoissonProgrammer.performItemClick(listeBoissonProgrammer, boissonProgrammation, listeBoissonProgrammer.getItemIdAtPosition(boissonProgrammation));
918 Log.d(TAG,
"initialiserPageParametres()");
920 boutonReinitialiserInformations = (Button) findViewById(R.id.bouton_reinitialiser_valeurs);
921 boutonReinitialiserInformations.setOnClickListener(
new View.OnClickListener()
924 public void onClick(View v)
926 fenetreReinitialiserParametres.show();
931 boutonAPropos = (Button) findViewById(R.id.bouton_a_propos);
932 boutonAPropos.setOnClickListener(
new View.OnClickListener()
935 public void onClick(View v)
938 fenetreAProposParametres.show();
949 Log.d(TAG,
"initialiserFenetreReinitialiserParametres()");
952 apparenceFenetreReinitialiserParametres = getLayoutInflater().inflate(R.layout.page_reinisialiser_parametre, null);
955 nombreCafe = (Switch) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_nombre_cafe);
956 nombreBacVide = (Switch) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_nombre_bac_vide);
957 nombreEauRemplie = (Switch) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_nombre_eau_remplie);
958 dureteEau = (EditText) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_duretee_eau);
959 qualiteEau = (EditText) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_qualite_eau);
960 programmations = (Switch) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_programmations);
961 simulateur = (Switch) apparenceFenetreReinitialiserParametres.findViewById(R.id.reinitialiser_simulateur);
967 public void onClick(DialogInterface dialog,
int which)
971 if(dureteEau.getText().toString().equals(
""))
972 dureteEau.setText(
"-1");
973 Integer.valueOf(dureteEau.getText().toString());
982 if(qualiteEau.getText().toString().equals(
""))
983 qualiteEau.setText(
"-1");
984 Integer.valueOf(qualiteEau.getText().toString());
992 nombreCafe.isChecked(),
993 nombreBacVide.isChecked(),
994 nombreEauRemplie.isChecked(),
995 Integer.valueOf(dureteEau.getText().toString()),
996 Integer.valueOf(qualiteEau.getText().toString()),
997 programmations.isChecked(),
998 simulateur.isChecked()
1005 public void onClick(DialogInterface dialog,
int which)
1022 "Version de l'application : " + getString(R.string.version_app) +
"\n" +
1024 "Nom du développeur : " + getString(R.string.nom_developeur) +
"\n" +
1025 "Contact : " + getString(R.string.mail));
1037 gestionnaireNotification = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
1046 Log.d(TAG,
"actualiserIndicateurs()");
1048 boutonBluetooth.setBackgroundResource(R.drawable.style_bouton_valide);
1050 boutonBluetooth.setBackgroundResource(R.drawable.style_bouton_semi_valide);
1052 boutonBluetooth.setBackgroundResource(R.drawable.style_bouton_invalide);
1055 boutonTasse.setBackgroundResource(R.drawable.style_bouton_valide);
1057 boutonTasse.setBackgroundResource(R.drawable.style_bouton_invalide);
1060 boutonBac.setBackgroundResource(R.drawable.style_bouton_valide);
1062 boutonBac.setBackgroundResource(R.drawable.style_bouton_invalide);
1066 boutonLancerCafe.setBackgroundResource(R.drawable.style_bouton_valide);
1070 boutonLancerCafe.setBackgroundResource(R.drawable.style_bouton_invalide);
1084 Log.d(TAG,
"actualiserSelection()");
1087 texteCapsuleActuelle.setText(
"Aucune");
1088 imageCapsuleActuelle.setImageResource(R.drawable.ic_capsule);
1098 listeSelectionCapsule.getChildAt(i).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.white));
1100 listeSelectionCapsule.getChildAt(i).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.grey));
1112 Log.d(TAG,
"actualiserPageInformations()");
1115 texteNbCafeJour.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.red));
1117 texteNbCafeJour.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
1132 Log.d(TAG,
"actualiserPageProgrammer()");
1133 ArrayList<Programmation> programmations =
new ArrayList<Programmation>();
1138 listeProgrammer.setAdapter(adaptateurProgrammer);
1147 Log.d(TAG,
"actualiserPageParametres()");
1149 "Version de l'application : " + getString(R.string.version_app) +
"\n" +
1151 "Nom du dévelopeur : " + getString(R.string.nom_developeur) +
"\n" +
1152 "Contact : " + getString(R.string.mail));
1163 Log.d(TAG,
"afficherMessage()");
1164 Toast.makeText(getApplicationContext(), texte, Toast.LENGTH_LONG).show();
1175 Log.d(TAG,
"afficherMessageAvecRetard()");
1178 @Override
public void run()
1183 runOnUiThread(
new Runnable()
1188 Toast.makeText(getApplicationContext(), texte, Toast.LENGTH_LONG).show();
1192 catch (InterruptedException e)
1194 e.printStackTrace();
1207 Log.d(TAG,
"reinitialiserListe()");
1208 for(
int i = 0; i < liste.getAdapter().getCount(); ++i)
1210 liste.getChildAt(i).setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.white));
1221 Log.d(TAG,
"envoyerNotification()");
AlertDialog fenetreProgrammer
La fenêtre Programmer.
boolean informerEtatBac()
Méthode qui renvoie si le bac est plein ou non.
FrameLayout boutonSelectionCapsule
Bouton pour ouvrir/fermer la sélection des capsules.
Déclaration de l'adapteur des programmations.
Switch nombreBacVide
Bouton réinitialiser le nombre de bac vidé au total.
boolean estPrete()
Méthode qui renvoie si la cafetière est prête à l'emploie.
void initialiserPageInformations()
Méthode qui permet d'initialiser la page "Informations".
Activity context
L'activite.
EditText qualiteEau
Bouton réinitialiser la qualité de l'eau.
void eteindre()
Méthode qui permet d'éteindre le bluetooth.
TextView texteNbEau
Le texte affichant le nombre de réservoir d'eau remplie.
AlertDialog.Builder parametresFenetreReinitialiserParametres
Les paramètres de la fenêtre réinitialiser informations des paramètres.
boolean visibiliteListeSelectionBoisson
La visibilité de la liste de boisson.
ImageButton boutonTasse
Bouton indicateur de la tasse.
String [] nomsBoisson
Les noms des boissons.
void initialiserBoutonsIndicateurs()
Méthode qui permet d'initialiser les indicateurs (bluetooth, tasse, bac, eau)
Switch nombreEauRemplie
Bouton réinitialiser le nombre de réservoir d'eau remplie.
ListView listeCapsuleProgrammer
La liste des capsules de la fenêtre Programmer.
Integer [] identifiantsImagesCapsules
Les images des capsules.
LinearLayout pageParametres
La page Parametres.
String obtenirHeure()
Méthode qui renvoie l'heure de la programmation.
boolean visibiliteListeSelectionCapsule
La visibilité de la liste de capsule.
ArrayList< Capsule > listerCapsules()
Méthode qui renvoie la liste des capsules.
static final Integer NOMBRE_CAPSULE_MAX
Le nombre maximal de capsules.
Switch programmations
Bouton réinitialiser les programmations.
Switch simulateur
Bouton réinitialiser le réservoir d'eau, le bac et le magasin.
int obtenirJour()
Méthode qui renvoie le jour de la programmation.
ListView listeProgrammer
La liste des programmations.
AlertDialog fenetreInformations
La fenêtre Informations.
static final int LUNDI
La valeur associée au jour : Lundi.
void initialiserPageProgrammer()
Méthode qui permet d'initialiser la page "Programmer".
void onStart()
Méthode appelée au démarrage après le onCreate() ou un restart après un onStop()
boolean informerEtatBluetooth()
Méthode qui renvoie si le bluetooth est activé ou non.
static final String TAG
TAG pour les logs.
Programmation obtenirProgrammation(int position)
Méthode qui renvoie une programmation.
TextView texteNomCafetiere
Le texte affichant le nom de la cafetière connectée.
void onPause()
Méthode appelée après qu'une boîte de dialogue s'est affichée (on reprend sur un onResume()) ou avant...
static final int NB_MAX_CAFE_CONSEILLEE
Le nombre de café conseillé par jour.
boolean visibilitePageParametres
La visibilité de la page Parametres.
boolean informerEtatCafetiere()
Méthode qui renvoie si la cafetière est utilisable ou non.
ListView listeBoissonProgrammer
La liste des boissons de la fenêtre Programmer.
void onStop()
Méthode appelée lorsque l'activité n'est plus visible.
void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
Méthode qui permet de gérer la réponse à la demande de permission location.
void onDestroy()
Méthode appelée à la destruction de l'application (après onStop() et détruite par le système Android)...
void connecter()
Méthode qui permet de connecter le bluetooth à la cafetière.
void demanderCreationUneProgrammation(int capsule, int boisson, int jour, String heure, int frequence)
Méthode qui permet de demander la création d'une programmation.
AlertDialog fenetreAProposParametres
La fenêtre a propos des parametres.
int obtenirFrequence()
Méthode qui renvoie la fréquence de la programmation.
TextView texteNbBac
Le texte affichant le nombre de bac vidé au total.
int informerNombreBacVide()
Méthode qui renvoie le nombre de bac vidée.
String [] noms
Les noms des capsules ou des boissons.
void demanderModificationUneProgrammation(int position, int capsule, int boisson, int jour, String heure, int frequence)
Méthode qui permet de demander la modification une programmation.
ArrayList< Boisson > listerBoissons()
Méthode qui renvoie la liste des boissons.
AlertDialog fenetreReinitialiserParametres
La fenêtre réinitialiser informations des paramètres.
ImageView imageCapsuleActuelle
Indicateur de la capsule actuellement sélectionnée.
int informerDureteeEau()
Méthode qui renvoie la duretee de l'eau.
Déclaration de l'activité principale de l'application Ekawa.
View getView(int position, View itemConverti, ViewGroup parent)
Réécriture de la méthode ArrayAdapter::getView()
LinearLayout pageInformations
La page Informations.
void allumer()
Méthode qui permet d'allumer le bluetooth.
AdaptateurProgrammer(Activity context, ArrayList< Programmation > programmations)
Constructeur de la classe AdaptateurProgrammer.
ProgressBar barNiveauEauFond
Indicateur du niveau d'eau en fond.
void initialiserSelectionCapsule()
Méthode qui permet d'initialiser la liste de sélection des capsules.
Integer [] identifiantsImagesBoisson
Les images des boissons.
ListView listeSelectionBoisson
La liste des boissons sélectionnables.
ArrayList< String > joursProgrammer
Les jours des programmations.
boolean informerPresenceCapsule(int position)
Méthode qui renvoie le niveau d'eau.
boolean visibilitePageProgrammer
La visibilité de la page Programmer.
String [] nomsCapsules
Les noms des capsules.
boolean informerConnexionBluetooth()
Méthode qui renvoie si le bluetooth est connecté ou non.
void afficherMessage(String texte)
Méthode qui permet d'afficher des messages.
AlertDialog.Builder parametresFenetreInformations
Les paramètres de la fenêtre Informations.
void initialiserPageParametres()
Méthode qui permet d'initialiser la page "Parametres".
int obtenirCapsule()
Méthode qui renvoie la capsule de la programmation.
int informerCapsuleActuelle()
Méthode qui renvoie la capsule actuelle.
ImageButton boutonBluetooth
Bouton indicateur du Bluetooth.
Déclaration de la classe principale de l'application.
void modifierInformationsComplementaires(boolean nbCafe, boolean nbBacVide, boolean nbEauRemplie, int dureteeEau, int qualiteEau, boolean programmations, boolean simulateur)
Méthode qui permet de réinitialiser les informations complémentaires.
void actualiserPageInformations()
Méthode qui permet d'actualiser la page "Informations".
LinearLayout boutonPageInformations
Bouton pour ouvrir/fermer la page Informations.
ArrayList< String > nomsCapsulesProgrammer
Les noms des capsules des programmations.
void actualiserIndicateurs()
Méthode qui permet de mettre à jour les indicateurs (bluetooth, tasse, bac, eau)
Integer [] identifiantsImages
Les identifiants des images des capsules ou des boissons.
void initialiserFenetreReinitialiserParametres()
Méthode qui permet d'initialiser la fenêtre "Réinitialiser paramètres".
void actualiserPageProgrammer()
Méthode qui permet d'actualiser la page "Programmer".
void actualiserPageParametres()
Méthode qui permet d'actualiser la page "Parametres".
void actualiserDonnees()
Méthode qui permet d'envoyer les trames d'actualisations à la cafetière.
TextView texteBoissonActuelle
Le nom de la boisson actuellement sélectionnée.
void initialiserNotifications()
Méthode qui permet d'initialiser la fenetre "A propos".
Définit les caractéristiques des fréquences.
static final String [] JOURS
Le nom de chaques jour.
int informerNombreEauRemplie()
Méthode qui renvoie le nombre d'eau remplie.
static final boolean MODE_MODIFICATION
Le mode modification de la programmation.
void initialiserMenu()
Méthode qui permet d'initialiser le menu (page "informations", page "programmer", page "paramètres") ...
Switch nombreCafe
Bouton réinitialiser le nombre de cafés effectués au total par la machine de la fenêtre Parametres...
LinearLayout boutonPageParametres
Bouton pour ouvrir/fermer la page Parametres.
Integer obtenirDescriptionCapsule(int position)
Méthode qui renvoie la description d'une capsule.
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l'activité
int informerNombreCafeTotal()
Méthode qui renvoie le nombre de café total.
ArrayList< String > nomsBoissonsProgrammer
Les noms des boissons des programmations.
void actualiserSelection()
Méthode qui permet de mettre à jour la liste des sélections des capsules.
Définit les caractéristiques des jours.
int positionProgrammer
la position de la programmation
void initialiserFenetreProgrammer()
Méthode qui permet d'initialiser la fenêtre volante "Programmer".
Notification.Builder parametresNotification
Le créateur de notification.
ProgressBar barNiveauEau
Indicateur du niveau d'eau (bar de progression)
static final String [] FREQUENCES
Le nom de chaques fréquences.
int capsuleProgrammation
La capsule de la programmation.
ArrayList< String > frequencesProgrammer
Les fréquences des programmations.
String informerVersionCafetiere()
Méthode qui renvoie la version de la cafetière.
LinearLayout pageProgrammer
La page Programmer.
Définit les caractéristiques des programmations EKAWA.
AlertDialog.Builder parametresFenetreProgrammer
Les paramètres de la fenêtre Programmer.
Activity context
L'activitée.
void demanderSuppressionUneProgrammation(int position)
Méthode qui permet de demander la suppression d'une programmation.
ArrayList< String > heuresProgrammer
Les heures des programmations.
LinearLayout boutonPageProgrammer
Bouton pour ouvrir/fermer la page Programmer.
void envoyerNotification(Programmation programmation)
Méthode qui permet d'envoyer une notification.
ImageView imageBoissonActuelle
Indicateur de la boisson actuellement sélectionnée.
void changerCapsuleActuelle(int capsule)
Méthode qui modifie la capsule actuelle.
ImageButton boutonBac
Bouton indicateur du bac.
ArrayList< Programmation > listerProgrammations()
Méthode qui renvoie tous les programmations.
boolean modeProgrammer
Le mode de la fenêtre Programmer.
void onResume()
Méthode appelée après onStart() ou après onPause()
void changerBoissonActuelle(int boisson)
Méthode qui modifie la boisson actuelle.
TextView texteCapsuleActuelle
Le nom de la capsule actuellement sélectionnée.
boolean informerNTP()
Méthode qui renvoie l'état du NTP.
int informerNiveauEau()
Méthode qui renvoie le niveau d'eau.
void demanderPreparationCafe()
Méthode qui permet de lancer la préparation d'un café
void initialiserSelectionBoisson()
Méthode qui permet d'initialiser la liste de sélection des boissons.
static final boolean MODE_CREATION
Le mode création de la programmation.
int informerNombreCafeDuJour()
Méthode qui renvoie le nombre de cafe du jour.
NotificationManager gestionnaireNotification
Le gestionnaire de notification.
Déclaration de l'adaptateur de liste de capsules et boissons.
boolean informerEtatTasse()
Méthode qui renvoie si la tasse est bien placée ou non.
View getView(int position, View itemConverti, ViewGroup parent)
Réécriture de la méthode ArrayAdapter::getView()
void initialiserFenetreAProposParametres()
Méthode qui permet d'initialiser la fenêtre "A propos".
TextView texteQualiteEau
Le texte affichant la qualité de l'eau.
Spinner spinnerFrequenceProgrammer
La sélection de la fréquence.
static final int AUCUNE_CAPSULE
L'indicateur qu'il n'y a aucune capsule sélectionnée.
ListView listeCapsuleInformations
La liste des capsules de la page Informations.
AdaptateurSelection(Activity context, String[] noms, Integer[] identifiantsImages)
Constructeur de la classe AdaptateurSelection.
FrameLayout boutonLancerCafe
Bouton central : lancer un café
ArrayList< Integer > identifiantsImagesCapsulesProgrammer
Les identifiants des images des capsules des programmations.
boolean visibilitePageInformations
La visibilité de la page Informations.
ListView listeSelectionCapsule
La liste des capsules sélectionnables.
int obtenirBoisson()
Méthode qui renvoie la boisson de la programmation.
static final Integer NOMBRE_BOISSON_MAX
Le nombre maximal de types de boisson (court/long)
View apparenceFenetreProgrammer
L'apparence de la fenêtre Programmer.
int boissonProgrammation
La boisson de la programmation.
AlertDialog.Builder parametresFenetreAProposParametres
Les paramètres de la fenêtre a propos des paramètres.
Button boutonReinitialiserInformations
Bouton de réinitialisation des données de la cafetière.
TextView texteDureteEau
Le texte affichant la dureté de l'eau.
void demanderPermissions()
Méthode qui permet de demander le droit de permission location.
int informerQualiteEau()
Méthode qui renvoie la qualité de l'eau.
FrameLayout boutonSelectionBoisson
Bouton pour ouvrir/fermer la sélection des boissons.
void reinitialiserListe(ListView liste)
Méthode qui permet de réinitialiser une liste.
View apparenceFenetreReinitialiserParametres
L'apparence de la fenêtre réinitialiser informations des paramètres.
TextView texteNiveauEau
Indicateur du niveau d'eau (texte)
EditText dureteEau
Bouton réinitialiser la dureté de l'eau.
Button boutonAPropos
Bouton A propos.
TextView texteNbCafeJour
Le texte affichant le nombre de cafés effectués par l'utilisateur du jour.
void initialiserBoutonLancerCafe()
Méthode qui permet d'initialiser le bouton principal de l'application (pour lancer le café) ...
String informerNomCafetiere()
Méthode qui renvoie le nom de la cafetière connectée.
Spinner spinnerJourProgrammer
La sélection du jour de la semaine.
static final int UNE_SEULE_FOIS
La valeur associée à la fréquence : Une seule fois.
void afficherMessageAvecRetard(String texte, int temps)
Méthode qui permet d'afficher des messages apres un retard.
TimePicker heureProgrammer
La sélection de l'heure.
TextView texteNbCafe
Le texte affichant le nombre de cafés éffectués au total par la machine.
int informerBoissonActuelle()
Méthode qui renvoie la boisson actuelle.