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