fix desktop chat
This commit is contained in:
@@ -123,29 +123,20 @@ public class ChatController {
|
||||
|
||||
@FXML
|
||||
void btnSendClicked() {
|
||||
try {
|
||||
if (selectedConversation == null) {
|
||||
lblChatStatus.setText("Select a conversation");
|
||||
return;
|
||||
}
|
||||
|
||||
String content = txtMessage.getText() == null ? "" : txtMessage.getText().trim();
|
||||
if (content.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
txtMessage.clear();
|
||||
boolean sent = realtimeClient.sendMessage(selectedConversation.getId(), content);
|
||||
if (!sent) {
|
||||
sendMessageFallback(selectedConversation.getId(), content);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
ActivityLogger.getInstance().logException(
|
||||
"ChatController.btnSendClicked",
|
||||
e,
|
||||
"Sending chat message");
|
||||
lblChatStatus.setText("Chat send failed");
|
||||
if (selectedConversation == null) {
|
||||
lblChatStatus.setText("Select a conversation");
|
||||
return;
|
||||
}
|
||||
|
||||
String content = txtMessage.getText() == null ? "" : txtMessage.getText().trim();
|
||||
if (content.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
txtMessage.clear();
|
||||
btnSend.setDisable(true);
|
||||
lblChatStatus.setText("Sending message...");
|
||||
sendMessage(selectedConversation.getId(), content);
|
||||
}
|
||||
|
||||
private void loadCustomers() {
|
||||
@@ -211,19 +202,29 @@ public class ChatController {
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void sendMessageFallback(Long conversationId, String content) {
|
||||
private void sendMessage(Long conversationId, String content) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
MessageResponse response = ChatApi.getInstance().sendMessage(conversationId, new MessageRequest(content));
|
||||
Platform.runLater(() -> {
|
||||
lblChatStatus.setText("Chat fallback active");
|
||||
appendMessageIfSelected(response);
|
||||
btnSend.setDisable(false);
|
||||
if (!realtimeClient.isConnected()) {
|
||||
appendMessageIfSelected(response);
|
||||
}
|
||||
if (selectedConversation != null && selectedConversation.getId().equals(conversationId)) {
|
||||
lblChatStatus.setText("Message sent");
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
Platform.runLater(() -> ActivityLogger.getInstance().logException(
|
||||
"ChatController.sendMessageFallback",
|
||||
e,
|
||||
"Sending chat message for conversation " + conversationId));
|
||||
Platform.runLater(() -> {
|
||||
txtMessage.setText(content);
|
||||
btnSend.setDisable(false);
|
||||
lblChatStatus.setText("Chat send failed");
|
||||
ActivityLogger.getInstance().logException(
|
||||
"ChatController.sendMessage",
|
||||
e,
|
||||
"Sending chat message for conversation " + conversationId);
|
||||
});
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user