Fixed bug duplicating messages

This commit is contained in:
delvh 2020-04-18 10:34:03 +02:00
parent eb55e8e86b
commit 13a7a38deb
3 changed files with 9 additions and 9 deletions

View File

@ -231,7 +231,7 @@ public class Client implements Closeable {
private void writeObject(Object obj) throws IOException { private void writeObject(Object obj) throws IOException {
checkOnline(); checkOnline();
logger.fine("Sending object " + obj); logger.fine("Sending " + obj);
SerializationUtils.writeBytesWithLength(obj, socket.getOutputStream()); SerializationUtils.writeBytesWithLength(obj, socket.getOutputStream());
} }

View File

@ -54,7 +54,7 @@ public class Receiver extends Thread {
try (ObjectInputStream oin = new ObjectInputStream(new ByteArrayInputStream(objBytes))) { try (ObjectInputStream oin = new ObjectInputStream(new ByteArrayInputStream(objBytes))) {
Object obj = oin.readObject(); Object obj = oin.readObject();
logger.fine("Received object " + obj); logger.fine("Received " + obj);
// Get appropriate processor // Get appropriate processor
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")

View File

@ -5,6 +5,13 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import envoy.client.data.Chat; import envoy.client.data.Chat;
import envoy.client.data.LocalDB; import envoy.client.data.LocalDB;
import envoy.client.event.MessageCreationEvent; import envoy.client.event.MessageCreationEvent;
@ -17,12 +24,6 @@ import envoy.event.EventBus;
import envoy.event.MessageStatusChangeEvent; import envoy.event.MessageStatusChangeEvent;
import envoy.event.UserStatusChangeEvent; import envoy.event.UserStatusChangeEvent;
import envoy.util.EnvoyLog; import envoy.util.EnvoyLog;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
/** /**
* Project: <strong>envoy-client</strong><br> * Project: <strong>envoy-client</strong><br>
@ -72,7 +73,6 @@ public final class ChatSceneController {
eventBus.register(MessageCreationEvent.class, e -> { eventBus.register(MessageCreationEvent.class, e -> {
final var message = e.get(); final var message = e.get();
final var chat = localDB.getChats().stream().filter(c -> c.getRecipient().getID() == message.getSenderID()).findAny().get(); final var chat = localDB.getChats().stream().filter(c -> c.getRecipient().getID() == message.getSenderID()).findAny().get();
chat.getMessages().add(message);
// Update UI if in current chat // Update UI if in current chat
if (chat == currentChat) Platform.runLater(() -> messageList.getItems().add(message)); if (chat == currentChat) Platform.runLater(() -> messageList.getItems().add(message));