diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/AddFriendActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/AddFriendActivity.java index 0bac3440d7387363bebaa59f25040e210e22650e..afeb6be4465ae8bbe35f903c20516256f88e1065 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