Meeting  0.2
BTS SNIR LaSalle Avignon 2020
MainActivity.java
Aller à la documentation de ce fichier.
1 package com.lasalle.meeting;
2 
3 import androidx.annotation.NonNull;
4 import androidx.appcompat.app.AlertDialog;
5 import androidx.appcompat.app.AppCompatActivity;
6 import androidx.recyclerview.widget.LinearLayoutManager;
7 import androidx.recyclerview.widget.RecyclerView;
8 import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
9 
10 import android.content.Context;
11 import android.content.DialogInterface;
12 import android.content.Intent;
13 import android.net.ConnectivityManager;
14 import android.net.DhcpInfo;
15 import android.net.wifi.WifiInfo;
16 import android.net.wifi.WifiManager;
17 import android.os.Bundle;
18 import android.os.Handler;
19 import android.os.Message;
20 import android.util.Log;
21 import android.view.LayoutInflater;
22 import android.view.Menu;
23 import android.view.MenuInflater;
24 import android.view.MenuItem;
25 import android.view.View;
26 import android.widget.AdapterView;
27 import android.widget.ArrayAdapter;
28 import android.widget.Button;
29 import android.widget.Spinner;
30 import android.widget.Toast;
31 
32 import com.google.android.material.bottomnavigation.BottomNavigationView;
33 
34 import java.io.Serializable;
35 import java.net.InetAddress;
36 import java.util.ArrayList;
37 import java.util.List;
38 import java.util.Vector;
39 
40 import static java.lang.Boolean.TRUE;
41 
52 public class MainActivity extends AppCompatActivity implements RechercherNomBoiteDialogue.rechercheNomBoiteDialogueListener
53 {
57  private static final String TAG = "MainActivity";
58  private final String SEPARATEUR = ";";
59  private static final int FROID = -3;
60  private static final int FRAIS = -2;
61  private static final int LEGEREMENTFRAIS = -1;
62  private static final int NEUTRE = 0;
63  private static final int LEGEREMENTTIEDE = 1;
64  private static final int TIEDE = 2;
65  private static final int CHAUD = 3;
66 
70  private Spinner filtre;
71  private ArrayAdapter<String> adapterList;
72  private SwipeRefreshLayout swipeRefreshLayout;
73  private RecyclerView recyclerView;
74  private RecyclerView.Adapter adapter;
75  private RecyclerView.LayoutManager layoutManager;
76  private BottomNavigationView bottomNavigationView;
77  private AlertDialog.Builder boiteConfort;
78  private AlertDialog.Builder boiteDisponibilite;
79  private AlertDialog.Builder boiteNom;
80 
84  private static Vector<Salle> mesSalles;
85  private static Vector<Salle> sallesFilter;
86  private static Communication communication = null;
87  private Salle salle = null;
88  private WifiManager wm = null;
89 
95  @Override
96  protected void onCreate(Bundle savedInstanceState)
97  {
98  Log.d(TAG, "onCreate()");
99 
100  super.onCreate(savedInstanceState);
101  setContentView(R.layout.activity_main);
102 
103  mesSalles = new Vector<Salle>();
104 
106  connecterWiFi();
108  }
109 
114  @Override
115  protected void onStart()
116  {
117  super.onStart();
118  Log.d(TAG, "onStart()");
119 
120  rafraichir(mesSalles);
121  }
122 
127  @Override
128  public boolean onCreateOptionsMenu(Menu menu)
129  {
130  MenuInflater inflater = getMenuInflater();
131  inflater.inflate(R.menu.menu, menu);
132  return true;
133  }
134 
139  @Override
140  public boolean onOptionsItemSelected(MenuItem item)
141  {
142  final Intent intent = new Intent(MainActivity.this, ConfigurationSalleActivity.class);
143 
144  switch (item.getItemId())
145  {
146  case R.id.configurerSalle:
147  startActivity(intent);
148  return true;
149  case R.id.aPropos:
150  Toast.makeText(getApplicationContext(), "La fonctionnalité à propos de l'application n'est pas encore disponible !", Toast.LENGTH_SHORT).show();
151  return true;
152  }
153  return super.onOptionsItemSelected(item);
154  }
155 
161  {
162  swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipeRefreshLayout);
163  recyclerView = (RecyclerView)findViewById(R.id.listeSalle);
164  bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottomNavigationView);
165  filtre = (Spinner)findViewById(R.id.filtre);
166 
167  setListenBouton();
170  }
171 
176  public void setListenBouton()
177  {
178  swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()
179  {
180  @Override
181  public void onRefresh()
182  {
183  rafraichir(mesSalles);
184  }
185  });
186 
187  bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener()
188  {
189  @Override
190  public boolean onNavigationItemSelected(@NonNull MenuItem item)
191  {
192  switch (item.getItemId())
193  {
194  case R.id.Salle:
195  rafraichir(mesSalles);
196  Toast.makeText(getApplicationContext(), "Rafraichisement", Toast.LENGTH_SHORT).show();
197  return true;
198  case R.id.Favoris:
199  Toast.makeText(getApplicationContext(), "La fonctionnalité favoris n'est pas encore disponible !", Toast.LENGTH_SHORT).show();
200  return true;
201  case R.id.Rechercher:
202  /*final Intent intent = new Intent(MainActivity.this, RechercheActivity.class);
203  intent.putExtra("mesSalles", mesSalles);
204  startActivity(intent);*/
205  Toast.makeText(getApplicationContext(), "La fonctionnalité rechercher n'est pas encore disponible !", Toast.LENGTH_SHORT).show();
206  return true;
207  }
208  return false;
209  }
210  });
211  }
212 
217  private void connecterWiFi()
218  {
219  wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
220  if (!wm.isWifiEnabled())
221  {
222  Log.d(TAG, "connecterWiFi() WiFi indisponible !");
223  wm.setWifiEnabled(true);
224  }
225  else
226  {
227  Log.d(TAG, "connecterWiFi() WiFi disponible");
228  }
229 
230  WifiInfo wi = wm.getConnectionInfo();
231  Log.d(TAG, "connecterWiFi() " + wi.toString() + " " + wi.getIpAddress() + " " + wi.getMacAddress());
232 
233  DhcpInfo di = wm.getDhcpInfo();
234  Log.d(TAG, "connecterWiFi() " + di.toString());
235 
236  communication = new Communication(handlerUI);
237  Thread tCommunicationUDP = new Thread(communication, "Communication");
238  tCommunicationUDP.start();
239  }
240 
245  private void initialiserSalles()
246  {
247  Log.d(TAG, "initialiserSalles()");
248 
249  recyclerView.setHasFixedSize(true);
250  layoutManager = new LinearLayoutManager(this);
251 
252  recyclerView.setLayoutManager(layoutManager);
253 
254  adapter = new SalleAdapter(mesSalles);
255  recyclerView.setAdapter(adapter);
256 
257  // cf. appel à rafraichir() dans onStart()
258  /*if(communication != null)
259  {
260  communication.envoyer("$GET;1\r\n"); // voir protocole
261  }*/
262  }
263 
268  private void reInitialiserSalles()
269  {
270  Log.d(TAG, "reInitialiserSalles()");
271 
272  recyclerView.setHasFixedSize(true);
273  layoutManager = new LinearLayoutManager(this);
274 
275  recyclerView.setLayoutManager(layoutManager);
276 
277  adapter = new SalleAdapter(sallesFilter);
278  recyclerView.setAdapter(adapter);
279  }
280 
286  public void ajouterSalle(Salle maSalle)
287  {
288  int positionMemeSalle = verifierExistenceSalle(maSalle);
289 
290  if(positionMemeSalle == -1)
291  {
292  mesSalles.add(maSalle);
293  adapter.notifyDataSetChanged();
294  }
295  else if(verifierChangementSalle(maSalle, positionMemeSalle))
296  {
297  mesSalles.removeElementAt(positionMemeSalle);
298  mesSalles.add(maSalle);
299  adapter.notifyDataSetChanged();
300  }
301  }
302 
308  public int verifierExistenceSalle(Salle maSalle)
309  {
310  for(int i = 0; i < mesSalles.size(); ++i)
311  {
312  if(maSalle.getAdresseIP().equals(mesSalles.elementAt(i).getAdresseIP()))
313  {
314  return i;
315  }
316  }
317  return -1;
318  }
319 
320  //TODO a regarder
321  public int verifierExistenceSalle(String adresseIP)
322  {
323  for(int i = 0; i < mesSalles.size(); ++i)
324  {
325  if(mesSalles.elementAt(i).getAdresseIP().equals(adresseIP))
326  {
327  return i;
328  }
329  }
330  return -1;
331  }
332 
338  public boolean verifierChangementSalle(Salle maSalle, int positionMemeSalle)
339  {
340  if(maSalle.getLibre() == mesSalles.elementAt(positionMemeSalle).getLibre())
341  {
342  return true;
343  }
344  else if(maSalle.getTemperature() == mesSalles.elementAt(positionMemeSalle).getTemperature())
345  {
346  return true;
347  }
348  else if(maSalle.getConfort() == mesSalles.elementAt(positionMemeSalle).getConfort())
349  {
350  return true;
351  }
352  else if(maSalle.getNom().equals(mesSalles.elementAt(positionMemeSalle).getNom()))
353  {
354  return true;
355  }
356  else if(maSalle.getEmplacement().equals(mesSalles.elementAt(positionMemeSalle).getEmplacement()))
357  {
358  return true;
359  }
360  else if(maSalle.getDescription().equals(mesSalles.elementAt(positionMemeSalle).getDescription()))
361  {
362  return true;
363  }
364  else if(maSalle.getSurface() == mesSalles.elementAt(positionMemeSalle).getSurface())
365  {
366  return true;
367  }
368 
369  return false;
370  }
371 
377  public void rafraichir(Vector<Salle> mesSalles)
378  {
379  Log.d(TAG, "rafraichir()");
380  if(communication != null)
381  communication.envoyer("$GET;1\r\n"); // voir protocole
382 
383  swipeRefreshLayout.setRefreshing(false);
384  adapter.notifyDataSetChanged();
385  }
386 
392  private Handler handlerUI = new Handler()
393  {
394  @Override
395  public void handleMessage(Message msg)
396  {
397  super.handleMessage(msg);
398  Bundle b = msg.getData();
399 
400  switch(b.getInt("etat"))
401  {
403  String trame = b.getString("trame");
404  if(!trame.startsWith(Communication.DELIMITEUR_EN_TETE))
405  return;
406  if(!trame.endsWith(Communication.DELIMITEUR_FIN))
407  return;
408  Log.d(TAG,"handleMessage() trame reçue de " + b.getString("adresseIP") + ":" + b.getInt("port"));
409  Log.d(TAG,"handleMessage() trame = " + trame.replace("\r\n", ""));
413  String nouvelleTrame = trame.replace(Communication.DELIMITEUR_EN_TETE, "");
414  nouvelleTrame = nouvelleTrame.replace(Communication.DELIMITEUR_FIN, "");
415  int nbDelimiteurs = getNbDelimiteurs(trame);
416  String[] tramesDecompose = decomposerTrame(nouvelleTrame);
417  if(nbDelimiteurs == Communication.NB_DELIMITEURS_GET_1)
418  {
419  Salle salle = creerSalle(tramesDecompose, b.getString("adresseIP"));
420  if (salle != null)
421  {
422  ajouterSalle(salle);
423  }
424  }
425  else if(nbDelimiteurs == Communication.NB_DELIMITEURS_GET_2)
426  {
427 
428  }
429  else if(nbDelimiteurs == Communication.NB_DELIMITEURS_GET_3)
430  {
431 
432  }
433  break;
434  default:
435  Log.d(TAG,"handleMessage() code état inconnu ! ");
436  }
437  }
438  };
439 
445  public Salle creerSalle(String[] trameDecompose, String adresseIP)
446  {
447  Log.d(TAG, "creerSalle() adresseIP = " + adresseIP);
448  if(!trameDecompose[0].isEmpty())
449  {
450  Log.d(TAG, "creerSalle() trameDecompose[0] : " + trameDecompose[0] + " (nomSalle)");
451  Log.d(TAG, "creerSalle() trameDecompose[1] : " + trameDecompose[1] + " (description)");
452  Log.d(TAG, "creerSalle() trameDecompose[2] : " + trameDecompose[2] + " (emplacement)");
453  Log.d(TAG, "creerSalle() trameDecompose[3] : " + trameDecompose[3] + " (surface)");
454  Log.d(TAG, "creerSalle() trameDecompose[4] : " + trameDecompose[4] + " (disponibilité)");
455  Log.d(TAG, "creerSalle() trameDecompose[5] : " + trameDecompose[5] + " (niveauDeConfort)");
456  Log.d(TAG, "creerSalle() trameDecompose[6] : " + trameDecompose[6] + " (température)");
457  int surface = 0;
458  if(estEntier(trameDecompose[3]))
459  surface = Integer.parseInt(trameDecompose[3]);
460  int disponible = 0;
461  if(estEntier(trameDecompose[4]))
462  disponible = Integer.parseInt(trameDecompose[4]);
463  int niveauConfort = 0;
464  if(estEntier(trameDecompose[5]))
465  niveauConfort = Integer.parseInt(trameDecompose[5]);
466  float temperature = 0;
467  if(estReel(trameDecompose[6]))
468  temperature = Float.parseFloat(trameDecompose[6]);
469 
470  salle = new Salle(trameDecompose[0], trameDecompose[1], trameDecompose[2], disponible, surface, niveauConfort, temperature, adresseIP);
471  return salle;
472  }
473  else
474  {
475  Log.d(TAG, "creerSalle() pas de nom de salle");
476  String inconnuString = "???";
477  int inconnuInt = 1;
478 
479  salle = new Salle(inconnuString, inconnuString , inconnuString , Integer.parseInt(trameDecompose[4]), inconnuInt, Integer.parseInt(trameDecompose[5]), Float.parseFloat(trameDecompose[6]), adresseIP);
480  return salle;
481  }
482  }
483 
489  public String[] decomposerTrame(String trame)
490  {
491  String[] tramesDecompose = trame.split(SEPARATEUR);
492  return tramesDecompose;
493  }
494 
500  private int getNbDelimiteurs(String trame)
501  {
502  int nb = 0;
503  for (int i = 0; i < trame.length(); i++)
504  {
505  if (trame.charAt(i) == ';')
506  {
507  nb++;
508  }
509  }
510  return nb;
511  }
512 
517  public static Vector<Salle> getMesSalles()
518  {
519  return mesSalles;
520  }
521 
527  {
528  return communication;
529  }
530 
531  private boolean estEntier(String donnee)
532  {
533  try
534  {
535  Integer.parseInt(donnee);
536  }
537  catch(NumberFormatException e)
538  {
539  return false;
540  }
541  catch(NullPointerException e)
542  {
543  return false;
544  }
545 
546  return true;
547  }
548 
549  private boolean estReel(String donnee)
550  {
551  try
552  {
553  Float.parseFloat(donnee);
554  }
555  catch(NumberFormatException e)
556  {
557  return false;
558  }
559  catch(NullPointerException e)
560  {
561  return false;
562  }
563 
564  return true;
565  }
566 
572  {
573  boiteDisponibilite = new AlertDialog.Builder(this);
574  boiteDisponibilite.setMessage("Voulez vous voir seulement les salles : ");
575  boiteDisponibilite.setPositiveButton("Disponible", new DialogInterface.OnClickListener()
576  {
577  public void onClick(DialogInterface dialog, int which)
578  {
580  }
581  });
582  boiteDisponibilite.setNegativeButton("Occupé", new DialogInterface.OnClickListener()
583  {
584  public void onClick(DialogInterface dialog, int which)
585  {
587  }
588  });
589 
590  boiteConfort = new AlertDialog.Builder(this);
591  boiteConfort.setTitle("Choisir le niveau de confort");
592  String[] niveauConfort = {"Chaud","Tiède","Légèrement tiède","Neutre","Légèrement fraiche","Fraiche","Froid"};
593  boiteConfort.setItems(niveauConfort, new DialogInterface.OnClickListener() {
594  @Override
595  public void onClick(DialogInterface dialog, int which) {
596  switch (which) {
597  case 0:
598  filtreChaud();
599  break;
600  case 1:
601  filtreTiede();
602  break;
603  case 2:
605  break;
606  case 3:
607  filtreNeutre();
608  break;
609  case 4:
611  break;
612  case 5:
613  filtreFrais();
614  break;
615  case 6:
616  filtreFroid();
617  break;
618  }
619  }
620  });
621  }
622 
627  public void initialiserSpinner()
628  {
629  Log.d(TAG, "initialiserSpinner()");
630 
631  List choixFiltre;
632  choixFiltre = new ArrayList<String>();
633 
634  choixFiltre.add("Aucun");
635  choixFiltre.add("Disponibilité");
636  choixFiltre.add("Confort");
637  choixFiltre.add("Nom");
638 
639  adapterList = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, choixFiltre);
640  adapterList.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
641 
642  filtre.setAdapter(adapterList);
643 
644  filtre.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
645  {
646  @Override
647  public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id)
648  {
649  Toast.makeText(getApplicationContext(), "Le choix du filtre est : " + position, Toast.LENGTH_SHORT).show();
650  Log.d(TAG, "position : " + position);
651  initialiserFiltre(position);
652  }
653  @Override
654  public void onNothingSelected(AdapterView<?> arg0)
655  {
656  }
657  });
658  }
659 
660  public void initialiserFiltre(int positionFiltre)
661  {
662  if(positionFiltre == 0)
663  {
665  }
666  else if(positionFiltre == 1)
667  {
668  boiteDisponibilite.show();
669  }
670  else if(positionFiltre == 2)
671  {
672  boiteConfort.show();
673  }
674  else if(positionFiltre == 3)
675  {
676  RechercherNomBoiteDialogue rechercherNomBoiteDialogue = new RechercherNomBoiteDialogue();
677  rechercherNomBoiteDialogue.show(getSupportFragmentManager(), "rechercher une salle par son nom");
678  }
679  }
680 
681  public void filtreDisponible()
682  {
683  Log.d(TAG, "filtreDisponible()");
684  sallesFilter = new Vector<Salle>();
685 
686  for(int i = 0; i < mesSalles.size(); i++)
687  {
688  if(mesSalles.elementAt(i).getLibre())
689  {
690  sallesFilter.add(mesSalles.get(i));
691  }
692  }
694  }
695 
696  public void filtreNonDisponible()
697  {
698  Log.d(TAG, "filtreNonDisponible()");
699  sallesFilter = new Vector<Salle>();
700 
701  for(int i = 0; i < mesSalles.size(); i++)
702  {
703  if(!mesSalles.elementAt(i).getLibre())
704  {
705  sallesFilter.add(mesSalles.elementAt(i));
706  }
707  }
709  }
710 
711  public void filtreTiede()
712  {
713  Log.d(TAG, "filtreTiede()");
714  sallesFilter = new Vector<Salle>();
715 
716  for(int i = 0; i < mesSalles.size(); i++)
717  {
718  if(mesSalles.elementAt(i).getConfort() == TIEDE)
719  {
720  sallesFilter.add(mesSalles.elementAt(i));
721  }
722  }
724  }
725 
726  public void filtreLegerementTiede()
727  {
728  Log.d(TAG, "filtreLegerementTiede()");
729  sallesFilter = new Vector<Salle>();
730 
731  for(int i = 0; i < mesSalles.size(); i++)
732  {
733  if(mesSalles.elementAt(i).getConfort() == LEGEREMENTTIEDE)
734  {
735  sallesFilter.add(mesSalles.elementAt(i));
736  }
737  }
739  }
740 
741  public void filtreNeutre()
742  {
743  Log.d(TAG, "filtreNeutre()");
744  sallesFilter = new Vector<Salle>();
745 
746  for(int i = 0; i < mesSalles.size(); i++)
747  {
748  if(mesSalles.elementAt(i).getConfort() == NEUTRE)
749  {
750  sallesFilter.add(mesSalles.elementAt(i));
751  }
752  }
754  }
755 
756  public void filtreLegerementFrais()
757  {
758  Log.d(TAG, "filtreLegerementFrais()");
759  sallesFilter = new Vector<Salle>();
760 
761  for(int i = 0; i < mesSalles.size(); i++)
762  {
763  if(mesSalles.elementAt(i).getConfort() == LEGEREMENTFRAIS)
764  {
765  sallesFilter.add(mesSalles.elementAt(i));
766  }
767  }
769  }
770 
771  public void filtreFrais()
772  {
773  Log.d(TAG, "filtreFrais()");
774  sallesFilter = new Vector<Salle>();
775 
776  for(int i = 0; i < mesSalles.size(); i++)
777  {
778  if(mesSalles.elementAt(i).getConfort() == FRAIS)
779  {
780  sallesFilter.add(mesSalles.elementAt(i));
781  }
782  }
784  }
785 
786  public void filtreChaud()
787  {
788  Log.d(TAG, "filtreChaud()");
789  sallesFilter = new Vector<Salle>();
790 
791  for(int i = 0; i < mesSalles.size(); i++)
792  {
793  if(mesSalles.elementAt(i).getConfort() == CHAUD)
794  {
795  sallesFilter.add(mesSalles.elementAt(i));
796  }
797  }
799  }
800 
801  public void filtreFroid()
802  {
803  Log.d(TAG, "filtreFroid()");
804  sallesFilter = new Vector<Salle>();
805 
806  for(int i = 0; i < mesSalles.size(); i++)
807  {
808  if(mesSalles.elementAt(i).getConfort() == FROID)
809  {
810  sallesFilter.add(mesSalles.elementAt(i));
811  }
812  }
814  }
815 
816  @Override
817  public void applyTexts(String nomSalleRechercher) {
818  filtreNom(nomSalleRechercher);
819  }
820 
821  public void filtreNom(String nomSalleRechercher)
822  {
823  Log.d(TAG, "filtreNom()");
824  sallesFilter = new Vector<Salle>();
825 
826  for(int i = 0; i < mesSalles.size(); i++)
827  {
828  if(mesSalles.elementAt(i).getNom().equals(nomSalleRechercher))
829  {
830  sallesFilter.add(mesSalles.elementAt(i));
831  }
832  }
834  }
835 }
String [] decomposerTrame(String trame)
découpe la trame
static Vector< Salle > sallesFilter
Vecteur contenant mes salles aprés le filtre appliquer par l&#39;utilisateur.
void onStart()
Méthode appelée au démarrage de l&#39;activité MainActivity.
final float getTemperature()
Accesseur get la température de la salle.
Definition: Salle.java:267
final String getDescription()
Accesseur get la description de la salle.
Definition: Salle.java:276
Salle creerSalle(String[] trameDecompose, String adresseIP)
créer une salle a partir de la trame
Déclaration de la classe Communication.
RecyclerView recyclerView
la vue des salles
boolean onCreateOptionsMenu(Menu menu)
Méthode appelée au démarrage de l&#39;activité MainActivity.
void initialiserSalles()
initialise le vecteur, les afficheurs pour les salles
void filtreNom(String nomSalleRechercher)
void initialiserSpinner()
initialise la vue
boolean estReel(String donnee)
Handler handlerUI
permet de récuperer les trames
static Vector< Salle > mesSalles
Vecteur contenant mes salles (moyen de stockage)
AlertDialog.Builder boiteDisponibilite
boite de dialogue pour le filtre disponibilité
AlertDialog.Builder boiteNom
boite de dialogue pour le filtre nom
void reInitialiserSalles()
initialise le vecteur, les afficheurs pour les salles
Déclaration de la classe ConfigurationSalleActivity.
static final int LEGEREMENTFRAIS
Constant niveau de confort LEGEREMENTFRAIS.
final String getEmplacement()
Accesseur get de l&#39;emplacement de la salle.
Definition: Salle.java:156
static Communication getCommunication()
retourne mon attribut communication
static Vector< Salle > getMesSalles()
retourne le vecteur de salle
static final String DELIMITEUR_FIN
WifiManager wm
attribut permetant de voir la connection au wi-fi
AlertDialog.Builder boiteConfort
boite de dialogue pour le filtre confort
void setListenBouton()
applique les listener sur les layouts approprié
final int getSurface()
Accesseur get la surface de la salle.
Definition: Salle.java:215
static final int FRAIS
Constant niveau de confort FRAIS.
void initialiserFiltre(int positionFiltre)
ArrayAdapter< String > adapterList
l&#39;adaptateur
int verifierExistenceSalle(String adresseIP)
boolean estEntier(String donnee)
final String SEPARATEUR
séparateur utilisé dans le protocole meeting
Déclaration de la classe MainActivity.
RecyclerView.Adapter adapter
l&#39;adaptateur pour la vue des salles
static final int CHAUD
Constant niveau de confort CHAUD.
boolean onOptionsItemSelected(MenuItem item)
Méthode appelée quand on appuye sur boutons du menu.
Déclaration de la classe Salle.
Definition: Salle.java:17
static final int TIEDE
Constant niveau de confort TIEDE.
RecyclerView.LayoutManager layoutManager
le gestionnaire de mise en page
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l&#39;activité MainActivity.
final boolean getLibre()
Accesseur get de libre de la salle.
Definition: Salle.java:174
static final int CODE_RECEPTION
code de reception correcte pour le portiers
static final int NEUTRE
Constant niveau de confort NEUTRE.
static final String TAG
TAG utilisé pour les logs.
final String getNom()
Accesseur get du nom de la salle.
Definition: Salle.java:165
void envoyer(final String requete)
méthode envoyant une requête à l&#39;adresse de multicast
boolean verifierChangementSalle(Salle maSalle, int positionMemeSalle)
Vérifie que la salle n&#39;est pas different que dans le vecteur, r&#39;envoye true si il y a eu une modifiac...
SwipeRefreshLayout swipeRefreshLayout
layout permettant de rafraichir
void initialiserRessourcesLayout()
Récupère et initialise les widgets du layout activity_main.
final int getConfort()
Accesseur get le confort de la salle.
Definition: Salle.java:224
void connecterWiFi()
méthode permettant de se connecter au wi-fi
static Communication communication
attribut permetant d&#39;envoyer des requêtes
void rafraichir(Vector< Salle > mesSalles)
rafraichis mon affichage
BottomNavigationView bottomNavigationView
layout permettant d&#39;avoir un menu de navigation (en haut)
static final String DELIMITEUR_EN_TETE
int getNbDelimiteurs(String trame)
retourne le nombre de limiteurs dans la trame
void applyTexts(String nomSalleRechercher)
static final int LEGEREMENTTIEDE
Constant niveau de confort LEGEREMENTTIEDE.
int verifierExistenceSalle(Salle maSalle)
verifie que la salle n&#39;exisite pas déjà dans le vecteur, r&#39;envoye -1 si il n&#39;en existe pas...
final String getAdresseIP()
Accesseur get l&#39;adresse IP de la salle.
Definition: Salle.java:285
void initialiserBoiteDialogue()
initialise les boites de dialogue
void ajouterSalle(Salle maSalle)
ajoute une salle au vecteur (mesSalles)
Déclaration de la classe SalleAdapter.
static final int FROID
Constant niveau de confort FROID.