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