From 362f5fa2f89158a4baab31885fa517f780b93e75 Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Wed, 16 Dec 2020 12:26:43 +0100 Subject: [PATCH] fix tcp message receiving --- .../java/fr/insa/clavardator/db/DatabaseController.java | 2 +- .../java/fr/insa/clavardator/ui/chat/ChatController.java | 5 ++++- src/main/java/fr/insa/clavardator/users/PeerUser.java | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/fr/insa/clavardator/db/DatabaseController.java b/src/main/java/fr/insa/clavardator/db/DatabaseController.java index 2cd9197..03955b9 100644 --- a/src/main/java/fr/insa/clavardator/db/DatabaseController.java +++ b/src/main/java/fr/insa/clavardator/db/DatabaseController.java @@ -33,7 +33,7 @@ public class DatabaseController { * @param callback Function called when the request is done */ public void addMessage(Message message, MessageCallback callback) { - + callback.onMessageSaved(); } diff --git a/src/main/java/fr/insa/clavardator/ui/chat/ChatController.java b/src/main/java/fr/insa/clavardator/ui/chat/ChatController.java index 039e641..d8e18f0 100644 --- a/src/main/java/fr/insa/clavardator/ui/chat/ChatController.java +++ b/src/main/java/fr/insa/clavardator/ui/chat/ChatController.java @@ -7,6 +7,8 @@ import fr.insa.clavardator.ui.LoadingScreenController; import fr.insa.clavardator.ui.NoSelectionModel; import fr.insa.clavardator.users.PeerUser; import fr.insa.clavardator.util.ErrorCallback; +import fr.insa.clavardator.util.Log; +import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.fxml.Initializable; @@ -64,8 +66,9 @@ public class ChatController implements Initializable { } private void onMessageAdded(PeerUser user, Message message) { + Log.v(this.getClass().getSimpleName(), "Message added: " + message.getText()); messageList.getItems().add(message); - messageList.scrollTo(messageList.getItems().size() - 1); + Platform.runLater(() -> messageList.scrollTo(messageList.getItems().size() - 1)); } private void setState(State state) { diff --git a/src/main/java/fr/insa/clavardator/users/PeerUser.java b/src/main/java/fr/insa/clavardator/users/PeerUser.java index 2541ca9..1329577 100644 --- a/src/main/java/fr/insa/clavardator/users/PeerUser.java +++ b/src/main/java/fr/insa/clavardator/users/PeerUser.java @@ -118,11 +118,11 @@ public class PeerUser extends User implements Comparable { connection.receive( msg -> { Log.v(this.getClass().getSimpleName(), "Received message from " + id); - if (msg.getClass().isInstance(UserInformation.class)) { + if (msg instanceof UserInformation) { assert ((UserInformation) msg).id == getId(); Log.v(this.getClass().getSimpleName(), "Message username: " + ((UserInformation) msg).getUsername()); setUsername(((UserInformation) msg).getUsername()); - } else if (msg.getClass().isInstance(Message.class)) { + } else if (msg instanceof Message) { assert ((Message) msg).getRecipient().id != id; Log.v(this.getClass().getSimpleName(), "Message text: " + ((Message) msg).getText()); history.addMessage((Message) msg); @@ -130,7 +130,7 @@ public class PeerUser extends User implements Comparable { }, e -> { Log.e(this.getClass().getSimpleName(), "Error receiving message from " + id, e); - if (e.getClass().isInstance(EOFException.class)) { + if (e instanceof EOFException) { disconnect(); } else { errorCallback.onError(e);