GrOOm  0.2
BTS SNIR LaSalle Avignon 2020
IHMConnexion.java
Aller à la documentation de ce fichier.
1 package com.example.groom;
2 
3 import android.app.AlertDialog;
4 import android.bluetooth.BluetoothAdapter;
5 import android.bluetooth.BluetoothDevice;
6 import android.content.DialogInterface;
7 import android.content.Intent;
8 import android.os.Bundle;
9 import android.util.Log;
10 import android.view.View;
11 import android.widget.AdapterView;
12 import android.widget.ArrayAdapter;
13 import android.widget.Button;
14 import android.widget.EditText;
15 import android.widget.Spinner;
16 import android.widget.Toast;
17 import java.io.Serializable;
18 import java.util.ArrayList;
19 import java.util.List;
20 import java.util.Set;
21 
22 import androidx.appcompat.app.AppCompatActivity;
23 
34 public class IHMConnexion extends AppCompatActivity implements View.OnClickListener {
39  private static final String TAG = "IHMConnexion";
40  private static final int ACTION_GROOM = 1;
41 
45  private Button boutonConnexion;
46  private Button boutonAjoutOccupant;
47  private Button boutonRetraitOccupant;
48  private Spinner listeGroom;
49  private Spinner listeOccupant;
50  private AlertDialog.Builder ajoutOccupant;
51  private AlertDialog.Builder retraitOccupant;
52  private EditText nomOccupant;
53  private EditText prenomOccupant;
54  private EditText fonctionOccupant;
55 
59  private Groom groom = null;
60  private BluetoothAdapter bluetoothAdapter;
61  private Set<BluetoothDevice> devices;
62  private List<String> listeNomsAppareilsBluetooth;
63  private List<String> listeOccupants;
64  private ArrayAdapter<String> adapterGroom;
65  private ArrayAdapter<String> adapterOccupant;
66  private List<BluetoothDevice> listeAppareilsBluetooth;
67  private Toast toast;
68  private Occupants occupants = null;
69  private Preferences preferences = null;
70 
76  @Override
77  protected void onCreate(Bundle savedInstanceState)
78  {
79  super.onCreate(savedInstanceState);
80  setContentView(R.layout.activity_communication);
81 
82  groom = new Groom("Eyraud", "Grégory", "étudiant", "Libre", true, false);
83  occupants = new Occupants(this);
84  preferences = new Preferences(this);
85 
88 
91  }
92 
96  private void selectionnerGroom() {
97  listeGroom.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
98  {
99  @Override
100  public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
101  {
102  Log.v(TAG, "onItemSelected()");
103  for (int i = 0; i < listeAppareilsBluetooth.size(); i++)
104  {
105  if (listeAppareilsBluetooth.get(i).getName().equals(listeNomsAppareilsBluetooth.get(position)))
106  {
107  Log.v(TAG, "onItemSelected() " + listeAppareilsBluetooth.get(i).getName());
108  groom.setNomDevice(listeAppareilsBluetooth.get(i).getName());
109  break;
110  }
111  }
112  }
113 
114  @Override
115  public void onNothingSelected(AdapterView<?> parent)
116  {
117 
118  }
119  });
120  }
121 
125  private void selectionnerOccupant() {
126  listeOccupant.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
127  @Override
128  public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
129  {
130  Log.v(TAG, "onItemSelected()" + "Occupant choisi : " + listeOccupants.get(position));
131  String identite[] = listeOccupants.get(position).split(" ");
132  groom.setOccupant(occupants.getOccupant(identite[0]));
133  }
134 
135  @Override
136  public void onNothingSelected(AdapterView<?> parent) {
137 
138  }
139  });
140  }
145  public void activerBluetooth()
146  {
147  bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
148  if (bluetoothAdapter == null)
149  {
150  Toast.makeText(getApplicationContext(), "Bluetooth non activé !", Toast.LENGTH_SHORT).show();
151  }
152  else
153  {
154  if (!bluetoothAdapter.isEnabled())
155  {
156  Toast.makeText(getApplicationContext(), "Bluetooth non activé !", Toast.LENGTH_SHORT).show();
157  bluetoothAdapter.enable();
158  }
159  else
160  {
161  Toast.makeText(getApplicationContext(), "Bluetooth activé", Toast.LENGTH_SHORT).show();
162  }
163  }
164 
166  }
167 
173  {
174  devices = bluetoothAdapter.getBondedDevices();
175 
176  //if(!(preferences.getPreference().getAppareilGroom().equals("")))
177  //{
178  //listeNomsAppareilsBluetooth.add(preferences.getPreference().getAppareilGroom());
179  //}
180 
181  Log.v(TAG, preferences.getPreference().toString());
182 
183  for (BluetoothDevice bluetoothDevice : devices)
184  {
185  listeAppareilsBluetooth.add(bluetoothDevice);
186  listeNomsAppareilsBluetooth.add(bluetoothDevice.getName());
187  }
188 
189  listerOccupant();
190  }
191 
192  private void listerOccupant()
193  {
194  List<Occupant> liste = occupants.getListe();
195  for(int i = 0; i<liste.size(); i++)
196  {
197  listeOccupants.add(liste.get(i).getNom() + " " + liste.get(i).getPrenom() + " " + liste.get(i).getFonction());
198  }
200  }
201 
207  {
208  Log.d(TAG, "initialiserRessourcesIHM()");
209 
210  boutonConnexion = findViewById(R.id.bouttonConnexion);
211  boutonAjoutOccupant = findViewById(R.id.bouttonAjoutOccupant);
212  boutonRetraitOccupant = findViewById(R.id.bouttonRetraitOccupant);
213 
214  boutonConnexion.setOnClickListener(this);
215  boutonAjoutOccupant.setOnClickListener(this);
216  boutonRetraitOccupant.setOnClickListener(this);
217 
218  listeGroom = findViewById(R.id.listeGroom);
219  listeOccupant = findViewById(R.id.listeOccupant);
220 
221  listeNomsAppareilsBluetooth = new ArrayList<String>();
222  listeAppareilsBluetooth = new ArrayList<BluetoothDevice>();
223  listeOccupants = new ArrayList<String>();
224 
227  }
228 
234  {
235  adapterGroom = new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, listeNomsAppareilsBluetooth);
236  adapterGroom.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
237  listeGroom.setAdapter(adapterGroom);
238 
239  adapterOccupant = new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, listeOccupants);
240  adapterOccupant.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
241  listeOccupant.setAdapter(adapterOccupant);
242  }
243 
251  @Override
252  protected void onActivityResult(int requestCode, int resultCode, Intent intent)
253  {
254  if (requestCode == ACTION_GROOM && resultCode == RESULT_OK)
255  {
256  groom = (Groom) intent.getSerializableExtra("Groom");
257  Log.v(TAG, "Disponibilité = " + groom.getDisponibilite());
258  Log.v(TAG, "Sonnette = " + groom.getModeSonnette());
259  }
260  }
261 
262  @Override
263  public void onClick(View element)
264  {
265  switch (element.getId())
266  {
267  case R.id.bouttonAjoutOccupant:
268  afficherToast("Ajout Occupant");
269  ajoutOccupant.show();
270  break;
271 
272  case R.id.bouttonRetraitOccupant:
273  afficherToast("Retrait Occupant");
274  retraitOccupant.show();
275  break;
276 
277  case R.id.bouttonConnexion:
278  afficherToast("Connexion");
279 
280  Intent intent = new Intent(IHMConnexion.this, IHMGroom.class);
281  intent.putExtra("Groom", (Serializable) groom);
282  startActivityForResult(intent, ACTION_GROOM);
283  /*if(preferences.getPreference() == null)
284  preferences.inserer(groom.getNomDevice(), listeOccupant.getId());
285  else
286  preferences.modifier(0, groom.getNomDevice(), listeOccupant.getId());*/
287  break;
288  }
289  }
290 
296  private void afficherToast(String message)
297  {
298  toast = Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT);
299  toast.show();
300  }
301 
307  {
308  ajoutOccupant = new AlertDialog.Builder(this);
309 
310  ajoutOccupant.setMessage("Veuillez saisir vos informations : ");
311  ajoutOccupant.setView(R.layout.ajout_occupant);
312  ajoutOccupant.setPositiveButton("Ajouter", new DialogInterface.OnClickListener()
313  {
314  @Override
315  public void onClick(DialogInterface dialog, int which)
316  {
317  nomOccupant = (EditText) ((AlertDialog) dialog).findViewById(R.id.nomOccupant);
318  prenomOccupant = (EditText) ((AlertDialog) dialog).findViewById(R.id.prenomOccupant);
319  fonctionOccupant = (EditText) ((AlertDialog) dialog).findViewById(R.id.fonctionOccupant);
320  Log.v(TAG, "Occupant ajouté :" + "Nom = " + nomOccupant.getText().toString() + " "
321  + "Prenom = " + prenomOccupant.getText().toString() + " "
322  + "Fonction = " + fonctionOccupant.getText().toString());
323 
324  adapterOccupant.add(nomOccupant.getText().toString() + " " + prenomOccupant.getText().toString() + " " + fonctionOccupant.getText().toString());
325 
326  occupants.inserer(nomOccupant.getText().toString(), prenomOccupant.getText().toString(), fonctionOccupant.getText().toString());
327  }
328  });
329  ajoutOccupant.setNegativeButton("Annuler", new DialogInterface.OnClickListener()
330  {
331  @Override
332  public void onClick(DialogInterface dialog, int which)
333  {
334  Log.v(TAG, "Ajout annulé");
335  }
336  });
337  }
338 
344  {
345  retraitOccupant = new AlertDialog.Builder(this);
346  retraitOccupant.setMessage("Vous êtes sur le point de supprimer l'occupant choisit.\r\n\r\n" + "Êtes-vous sûr de vouloir le supprimer ?");
347  retraitOccupant.setPositiveButton("Supprimer", new DialogInterface.OnClickListener()
348  {
349  @Override
350  public void onClick(DialogInterface dialog, int which)
351  {
352  Log.v(TAG, "Supression Occupant");
353  occupants.supprimer(groom.getOccupant().getId());
354  adapterOccupant.remove(groom.getOccupant().getNom() + " " + groom.getOccupant().getPrenom() + " " + groom.getOccupant().getFonction());
355  listeOccupant.setAdapter(adapterOccupant);
356  }
357  });
358  retraitOccupant.setNegativeButton("Annuler", new DialogInterface.OnClickListener()
359  {
360  @Override
361  public void onClick(DialogInterface dialog, int which)
362  {
363  Log.v(TAG, "Suppression annulée");
364  }
365  });
366  }
367 }
void selectionnerOccupant()
Méthode permet de sélectionner un occupant dans la liste.
void lancerRecherchePeripherique()
Méthode qui lance la recherche de périphérique.
List< String > listeOccupants
Conteneur qui liste les occupants.
ArrayAdapter< String > adapterOccupant
Adaptateur pour mettre la liste des occupants dnas la liste déroulante listeOccupant.
Occupant getOccupant(String nom)
Definition: Occupants.java:66
Déclaration de la classe Groom.
Definition: Groom.java:15
Déclaration de la classe IHMConnexion.
List< Occupant > getListe()
Definition: Occupants.java:23
EditText fonctionOccupant
Le champ de texte pour écrire la fonction de l&#39;occupnt.
Button boutonAjoutOccupant
Le bouton pour ajouter un occupant.
void setOccupant(Occupant occupant)
Definition: Groom.java:55
void activerBluetooth()
Méthode qui active le Bluetooth de l&#39;appareil.
void selectionnerGroom()
Méthode permet de sélectionner un portier Groom Bluetooth dans la liste.
List< BluetoothDevice > listeAppareilsBluetooth
Conteneur qui liste les appareils bluetooth disponibles.
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l&#39;activité IHMConnexion.
static final int ACTION_GROOM
Code de requête lors du début et de la fin de l&#39;activité IHMGroom.
Déclaration de la classe IHMGroom.
Definition: IHMGroom.java:35
Spinner listeOccupant
Liste déroulante des occupants.
void afficherToast(String message)
Méthode appelée pour donner des informations supplémentaires à l&#39;utilisateur.
AlertDialog.Builder ajoutOccupant
Le builder qui permet de créer une fenêtre de dialogue d&#39;ajout d&#39;occupant.
EditText nomOccupant
Le champ de texte pour écrire le nom de l&#39;occupant.
Toast toast
Le toast qui permet d&#39;afficher des informations à l&#39;utilisateur.
BluetoothAdapter bluetoothAdapter
L&#39;objet BluetoothAdapter.
Groom groom
L&#39;objet groom.
Button boutonConnexion
Le bouton pour se connecter à l&#39;appareil Groom.
Occupant getOccupant()
Definition: Groom.java:50
void setNomDevice(String nomDevice)
Accesseur set du nomDevice.
Definition: Groom.java:179
void initialiserListeDeroulante()
Méthode qui initialise la liste déroulante d&#39;appareils Bluetooth appairés.
Set< BluetoothDevice > devices
Conteneur qui liste les appareils bluetooth disponibles sans doublons.
String getDisponibilite()
Accesseur get de la disponibilité
Definition: Groom.java:66
EditText prenomOccupant
Le champ de texte pour écrire le prenom de l&#39;occupant.
void onActivityResult(int requestCode, int resultCode, Intent intent)
Méthode appelée à la fin de l&#39;activité lancée et récupère l&#39;objet groom envoyé
AlertDialog.Builder retraitOccupant
Le builder qui permet de créer une fenêtre de dialogue de retrait d&#39;occupant.
List< String > listeNomsAppareilsBluetooth
Conteneur qui liste les noms des appareils bluetooth disponibles.
ArrayAdapter< String > adapterGroom
Adaptateur pour mettre la liste de noms des appareils dans la liste déroulante listeGroom.
static final String TAG
TAG pour les logs.
long inserer(String nom, String prenom, String fonction)
Definition: Occupants.java:41
Spinner listeGroom
Liste déroulante des appareils bluetooth.
void initialiserAjoutOccupant()
Méthode appelée pour initialiser la boite de dialogue personnalisé pour l&#39;ajout d&#39;un occupant...
Button boutonRetraitOccupant
Le bouton pour retirer un occupant.
boolean getModeSonnette()
Accesseur get du mode de la sonnette.
Definition: Groom.java:124
void initialiserRessourcesIHM()
Méthode qui initialise les ressources du layout de l&#39;activité IHMConnexion.