From 7075c9e0b625e7cb022e88c06d7819cfd42464ec Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Wed, 16 Dec 2020 18:20:56 +0100 Subject: [PATCH] Fix user duplication on new session start --- .../fr/insa/clavardator/users/UserList.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/fr/insa/clavardator/users/UserList.java b/src/main/java/fr/insa/clavardator/users/UserList.java index f88cfa8..a8ee721 100644 --- a/src/main/java/fr/insa/clavardator/users/UserList.java +++ b/src/main/java/fr/insa/clavardator/users/UserList.java @@ -40,10 +40,8 @@ public class UserList { Log.v(this.getClass().getSimpleName(), "Discovered new user: " + id); final PeerUser finalUser = createNewUser(id); if (finalUser != null) { - finalUser.connect(ipAddr, () -> { - notifyNewUserObservers(finalUser); - finalUser.addObserver(evt -> userChangeObserver(finalUser, evt)); - }, errorCallback); + finalUser.connect(ipAddr, () -> + finalUser.addObserver(evt -> userChangeObserver(finalUser, evt)), errorCallback); } }, errorCallback); } @@ -62,10 +60,8 @@ public class UserList { Log.v(this.getClass().getSimpleName(), "new connection from user: " + id); final PeerUser finalUser = createNewUser(id); if (finalUser != null) { - finalUser.connect(clientSocket, () -> { - notifyNewUserObservers(finalUser); - finalUser.addObserver(evt -> userChangeObserver(finalUser, evt)); - }, errorCallback); + finalUser.connect(clientSocket, () -> + finalUser.addObserver(evt -> userChangeObserver(finalUser, evt)), errorCallback); } }, errorCallback); @@ -84,8 +80,9 @@ public class UserList { // else create it if (user == null) { // Username is set on TCP connection start - user = new PeerUser(id, ""); + user = new PeerUser(id); inactiveUsers.put(id, user); + notifyNewUserObservers(user); } return user; @@ -103,9 +100,9 @@ public class UserList { // Connection handling if (!inactiveUsers.containsKey(id)) { if (activeUsers.containsKey(id)) { - Log.e(getClass().getSimpleName(), "Tried to set state CONNECTED on an already connected user: user id " + id); + Log.w(getClass().getSimpleName(), "Tried to set state CONNECTED on an already connected user: user id " + id); } else { - Log.e(getClass().getSimpleName(), "Tried to set state CONNECTED on an unknown user: user id " + id); + Log.w(getClass().getSimpleName(), "Tried to set state CONNECTED on an unknown user: user id " + id); } return; }