From ba6ce6dfbc3464bf3c4b98b08e74ed91586fc3e4 Mon Sep 17 00:00:00 2001
From: SofianeLasri <alasri250@gmail.com>
Date: Mon, 28 Mar 2022 11:59:27 +0200
Subject: [PATCH] =?UTF-8?q?TP=20not=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .idea/misc.xml                                |  2 +-
 .../com/slprojects/pizzeria/NumTable.java     | 23 +++++-
 .../com/slprojects/pizzeria/backTasks.java    | 75 ++++++++++++++-----
 .../main/res/layout/activity_num_table.xml    | 63 ++++++++++------
 app/src/main/res/values-fr/strings.xml        |  1 +
 app/src/main/res/values/strings.xml           |  1 +
 6 files changed, 120 insertions(+), 45 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index ced6401..e44ff7a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -6,7 +6,7 @@
         <entry key="..\:/Git/application-android-iut/app/src/main/res/layout-land/activity_main.xml" value="0.19635416666666666" />
         <entry key="..\:/Git/application-android-iut/app/src/main/res/layout-land/fragment_frag_horizontal_layout.xml" value="0.11197916666666667" />
         <entry key="..\:/Git/application-android-iut/app/src/main/res/layout/activity_main.xml" value="0.176" />
-        <entry key="..\:/Git/application-android-iut/app/src/main/res/layout/activity_num_table.xml" value="0.17346014492753623" />
+        <entry key="..\:/Git/application-android-iut/app/src/main/res/layout/activity_num_table.xml" value="0.264" />
         <entry key="..\:/Git/application-android-iut/app/src/main/res/layout/fragment_frag_vertical_layout.xml" value="0.1" />
         <entry key="..\:/Git/application-android-iut/app/src/main/res/layout/fragment_pizza_custom_vertical.xml" value="0.176" />
         <entry key="..\:/Z IUT Orsay/AndroidStudioProjects/Pizzeria/app/src/main/res/layout-land/activity_main.xml" value="0.1" />
diff --git a/app/src/main/java/com/slprojects/pizzeria/NumTable.java b/app/src/main/java/com/slprojects/pizzeria/NumTable.java
index f585b18..bf8631d 100644
--- a/app/src/main/java/com/slprojects/pizzeria/NumTable.java
+++ b/app/src/main/java/com/slprojects/pizzeria/NumTable.java
@@ -8,12 +8,15 @@ import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
+import android.widget.TextView;
 
 public class NumTable extends AppCompatActivity implements View.OnClickListener {
 
     public static String numTable = "numTable";
     private EditText input;
-    private Button btn;
+    private Button btnChoisirTable;
+    private Button btnListeCommandes;
+    private TextView listeCommandesText;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -21,15 +24,22 @@ public class NumTable extends AppCompatActivity implements View.OnClickListener
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_num_table);
         input = findViewById(R.id.tableNumInput);
-        btn = findViewById(R.id.btnValider);
-        btn.setOnClickListener(this);
+        btnChoisirTable = findViewById(R.id.btnValider);
+        btnChoisirTable.setOnClickListener(this);
+        btnListeCommandes = findViewById(R.id.btnListeCommandes);
+        btnListeCommandes.setOnClickListener(this);
+        listeCommandesText = findViewById(R.id.listeCommandesText);
     }
 
     @Override
     public void onClick(View v){
-        if(v.getId() == btn.getId()) {
+        if(v.getId() == btnChoisirTable.getId()) {
             Log.i("Numéro de la table", input.getText().toString());
             finish();
+        }else if(v.getId() == btnListeCommandes.getId()){
+            // On va appeler le serveur pour avoir la liste des commandes
+            backTasks tacheDeFond = new backTasks(this);
+            tacheDeFond.execute("getListeCommandes");
         }
     }
 
@@ -40,4 +50,9 @@ public class NumTable extends AppCompatActivity implements View.OnClickListener
         intent.putExtra("numTable", Integer.parseInt(input.getText().toString()));
         startActivity(intent);
     }
+
+    public void setListeCommandes(String listeCommandes){
+        Log.i("setListeCommandes", listeCommandes);
+        listeCommandesText.setText(listeCommandes);
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/slprojects/pizzeria/backTasks.java b/app/src/main/java/com/slprojects/pizzeria/backTasks.java
index b879b5a..1410a79 100644
--- a/app/src/main/java/com/slprojects/pizzeria/backTasks.java
+++ b/app/src/main/java/com/slprojects/pizzeria/backTasks.java
@@ -13,9 +13,13 @@ public class backTasks extends AsyncTask<String, Void, Void> {
     private PrintWriter output;
     private BufferedReader input;
     private MainActivity activity;
+    private NumTable numTableActivity;
 
-    public backTasks (MainActivity activity){
-        this.activity = activity;
+    public backTasks (MainActivity mainActivityActi){
+        this.activity = mainActivityActi;
+    }
+    public backTasks(NumTable numTableActivity){
+        this.numTableActivity = numTableActivity;
     }
 
     @Override
@@ -31,32 +35,67 @@ public class backTasks extends AsyncTask<String, Void, Void> {
             output = new PrintWriter(socket.getOutputStream(), true);
             input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
 
-            registerCommand(message[0]);
+            // Ici on va regarder ce qui nous est demandé
+            if(message[0].equals("getListeCommandes")){
+                // On souhaite récupérer la liste des commandes
+                // Le serveur demande d'envoyer LIST pour la récupérer
+                sendMessageToServer("LIST");
+
+                // On va récupérer le nombre de commandes
+                Integer nbCommandes = Integer.parseInt(input.readLine());
+                Log.i("backTasks:", "Nombre de commandes: "+nbCommandes);
+
+                // Maintenant on va attendre ses messages
+                String receviedMsg = "";
+                Integer receivedFlag = 1;
+                String textToDisplay = "";
+                // Je ne peux pas faire receivedFlag < nbCommandes car il y a des commandes regroupées sur une seule ligne
+                while(receviedMsg != null || receivedFlag == 1){
+                    receviedMsg = input.readLine();
+                    if(receviedMsg != null){
+                        textToDisplay += receviedMsg + "\n";
+                        Log.i("backTasks", "Commande en attente: " + receviedMsg);
+                        receivedFlag++; // On incrémente le flag
+                        Log.i("backTasks", "Flag: " + receivedFlag);
+                    }
+                }
+                Log.i("backTasks", "Liste des commandes reçues");
+                // On va afficher les commandes
+                numTableActivity.setListeCommandes(textToDisplay);
+
+            }else{
+                if(activity == null){
+                    // On throw une exception
+                    throw new Exception("Activity is null!");
+                }
+                // Ici on envoie la commande
+                sendMessageToServer(message[0]);
 
-            // Ici on va tout simplement lire les messages du serveur
-            // Et arrêter la boucle avec un flag
-            String receviedMsg = "";
-            Integer receivedFlag = 0;
-            while(receivedFlag < 2){
-                receviedMsg = input.readLine();
-                if (receviedMsg != null){ // Si le message n'est pas null
-                    Log.i("backTasks", "received message: " + receviedMsg);
-                    receivedFlag++; // On incrémente le flag
+                // Ici on va tout simplement lire les messages du serveur
+                // Et arrêter la boucle avec un flag
+                String receviedMsg = "";
+                Integer receivedFlag = 0;
+                while(receivedFlag < 2){
+                    receviedMsg = input.readLine();
+                    if (receviedMsg != null){ // Si le message n'est pas null
+                        Log.i("backTasks", "received message: " + receviedMsg);
+                        receivedFlag++; // On incrémente le flag
+                    }
                 }
+                String finalReceviedMsg = receviedMsg; // On stocke le message dans une variable final
+                activity.runOnUiThread(() -> { // On lance le code sur l'UI Thread
+                    activity.createAlertMessage(finalReceviedMsg, "Message de la cuisine"); // On affiche le message reçu
+                });
             }
-            String finalReceviedMsg = receviedMsg; // On stocke le message dans une variable final
-            activity.runOnUiThread(() -> { // On lance le code sur l'UI Thread
-                activity.createAlertMessage(finalReceviedMsg, "Message de la cuisine"); // On affiche le message reçu
-            });
         } catch (Exception x) {
             x.printStackTrace();
         }
         return null;
     }
 
-    public void registerCommand(String command){
+    public void sendMessageToServer(String command){
         if(output != null){
-            Log.i("backTasks", "registered command: "+command);
+            Log.i("backTasks", "Message sent: "+command);
             output.write(command);
             output.flush();
         }
diff --git a/app/src/main/res/layout/activity_num_table.xml b/app/src/main/res/layout/activity_num_table.xml
index c608c5d..d688a1c 100644
--- a/app/src/main/res/layout/activity_num_table.xml
+++ b/app/src/main/res/layout/activity_num_table.xml
@@ -18,39 +18,58 @@
       app:layout_constraintTop_toTopOf="parent"
       app:srcCompat="@drawable/rosewood" />
 
-  <TextView
-      android:id="@+id/textNumTable"
+  <LinearLayout
+      android:id="@+id/LinearLayout"
       android:layout_width="0dp"
       android:layout_height="wrap_content"
-      android:layout_marginStart="32dp"
-      android:text="Numéro de table"
-      android:textSize="16sp"
-      app:layout_constraintBottom_toTopOf="@+id/btnValider"
-      app:layout_constraintEnd_toStartOf="@+id/tableNumInput"
+      android:orientation="horizontal"
+      app:layout_constraintTop_toBottomOf="@+id/imageView"
+      app:layout_constraintBottom_toTopOf="@+id/listeCommandesText"
       app:layout_constraintStart_toStartOf="parent"
-      app:layout_constraintTop_toBottomOf="@+id/imageView" />
+      app:layout_constraintEnd_toEndOf="parent">
+
+    <TextView
+        android:id="@+id/textNumTable"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Numéro de table"
+        android:textSize="16sp" />
+
+    <EditText
+        android:id="@+id/tableNumInput"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:ems="10"
+        android:inputType="number" />
+
+    <Button
+        android:id="@+id/btnValider"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/choose"/>
+
+  </LinearLayout>
 
-  <EditText
-      android:id="@+id/tableNumInput"
+  <TextView
+      android:id="@+id/listeCommandesText"
       android:layout_width="0dp"
-      android:layout_height="wrap_content"
-      android:layout_marginEnd="32dp"
-      android:ems="10"
-      android:inputType="number"
-      app:layout_constraintBottom_toTopOf="@+id/btnValider"
+      android:layout_height="0dp"
+      android:text=""
+      app:layout_constraintBottom_toTopOf="@+id/btnListeCommandes"
       app:layout_constraintEnd_toEndOf="parent"
-      app:layout_constraintStart_toEndOf="@+id/textNumTable"
-      app:layout_constraintTop_toBottomOf="@+id/imageView" />
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toBottomOf="@+id/LinearLayout" />
 
   <Button
-      android:id="@+id/btnValider"
-      android:layout_width="wrap_content"
+      android:id="@+id/btnListeCommandes"
+      android:layout_width="0dp"
       android:layout_height="wrap_content"
-      android:text="@string/choose"
+      android:text="@string/commandsList"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"
-      app:layout_constraintHorizontal_bias="0.498"
+      app:layout_constraintHorizontal_bias="0.0"
       app:layout_constraintStart_toStartOf="parent"
-      app:layout_constraintTop_toBottomOf="@+id/tableNumInput" />
+      app:layout_constraintTop_toBottomOf="@+id/listeCommandesText"
+      app:layout_constraintVertical_bias="1.0" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index ed676bb..ca5e2af 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -12,4 +12,5 @@
     <string name="tiramisu">Tiramisu</string>
     <string name="pizzaperso">Pizza Personnalisé</string>
     <string name="ok">D\'accord</string>
+    <string name="commandsList">Liste des comandes</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c5c0b0b..568ef90 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -11,4 +11,5 @@
     <string name="tiramisu">Tiramisu</string>
     <string name="pizzaperso">Pimp My Pizza</string>
     <string name="ok">It\'s ok</string>
+    <string name="commandsList">Commands list</string>
 </resources>
\ No newline at end of file
-- 
GitLab