fix: prevent loading of messages from an other user

This commit is contained in:
Arnaud Vergnet 2020-12-06 16:44:52 +01:00
parent e02ea55179
commit 0fe3b666dd
2 changed files with 14 additions and 9 deletions

View file

@ -32,11 +32,11 @@ public class ChatHistory {
}
private void notifyHistoryLoaded() {
historyListener.forEach(l -> l.onHistoryLoaded(history));
historyListener.forEach(l -> l.onHistoryLoaded(user, history));
}
private void notifyMessageAdded(Message message) {
messageListener.forEach(l -> l.onMessageAdded(message));
messageListener.forEach(l -> l.onMessageAdded(user, message));
}
public void load() {
@ -75,11 +75,11 @@ public class ChatHistory {
}
public interface MessageAddedCallback {
void onMessageAdded(Message message);
void onMessageAdded(PeerUser user, Message message);
}
public interface HistoryLoadedCallback {
void onHistoryLoaded(ArrayList<Message> history);
void onHistoryLoaded(PeerUser user, ArrayList<Message> history);
}
}

View file

@ -33,6 +33,8 @@ public class ChatController implements Initializable {
@FXML
private VBox loadingContainer;
private PeerUser remoteUser;
public void addAttachmentListener(ButtonPressEvent listener) {
chatFooterController.addAttachmentListener(listener);
}
@ -42,6 +44,7 @@ public class ChatController implements Initializable {
}
public void setRemoteUser(PeerUser remoteUser) {
this.remoteUser = remoteUser;
this.chatHeaderController.setRemoteUser(remoteUser);
setState(State.LOADING);
@ -51,13 +54,15 @@ public class ChatController implements Initializable {
history.load();
}
private void onHistoryLoaded(ArrayList<Message> messages) {
messageList.setItems(FXCollections.observableArrayList(messages));
messageList.scrollTo(messageList.getItems().size() - 1);
setState(State.DONE);
private void onHistoryLoaded(PeerUser user, ArrayList<Message> messages) {
if (user.equals(remoteUser)) {
messageList.setItems(FXCollections.observableArrayList(messages));
messageList.scrollTo(messageList.getItems().size() - 1);
setState(State.DONE);
}
}
private void onMessageAdded(Message message) {
private void onMessageAdded(PeerUser user, Message message) {
messageList.getItems().add(message);
messageList.scrollTo(messageList.getItems().size() - 1);
}