1 package com.lasalle84.mobile_darts;
3 import android.app.Activity;
4 import android.bluetooth.BluetoothAdapter;
5 import android.content.Intent;
6 import android.os.Bundle;
7 import android.os.Handler;
8 import android.os.Message;
9 import android.util.Log;
10 import android.view.View;
11 import android.widget.ArrayAdapter;
12 import android.widget.Button;
13 import android.widget.ListView;
14 import android.widget.TextView;
16 import androidx.appcompat.app.AppCompatActivity;
18 import java.io.Serializable;
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
40 private final static String
TAG =
"_ActiviteJouerPartie_";
65 protected void onCreate(Bundle savedInstanceState)
67 Log.d(TAG,
"onCreate()");
68 super.onCreate(savedInstanceState);
69 setContentView(R.layout.activity_activite_jouer_partie);
76 maPartie =
new Partie(mesJoueurs, typePartie, handler);
86 Log.d(TAG,
"[onStart]");
96 Log.d(TAG,
"[onResume]");
106 Log.d(TAG,
"[onPause]");
116 Log.d(TAG,
"[onStop]");
126 Log.d(TAG,
"[onDestroy]");
137 Log.d(TAG,
"recupererPeripheriques()");
142 if(cibleDarts != null)
144 if(ecranDarts != null)
157 Log.d(TAG,
"actualiserScoreIHM()");
160 for (
int i = 0; i < mesJoueurs.size(); i++)
162 if (mesJoueurs.get(i).getNom().equals(joueur))
167 mesJoueurs.get(idJoueur).setScore(score);
168 String
string = mesJoueurs.get(idJoueur).getNom() +
": " + mesJoueurs.get(idJoueur).getScore();
169 adapteur.remove(adapteur.getItem(idJoueur));
170 adapteur.insert(
string, idJoueur);
181 Log.d(TAG,
"afficherJoueurActuel()");
183 for (
int i = 0; i < mesJoueurs.size(); i++)
185 if (mesJoueurs.get(i).getNom().equals(joueur))
187 joueurActuel =
"-> " + mesJoueurs.get(i).getNom() +
": " + mesJoueurs.get(i).getScore();
190 joueurActuel = mesJoueurs.get(i).getNom() +
": " + mesJoueurs.get(i).getScore();
192 adapteur.remove(adapteur.getItem(i));
193 adapteur.insert(joueurActuel, i);
195 affichageImpact.setText(
"");
207 Log.d(TAG,
"afficherGagnant() : Le nom du gagnant est : " + gagnant);
209 List<Joueur> lesJoueur =
new ArrayList<Joueur>();
210 for (
int i = 0; i < mesJoueurs.size(); i++)
212 if (mesJoueurs.get(i).getNom().equals(gagnant))
214 AfficherGagnant.putExtra(
"gagnant", mesJoueurs.get(i).getNom());
215 lesJoueur.add(mesJoueurs.get(i));
219 lesJoueur.add(mesJoueurs.get(i));
222 AfficherGagnant.putExtra(
"joueurs", (Serializable) lesJoueur);
225 startActivityForResult(AfficherGagnant,ACTIVITE_FIN_PARTIE);
239 Log.d(TAG,
"afficherImpact()");
240 String multiplication =
new String();
241 switch (multiplicateur)
244 multiplication =
"MISS";
247 multiplication =
"Simple ";
250 multiplication =
"Double ";
253 multiplication =
"Triple ";
256 if (multiplication ==
"MISS")
258 affichageImpact.setText(affichageImpact.getText().toString().concat(
"MISS "));
262 affichageImpact.setText(affichageImpact.getText().toString().concat(multiplication + Integer.toString(Touche) +
" "));
273 mesJoueurs =
new ArrayList<Joueur>();
274 mesJoueurs = (ArrayList<Joueur>) getIntent().getSerializableExtra(
"LesJoueurs");
275 Iterator<Joueur> it = mesJoueurs.iterator();
279 Log.d(TAG,
"le joueur "+ it.next().getNom() +
"est chargé");
281 typePartie =
new TypeJeu(getIntent().getIntExtra(
"TypeMode",0));
286 Log.d(TAG,
"envoyerAquittement()");
287 cibleDarts.
envoyer(
"$DARTS;OK;" +
"\\r\\n");
295 Log.d(TAG,
"initialiserWidgets()");
296 boutonTirManque = (Button) findViewById(R.id.TirManque);
297 boutonTirManque.setVisibility(View.INVISIBLE);
298 boutonTirManque.setOnClickListener(view -> {
299 Log.d(TAG,
"[onClick] boutonTirManque");
303 boutonLancerPartie = (Button) findViewById(R.id.LancerPartie);
304 boutonLancerPartie.setOnClickListener(view -> {
305 Log.d(TAG,
"[onClick] boutonLancerPartie");
315 boutonLancerPartie.setVisibility(View.INVISIBLE);
316 boutonTirManque.setVisibility(View.VISIBLE);
318 listJoueur = (ListView) findViewById(R.id.MesJoueur);
319 affichageImpact = (TextView) findViewById(R.id.Impact);
327 Log.d(TAG,
"[initialiserHandler]");
328 this.handler =
new Handler(this.getMainLooper())
331 public void handleMessage(Message msg)
333 super.handleMessage(msg);
334 Bundle b = msg.getData();
340 String donnees = b.getString(
"donnees");
341 Log.d(TAG,
"[handleMessage] Nom : " + b.getString(
"nom") +
" - Adresse : " + b.getString(
"adresse") +
" -> " + b.getString(
"donnees"));
346 String donnees = b.getString(
"donnees");
347 Log.d(TAG,
"[handleMessage] Nom : " + b.getString(
"nom") +
" - Adresse : " + b.getString(
"adresse") +
" -> " + b.getString(
"donnees"));
352 Log.d(TAG,
"[handleMessage] : SET_SCORE " +
"Joueur: " + b.getString(
"joueur") +
" Score: " + b.getInt(
"score"));
356 Log.d(TAG,
"[handleMessage] : IMPACT " +
"Joueur: " + b.getString(
"joueur") +
" Touche: " + b.getInt(
"Touche") +
" Multiplicateur Touche: " + b.getInt(
"MultiplicateurTouche"));
357 afficherImpact( b.getInt(
"Touche"),b.getInt(
"MultiplicateurTouche"));
358 if(ecranDarts != null)
360 ecranDarts.
envoyer(
"$DARTS;HIT;" + b.getInt(
"Touche") +
";" + b.getInt(
"MultiplicateurTouche") +
";" + b.getInt(
"ID") +
"\r\n");
364 Log.d(TAG,
"[handleMessage] : JOUEUR_SUIVANT " +
"Joueur: " + b.getString(
"joueur"));
368 Log.d(TAG,
"[handleMessage] : ENVOYER_AQUITTEMENT");
372 Log.d(TAG,
"[handleMessage] : AFFICHER_GAGNANT");
373 if(ecranDarts != null)
375 ecranDarts.
envoyer(
"$DARTS;END;"+b.getString(
"gagnant")+
"\r\n");
377 cibleDarts.
envoyer(
"$DARTS;RESET\r\n");
389 Log.d(TAG,
"initialiserPartie()");
390 Iterator<Joueur> it = mesJoueurs.iterator();
391 String trameNomJoueurs =
new String();
394 Joueur monJoueur = it.next();
397 trameNomJoueurs = trameNomJoueurs.concat(
";" +monJoueur.
getNom());
399 cibleDarts.
envoyer(
"$DARTS;START;" + typePartie.
getTypeJeu() +
";" + mesJoueurs.size() + trameNomJoueurs +
"\r\n");
401 if(ecranDarts != null)
403 ecranDarts.
envoyer(
"$DARTS;START;" + typePartie.
getTypeJeu() +
";" + mesJoueurs.size() + trameNomJoueurs +
"\r\n");
405 Log.d(TAG,
"Envoi de la trame à la cible et à l'écran");
413 Log.d(TAG,
"initialiserListeJoueur()");
414 adapteur =
new ArrayAdapter<String>(
this,android.R.layout.simple_spinner_item);
415 for (
int i = 0; i < mesJoueurs.size(); i++)
417 adapteur.add(mesJoueurs.get(i).getNom());
419 listJoueur.setAdapter(adapteur);
427 super.onActivityResult(requestCode, resultCode, data);
428 Log.d(TAG,
"[onActivityResult] Fin ActiviteFinPartie");
429 if (ecranDarts != null)
Partie maPartie
La partie jouée.
void cibleManquee()
Méthode envoyant une fléchette manquée.
Handler handler
Le Handler qui permet de communiquer avec le thread.
void afficherGagnant(String gagnant)
void initialiserPartie()
Initialisation de la partie.
La classe qui contient toute la gestion de partie.
static final int JOUEUR_SUIVANT
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l'activité
void demarrerPartie()
Méthode permettant de démarrer la partie.
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...
void initialiserWidgets()
Initialisation des Widgets.
ListView listJoueur
Listview des Joueurs.
L'activité ActiviteLancerPartie.
ArrayAdapter< String > adapteur
Adapteur qui affiche quel joueur doit joueur et son score.
void afficherImpact(int Touche, int multiplicateur)
La classe qui contient toute la gestion des periphériques.
static Peripherique getPeripheriqueEcranDarts()
TextView affichageImpact
Texte qui affiche la vollée actuelle.
static final int ENVOYER_AQUITTEMENT
L'activité ActiviteFinPartie.
void initialiserListeJoueur()
Initialisation des joueurs.
static final String NOM_ECRAN
Le nom du module Bluetooth de l'écran.
La classe qui contient toute la gestion des types de parties.
void onStart()
Méthode appelée au démarrage après le onCreate() ou un restart après un onStop()
ArrayList< Joueur > mesJoueurs
liste des Joueurs
void onDestroy()
Méthode appelée à la destruction de l'application (après onStop() et détruite par le système Android)...
Button boutonTirManque
Bouton pour la commande de tir manqué
Button boutonLancerPartie
Bouton permettant le lancement de la partie.
void deconnecter()
Méthode pour se deconnecter sur le periphérique en Bluetooth.
void traiterTrame(String trame)
void chargerLesParametres()
Peripherique cibleDarts
Le periphérique Bluetooth de la cible.
void setHandlerActivite(Handler handler)
Méthode qui permet de changer d'handler.
void onResume()
Méthode appelée après onStart() ou après onPause()
static Peripherique getPeripheriqueCibleDarts()
La classe qui contient toute la gestion des joueurs.
void initialiserHandler()
Initialisation du handler.
static final int SET_SCORE
void actualiserScoreIHM(String joueur, int score)
static final int CODE_RECEPTION
Code de TReception.
void afficherJoueurActuel(String joueur)
BluetoothAdapter bluetoothAdapter
Bluetooth Adapteur.
L'activité ActiviteJouerPartie.
void onStop()
Méthode appelée lorsque l'activité n'est plus visible.
static final int ACTIVITE_FIN_PARTIE
Code pour l'Activite fin partie.
String getNom()
Accesseur du nom du joueur.
void onActivityResult(int requestCode, int resultCode, Intent data)
Traite le retour des activités.
void recupererPeripheriques()
static final String NOM_CIBLE
Le nom du module Bluetooth de la cible-darts 2021.
void envoyer(final String data)
Méthode pour envoyer une trame en Bluetooth.
Peripherique ecranDarts
Le periphérique Bluetooth de l'écran.