Performed updating of the UI on the UI thread

This commit is contained in:
delvh 2020-04-09 22:30:24 +02:00
parent 6643cbeb3f
commit 0c5b74b976
2 changed files with 8 additions and 5 deletions

3
.gitignore vendored
View File

@ -1 +1,4 @@
/target/
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

View File

@ -17,6 +17,7 @@ import envoy.event.EventBus;
import envoy.event.MessageStatusChangeEvent;
import envoy.event.UserStatusChangeEvent;
import envoy.util.EnvoyLog;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.*;
@ -74,7 +75,7 @@ public final class ChatSceneController {
chat.getMessages().add(message);
// Update UI if in current chat
if (chat == currentChat) messageList.getItems().add(message);
if (chat == currentChat) Platform.runLater(() -> messageList.getItems().add(message));
});
// Listen to message status changes
@ -83,11 +84,11 @@ public final class ChatSceneController {
message.setStatus(e.get());
// Update UI if in current chat
if (currentChat != null && message.getSenderID() == currentChat.getRecipient().getID()) messageList.refresh();
if (currentChat != null && message.getSenderID() == currentChat.getRecipient().getID()) Platform.runLater(() -> messageList.refresh());
});
// Listen to user status changes
eventBus.register(UserStatusChangeEvent.class, e -> userList.refresh());
eventBus.register(UserStatusChangeEvent.class, e -> Platform.runLater(() -> userList.refresh()));
}
void initializeData(LocalDB localDB, Client client, WriteProxy writeProxy) {
@ -96,7 +97,6 @@ public final class ChatSceneController {
this.writeProxy = writeProxy;
// TODO: handle offline mode
// userList.setItems(FXCollections.observableList(client.getContacts()));
userList.setItems(FXCollections.observableList(localDB.getUser().getContacts().stream().collect(Collectors.toList())));
}