Skip to content
Snippets Groups Projects
Commit bb9b091f authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Meilleure gestion des commandes reçues

parent ba6ce6df
Branches main
No related tags found
No related merge requests found
Pipeline #20 failed
...@@ -41,27 +41,45 @@ public class backTasks extends AsyncTask<String, Void, Void> { ...@@ -41,27 +41,45 @@ public class backTasks extends AsyncTask<String, Void, Void> {
// Le serveur demande d'envoyer LIST pour la récupérer // Le serveur demande d'envoyer LIST pour la récupérer
sendMessageToServer("LIST"); sendMessageToServer("LIST");
// On va récupérer le nombre de commandes // On va récupérer les messages du serveur
Integer nbCommandes = Integer.parseInt(input.readLine()); Integer nbMessagesRecus = 0;
Log.i("backTasks:", "Nombre de commandes: "+nbCommandes); Integer nbMessagesAttendus = 0;
Boolean listenMessages = true;
// Maintenant on va attendre ses messages String receivedMessage = "";
String receviedMsg = ""; String messageToSend = "";
Integer receivedFlag = 1; // On va écouter un message tant que le flag est vrai
String textToDisplay = ""; while(listenMessages){
// Je ne peux pas faire receivedFlag < nbCommandes car il y a des commandes regroupées sur une seule ligne receivedMessage = input.readLine(); // On lit le message
while(receviedMsg != null || receivedFlag == 1){ if(receivedMessage != null){ // Si on a bien reçu un message
receviedMsg = input.readLine(); // On va check l'ordre du message
if(receviedMsg != null){ // Le premier message contient le nombre de commandes
textToDisplay += receviedMsg + "\n"; if(nbMessagesRecus == 0){
Log.i("backTasks", "Commande en attente: " + receviedMsg); nbMessagesAttendus = Integer.parseInt(receivedMessage);
receivedFlag++; // On incrémente le flag nbMessagesRecus++;
Log.i("backTasks", "Flag: " + receivedFlag); Log.i("backTasks:", "Nombre de commandes: "+nbMessagesAttendus);
}else{
// On a reçu un message
// On va split les messages au cas où plusieurs auraient été envoyés en même temps
String[] messages = receivedMessage.split("Table");
for(int i = 0; i < messages.length; i++){
if(messages[i].length() > 0){
// On ajoute le message à la liste
messageToSend += "Table" + messages[i] + "\n"; // On rajoute "Table" car le split l'a supprimé
// On va incrémenter le nombre de message reçu
nbMessagesRecus++;
Log.i("backTasks:", "Message n°"+ nbMessagesRecus +" reçu: "+messages[i]);
} }
} }
Log.i("backTasks", "Liste des commandes reçues"); }
if((nbMessagesRecus-1) == nbMessagesAttendus){ // -1 car on a déjà récupéré le nombre de commandes
// On a reçu tous les messages
listenMessages = false;
}
}
}
// On va afficher les commandes // On va afficher les commandes
numTableActivity.setListeCommandes(textToDisplay); numTableActivity.setListeCommandes(messageToSend);
}else{ }else{
if(activity == null){ if(activity == null){
......
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@+id/imageView"
app:layout_constraintBottom_toTopOf="@+id/listeCommandesText" app:layout_constraintBottom_toTopOf="@+id/listeCommandesText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintTop_toBottomOf="@+id/imageView">
<TextView <TextView
android:id="@+id/textNumTable" android:id="@+id/textNumTable"
...@@ -39,8 +39,9 @@ ...@@ -39,8 +39,9 @@
android:id="@+id/tableNumInput" android:id="@+id/tableNumInput"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ems="10" android:ems="9"
android:inputType="number" /> android:inputType="number"
android:minHeight="48dp" />
<Button <Button
android:id="@+id/btnValider" android:id="@+id/btnValider"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment