Meeting  1.1
BTS SNIR LaSalle Avignon 2021
AffichageEspaceDeTravail.java
Aller à la documentation de ce fichier.
1 package com.lasalle.meeting;
2 
3 import androidx.appcompat.app.AppCompatActivity;
4 
5 import android.app.AlertDialog;
6 import android.content.DialogInterface;
7 import android.content.Intent;
8 import android.graphics.Color;
9 import android.os.Bundle;
10 import android.os.Handler;
11 import android.os.Message;
12 import android.util.Log;
13 import android.view.LayoutInflater;
14 import android.view.View;
15 import android.widget.EditText;
16 import android.widget.ImageView;
17 import android.widget.TextView;
18 import android.widget.Button;
19 
20 import java.io.Serializable;
21 
34 public class AffichageEspaceDeTravail extends AppCompatActivity
35 {
39  private static final String TAG = "_AffichageEspaceTravail";
40 
45 
49  @Override
50  protected void onCreate(Bundle savedInstanceState)
51  {
52  super.onCreate(savedInstanceState);
53  setContentView(R.layout.activity_affichage_espace_de_travail);
54  Intent intent = getIntent();
55  espaceDeTravail = (EspaceDeTravail)intent.getSerializableExtra("unEspaceDeTravail");
56  espaceDeTravail.initialiserCommunication(handler);
57 
58  afficher();
59  }
60 
64  private void afficher()
65  {
67  afficherNom();
68  afficherLieu();
76  }
77 
81  public void afficherAdresseIP()
82  {
83  TextView affichageAdresseIP = (TextView)findViewById(R.id.affichageAdresseIP);
84  affichageAdresseIP.setText(espaceDeTravail.getAdresseIP());
85 
86  Log.d(TAG, "afficherAdresseIP() " + espaceDeTravail.getAdresseIP());
87  }
88 
92  public void afficherNom()
93  {
94  TextView affichageNom = (TextView)findViewById(R.id.affichageNom);
95  affichageNom.setText(espaceDeTravail.getNom());
96 
97  Log.d(TAG, "afficherNom() " + espaceDeTravail.getNom());
98  }
99 
103  public void afficherLieu()
104  {
105  TextView affichageLieu = (TextView)findViewById(R.id.affichageLieu);
106  affichageLieu.setText(espaceDeTravail.getLieu());
107 
108  Log.d(TAG, "afficherLieu() " + espaceDeTravail.getLieu());
109  }
110 
114  public void afficherDescription()
115  {
116  TextView affichageDescription = (TextView)findViewById(R.id.affichageDescription);
117  affichageDescription.setText(espaceDeTravail.getDescription());
118 
119  Log.d(TAG, "afficherDescription() " + espaceDeTravail.getDescription());
120  }
121 
125  public void afficherSuperficie()
126  {
127  TextView affichageSuperficie = (TextView)findViewById(R.id.affichageSuperficie);
128  affichageSuperficie.setText(String.valueOf(espaceDeTravail.getSuperficie()));
129 
130  Log.d(TAG, "afficherSuperficie() " + espaceDeTravail.getSuperficie());
131  }
132 
136  public void afficherTemperature()
137  {
138  TextView affichageTemperature = (TextView)findViewById(R.id.affichageTemperature);
139  affichageTemperature.setText(String.valueOf(espaceDeTravail.getTemperature()));
140 
141  Log.d(TAG, "afficherTemperature() " + espaceDeTravail.getTemperature());
142  }
143 
148  {
149  TextView affichageIndiceDeConfort = (TextView)findViewById(R.id.affichageIndiceDeConfort);
150 
151  switch(espaceDeTravail.getIndiceDeConfort())
152  {
154  affichageIndiceDeConfort.setText("Chaud");
155  break;
156 
158  affichageIndiceDeConfort.setText("Tiède");
159  break;
160 
162  affichageIndiceDeConfort.setText("Légèrement tiède");
163  break;
164 
166  affichageIndiceDeConfort.setText("Neutre");
167  break;
168 
170  affichageIndiceDeConfort.setText("Légèrement frais");
171  break;
172 
174  affichageIndiceDeConfort.setText("Frais");
175  break;
176 
178  affichageIndiceDeConfort.setText("Froid");
179  break;
180  }
181 
182  Log.d(TAG, "afficherIndiceDeConfort() " + espaceDeTravail.getIndiceDeConfort());
183  }
184 
188  public void afficherFavori()
189  {
190  ImageView iconeFavori = (ImageView)findViewById(R.id.iconeFavori);
191 
192  if(!espaceDeTravail.getEstFavori())
193  {
194  Log.d(TAG, "afficherFavori() Non favori");
195  iconeFavori.setVisibility(View.INVISIBLE);
196  }
197  else
198  {
199  Log.d(TAG, "afficherFavori() Favori");
200  iconeFavori.setVisibility(View.VISIBLE);
201  }
202 
203  Log.d(TAG, "afficherFavori() " + espaceDeTravail.getEstFavori());
204  }
205 
209  public void afficherDisponibilite()
210  {
211  TextView affichageDisponibilite = (TextView)findViewById(R.id.affichageDisponibilite);
212 
213  if(!espaceDeTravail.getEstReserve())
214  {
215  Log.d(TAG, "afficherDisponibilite() Libre");
216  affichageDisponibilite.setText("Libre");
217  affichageDisponibilite.setTextColor(Color.parseColor("#00FF00")); // Color.rgb(0,255,0)
218  }
219  else
220  {
221  Log.d(TAG, "afficherDisponibilite() Occupé");
222  affichageDisponibilite.setText("Occupé");
223  affichageDisponibilite.setTextColor(Color.rgb(255,0,0));
224  }
225 
226  Log.d(TAG, "afficherDisponibilite() " + espaceDeTravail.getEstReserve());
227  }
228 
232  public void afficherBoutons()
233  {
234  Button boutonReserver = (Button)findViewById(R.id.boutonReserver);
235  Button boutonLiberer = (Button)findViewById(R.id.boutonLiberer);
236  Button boutonModifier = (Button)findViewById(R.id.boutonModifier);
237  Button boutonAjouterFavori = (Button)findViewById(R.id.boutonAjouterFavori);
238  Button boutonRetirerFavori = (Button)findViewById(R.id.boutonRetirerFavori);
239 
240  boutonReserver.setOnClickListener(
241  new View.OnClickListener()
242  {
243  public void onClick(View v)
244  {
245  espaceDeTravail.reserver();
247  afficherBoutons();
248  }
249  }
250  );
251 
252  boutonLiberer.setOnClickListener(
253  new View.OnClickListener()
254  {
255  public void onClick(View v)
256  {
259  afficherBoutons();
260  }
261  }
262  );
263 
264  if(!espaceDeTravail.getEstReserve())
265  {
266  boutonReserver.setVisibility(View.VISIBLE);
267  boutonLiberer.setVisibility(View.GONE);
268  }
269  else
270  {
271  boutonReserver.setVisibility(View.GONE);
272  boutonLiberer.setVisibility(View.VISIBLE);
273  }
274 
275  boutonModifier.setOnClickListener(
276  new View.OnClickListener()
277  {
278  public void onClick(View v)
279  {
280  Intent intent = new Intent(AffichageEspaceDeTravail.this, ModificationEspaceDeTravail.class);
281  espaceDeTravail.initialiserCommunication(null);
282  intent.putExtra("unEspaceDeTravail", (Serializable)espaceDeTravail);
283  startActivityForResult(intent, 0);
284  }
285  }
286  );
287 
288  boutonAjouterFavori.setOnClickListener(
289  new View.OnClickListener()
290  {
291  public void onClick(View v)
292  {
293  espaceDeTravail.setEstFavori(true);
294  afficherFavori();
295  afficherBoutons();
296  }
297  }
298  );
299 
300  boutonRetirerFavori.setOnClickListener(
301  new View.OnClickListener()
302  {
303  public void onClick(View v)
304  {
305  espaceDeTravail.setEstFavori(false);
306  afficherFavori();
307  afficherBoutons();
308  }
309  }
310  );
311 
312  if(!espaceDeTravail.getEstFavori())
313  {
314  boutonAjouterFavori.setVisibility(View.VISIBLE);
315  boutonRetirerFavori.setVisibility(View.GONE);
316  }
317  else
318  {
319  boutonAjouterFavori.setVisibility(View.GONE);
320  boutonRetirerFavori.setVisibility(View.VISIBLE);
321  }
322  }
323 
328  {
329  AlertDialog.Builder boiteLiberation = new AlertDialog.Builder(this);
330  boiteLiberation.setTitle("Libérer l'espace de travail");
331  boiteLiberation.setMessage("Saisissez le code pour libérer l'espace de travail :");
332  LayoutInflater inflater = this.getLayoutInflater();
333  View vue = inflater.inflate(R.layout.boite_liberation, null);
334  boiteLiberation.setView(vue);
335 
336  boiteLiberation.setPositiveButton("Libérer", new DialogInterface.OnClickListener()
337  {
338  public void onClick(DialogInterface dialog, int which)
339  {
340  EditText saisieCode = (EditText) ((AlertDialog) dialog).findViewById(R.id.saisieCode);
341  Log.d(TAG, "onClick() code = " + saisieCode.getText().toString());
342  espaceDeTravail.liberer(saisieCode.getText().toString());
343  }
344  });
345  boiteLiberation.setNegativeButton("Annuler", new DialogInterface.OnClickListener()
346  {
347  public void onClick(DialogInterface dialog, int which)
348  {
349 
350  }
351  });
352 
353  boiteLiberation.show();
354  }
355 
359  @Override
360  protected void onActivityResult(int requestCode, int resultCode, Intent data)
361  {
362  super.onActivityResult(requestCode, resultCode, data);
363  Log.d(TAG, "onActivityResult() requestCode=" + requestCode + " - resultCode=" + resultCode + "");
364 
365  finish();
366  }
367 
371  @Override
372  public void finish()
373  {
374  Log.d(TAG, "finish()");
375 
376  Intent intent = new Intent();
377  //intent.putExtra("unEspaceDeTravail", espaceDeTravail);
378  setResult(RESULT_OK, intent);
379  super.finish();
380  }
381 
382  private Handler handler = new Handler() {
383  @Override
384  public void handleMessage(Message msg)
385  {
386  super.handleMessage(msg);
387  Bundle b = msg.getData();
388  Log.d(TAG, "handleMessage() " + b);
389 
390  switch(msg.what)
391  {
393  String trame = b.getString("donnees");
394  Log.d(TAG, "handleMessage() Réception [" + b.getString("adresseIP") + ":" + b.getInt("port") + "] -> " + trame);
395 
396  String[] champs = trame.split(";");
397  int typeTrame = Communication.recupererTypeTrame(champs);
398 
399  switch(typeTrame)
400  {
401 
403  if(espaceDeTravail.getAdresseIP().equals(b.getString("adresseIP")))
404  {
405  if(espaceDeTravail.extraireCode(trame))
406  {
407  if(espaceDeTravail.getCode().isEmpty())
408  espaceDeTravail.setEstReserve(false);
409  else
410  espaceDeTravail.setEstReserve(true);
411  }
413  afficherBoutons();
414  }
415  break;
416 
418  if(espaceDeTravail.getAdresseIP().equals(b.getString("adresseIP")))
419  {
420  if(espaceDeTravail.extraireInformations(trame))
421  {
422  espaceDeTravail.extraireInformations(trame);
423  }
424  afficherNom();
426  afficherLieu();
429  afficherBoutons();
430  }
431  break;
432 
433  default:
434  Log.d(TAG, "handleMessage() : type de trame inconnu !");
435  }
436  break;
437  default:
438  Log.d(TAG,"handleMessage() : code inconnu ! ");
439  }
440  }
441  };
442 }
boolean getEstReserve()
Accesseur de l'attribut estReserve.
Communication entre l'application et le portier.
String getDescription()
Accesseur de l'attribut description.
void afficherTemperature()
Affiche la température de l'espace de travail.
String getLieu()
Accesseur de l'attribut lieu.
static final int MODIFICATION_INFORMATIONS
void setEstReserve(boolean estReserve)
Mutateur de l'attribut estReserve.
void afficherDescription()
Affiche la description de l'espace de travail.
void afficherAdresseIP()
Affiche l'adresse IP du portier.
String getCode()
Accesseur de l'attribut code.
static int recupererTypeTrame(String[] champs)
Détermine le type de trame.
boolean extraireCode(String trame)
Extrait le code.
String getAdresseIP()
Accesseur de l'attribut adresseIP.
static final int MODIFICATION_DISPONIBILITE
void onActivityResult(int requestCode, int resultCode, Intent data)
Traite le retour de l'activité de modification d'un espace de travail.
void liberer(String code)
Libère l'espace de travail.
void afficherDisponibilite()
Affiche la disponibilité de l'espace de travail.
int getIndiceDeConfort()
Accesseur de l'attribut indiceDeConfort.
int getSuperficie()
Accesseur de l'attribut superficie.
void afficher()
Affiche les propriétés de l'espace de travail.
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l'activité
void afficherFavori()
Affiche si l'espace de travail est en favori.
L'activité de modification d'un espace de travail de l'application Meeting.
EspaceDeTravail espaceDeTravail
L'espace de travail.
double getTemperature()
Accesseur de l'attribut temperature.
boolean getEstFavori()
Accesseur de l'attribut estFavori.
void afficherBoutons()
Affiche les boutons "Réserver", "Libérer", "Editer les informations", "Ajouter aux favoris" et "Retir...
static final int TYPE_RECEPTION
Code du message indiquant une réception de données.
void afficherBoiteLiberation()
Affiche la boîte de dialogue de saisie du code de libération.
void finish()
Termine l'activité d'affichage d'un espace de travail.
void afficherIndiceDeConfort()
Affiche l'indice de confort de l'espace de travail.
void setEstFavori(boolean estFavori)
Mutateur de l'attribut estFavori.
void afficherNom()
Affiche le nom de l'espace de travail.
L'activité d'affichage d'un espace de travail de l'application Meeting.
static final String TAG
TAG pour les logs.
void initialiserCommunication(Handler handler)
Initialise une communication.
void afficherLieu()
Affiche le lieu de l'espace de travail.
String getNom()
Accesseur de l'attribut nom.
void reserver()
Réserve l'espace de travail.
void afficherSuperficie()
Affiche la superficie de l'espace de travail.
boolean extraireInformations(String trame)
Extrait les informations d'une trame DEMANDE_INFORMATIONS.