fix: prevent loading of messages from an other user
This commit is contained in:
parent
e02ea55179
commit
0fe3b666dd
2 changed files with 14 additions and 9 deletions
|
@ -32,11 +32,11 @@ public class ChatHistory {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyHistoryLoaded() {
|
private void notifyHistoryLoaded() {
|
||||||
historyListener.forEach(l -> l.onHistoryLoaded(history));
|
historyListener.forEach(l -> l.onHistoryLoaded(user, history));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyMessageAdded(Message message) {
|
private void notifyMessageAdded(Message message) {
|
||||||
messageListener.forEach(l -> l.onMessageAdded(message));
|
messageListener.forEach(l -> l.onMessageAdded(user, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load() {
|
public void load() {
|
||||||
|
@ -75,11 +75,11 @@ public class ChatHistory {
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface MessageAddedCallback {
|
public interface MessageAddedCallback {
|
||||||
void onMessageAdded(Message message);
|
void onMessageAdded(PeerUser user, Message message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface HistoryLoadedCallback {
|
public interface HistoryLoadedCallback {
|
||||||
void onHistoryLoaded(ArrayList<Message> history);
|
void onHistoryLoaded(PeerUser user, ArrayList<Message> history);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,8 @@ public class ChatController implements Initializable {
|
||||||
@FXML
|
@FXML
|
||||||
private VBox loadingContainer;
|
private VBox loadingContainer;
|
||||||
|
|
||||||
|
private PeerUser remoteUser;
|
||||||
|
|
||||||
public void addAttachmentListener(ButtonPressEvent listener) {
|
public void addAttachmentListener(ButtonPressEvent listener) {
|
||||||
chatFooterController.addAttachmentListener(listener);
|
chatFooterController.addAttachmentListener(listener);
|
||||||
}
|
}
|
||||||
|
@ -42,6 +44,7 @@ public class ChatController implements Initializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRemoteUser(PeerUser remoteUser) {
|
public void setRemoteUser(PeerUser remoteUser) {
|
||||||
|
this.remoteUser = remoteUser;
|
||||||
this.chatHeaderController.setRemoteUser(remoteUser);
|
this.chatHeaderController.setRemoteUser(remoteUser);
|
||||||
setState(State.LOADING);
|
setState(State.LOADING);
|
||||||
|
|
||||||
|
@ -51,13 +54,15 @@ public class ChatController implements Initializable {
|
||||||
history.load();
|
history.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onHistoryLoaded(ArrayList<Message> messages) {
|
private void onHistoryLoaded(PeerUser user, ArrayList<Message> messages) {
|
||||||
|
if (user.equals(remoteUser)) {
|
||||||
messageList.setItems(FXCollections.observableArrayList(messages));
|
messageList.setItems(FXCollections.observableArrayList(messages));
|
||||||
messageList.scrollTo(messageList.getItems().size() - 1);
|
messageList.scrollTo(messageList.getItems().size() - 1);
|
||||||
setState(State.DONE);
|
setState(State.DONE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void onMessageAdded(Message message) {
|
private void onMessageAdded(PeerUser user, Message message) {
|
||||||
messageList.getItems().add(message);
|
messageList.getItems().add(message);
|
||||||
messageList.scrollTo(messageList.getItems().size() - 1);
|
messageList.scrollTo(messageList.getItems().size() - 1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue