Fix user duplication on new session start

This commit is contained in:
Arnaud Vergnet 2020-12-16 18:20:56 +01:00
parent 1fe1681d8b
commit 7075c9e0b6

View file

@ -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;
}