From f6d25e43022de00ad01072b12a682e5ee908f00a Mon Sep 17 00:00:00 2001
From: remathieu <remy.mathieu@student.uclouvain.be>
Date: Sat, 15 Apr 2023 15:39:04 +0200
Subject: [PATCH] Patch bugs AddFriendActivity

---
 .../workoutwarrior/AddFriendActivity.java     | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/AddFriendActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/AddFriendActivity.java
index 0bac344..afeb6be 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/AddFriendActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/AddFriendActivity.java
@@ -30,6 +30,8 @@ public class AddFriendActivity extends AppCompatActivity {
     private final FirebaseDatabase firebaseDb = FirebaseDatabase.getInstance();
     private DatabaseReference db;
     private String userPseudo;
+    private ValueEventListener checkPseudo;
+    private ValueEventListener checkIfFriends;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -82,7 +84,7 @@ public class AddFriendActivity extends AppCompatActivity {
     }
 
     private void checkPseudo(String pseudo) {
-        db.addValueEventListener(new ValueEventListener() {
+        checkPseudo = new ValueEventListener() {
             @Override
             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                 for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
@@ -101,11 +103,12 @@ public class AddFriendActivity extends AppCompatActivity {
             public void onCancelled(@NonNull DatabaseError error) {
                 Toast.makeText(AddFriendActivity.this, "Erreur !", Toast.LENGTH_SHORT).show();
             }
-        });
+        };
+        db.addValueEventListener(checkPseudo);
     }
 
     private void checkIfAlreadyFriends(String newFriendPseudo, String userPseudo) {
-        db.addValueEventListener(new ValueEventListener() {
+        checkIfFriends = new ValueEventListener() {
             @Override
             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                 DataSnapshot friendsList = dataSnapshot.child(userPseudo);
@@ -125,7 +128,9 @@ public class AddFriendActivity extends AppCompatActivity {
             public void onCancelled(@NonNull DatabaseError error) {
                 Toast.makeText(AddFriendActivity.this, "Erreur !", Toast.LENGTH_SHORT).show();
             }
-        });
+        };
+        db.addValueEventListener(checkIfFriends);
+        //db.removeEventListener(checkIfFriends);
     }
 
     private void addFriendship(String userPseudo, String newFriendPseudo) {
@@ -137,10 +142,18 @@ public class AddFriendActivity extends AppCompatActivity {
         try {
             db.updateChildren(updates);
             Toast.makeText(AddFriendActivity.this, "Ami ajouté !", Toast.LENGTH_SHORT).show();
+            resetFirebaseQuery();
             finish();
             return;
         } catch (Exception e){
             Log.d("error", "savePseudo: " + e);
         }
     }
+
+    private void resetFirebaseQuery(){
+        //stop each onDataChange query
+        db = firebaseDb.getReference("Friends");
+        db.removeEventListener(checkPseudo);
+        db.removeEventListener(checkIfFriends);
+    }
 }
\ No newline at end of file
-- 
GitLab