Reading current chat when a new message is received

This commit is contained in:
DieGurke
2020-02-05 17:23:30 +01:00
parent 58b9ac8081
commit 8f4cf1428a
3 changed files with 27 additions and 14 deletions

View File

@ -216,7 +216,20 @@ public class ChatWindow extends JFrame {
// Listen to received messages
EventBus.getInstance().register(MessageCreationEvent.class, (evt) -> {
Message message = ((MessageCreationEvent) evt).get();
localDb.getChats().stream().filter(c -> c.getRecipient().getId() == message.getSenderId()).findFirst().get().appendMessage(message);
Chat chat = localDb.getChats().stream().filter(c -> c.getRecipient().getId() == message.getSenderId()).findFirst().get();
chat.appendMessage(message);
// Read message and update UI if in current chat
if (chat == currentChat) {
try {
currentChat.read(client);
} catch (IOException e) {
e.printStackTrace();
logger.log(Level.WARNING, "Could notify server about message status change", e);
}
messageList.synchronizeModel();
}
revalidate();
repaint();
});