Merge branch 'AttachmentsToChat'
This commit is contained in:
@@ -35,9 +35,11 @@ import java.io.File;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ChatController {
|
||||
@@ -87,6 +89,7 @@ public class ChatController {
|
||||
private final ObservableList<ConversationResponse> activeConversations = FXCollections.observableArrayList();
|
||||
private final ObservableList<ConversationResponse> closedConversations = FXCollections.observableArrayList();
|
||||
private final Map<Long, String> customerLabels = new HashMap<>();
|
||||
private final Set<Long> renderedMessageIds = new HashSet<>();
|
||||
private final ChatRealtimeClient realtimeClient = ChatRealtimeClient.getInstance();
|
||||
private ConversationResponse selectedConversation;
|
||||
private File selectedAttachmentFile;
|
||||
@@ -131,12 +134,7 @@ public class ChatController {
|
||||
});
|
||||
|
||||
realtimeClient.setConversationListener(conversation -> Platform.runLater(() -> upsertConversation(conversation)));
|
||||
realtimeClient.setMessageListener(message -> Platform.runLater(() -> {
|
||||
Long myId = UserSession.getInstance().getUserId();
|
||||
if (message.getSenderId() == null || !message.getSenderId().equals(myId)) {
|
||||
appendMessageIfSelected(message);
|
||||
}
|
||||
}));
|
||||
realtimeClient.setMessageListener(message -> Platform.runLater(() -> appendMessageIfSelected(message)));
|
||||
realtimeClient.setStatusListener(status -> Platform.runLater(() -> lblChatStatus.setText(status)));
|
||||
realtimeClient.subscribeToConversations();
|
||||
|
||||
@@ -419,9 +417,11 @@ public class ChatController {
|
||||
|
||||
private void renderMessages(List<MessageResponse> messages) {
|
||||
vbMessages.getChildren().clear();
|
||||
renderedMessageIds.clear();
|
||||
for (MessageResponse message : messages) {
|
||||
try {
|
||||
vbMessages.getChildren().add(createMessageBubble(message));
|
||||
if (message.getId() != null) renderedMessageIds.add(message.getId());
|
||||
} catch (Exception e) {
|
||||
ActivityLogger.getInstance().logException(
|
||||
"ChatController.renderMessages",
|
||||
@@ -436,7 +436,11 @@ public class ChatController {
|
||||
try {
|
||||
upsertConversationForMessage(message);
|
||||
if (selectedConversation != null && selectedConversation.getId().equals(message.getConversationId())) {
|
||||
if (message.getId() != null && renderedMessageIds.contains(message.getId())) {
|
||||
return;
|
||||
}
|
||||
vbMessages.getChildren().add(createMessageBubble(message));
|
||||
if (message.getId() != null) renderedMessageIds.add(message.getId());
|
||||
scrollMessagesToBottom();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user