Sidebar updated.
This commit is contained in:
@@ -255,106 +255,106 @@ public class SidebarHandler {
|
|||||||
actionHandler.showContactList();
|
actionHandler.showContactList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getSavedMessagesData(String userId) {
|
// public void getSavedMessagesData(String userId) {
|
||||||
try {
|
// try {
|
||||||
// Step 1: Create the request
|
// // Step 1: Create the request
|
||||||
JSONObject request = new JSONObject();
|
// JSONObject request = new JSONObject();
|
||||||
request.put("action", "get_saved_messages");
|
// request.put("action", "get_saved_messages");
|
||||||
request.put("user_id", userId);
|
// request.put("user_id", userId);
|
||||||
|
//
|
||||||
|
// // Step 2: Send request and wait for response
|
||||||
|
// JSONObject response = ActionHandler.sendWithResponse(request);
|
||||||
|
//
|
||||||
|
// // Step 3: Check the response
|
||||||
|
// if (!response.optString("status", "fail").equals("success")) {
|
||||||
|
// System.out.println("Failed to open Saved Messages chat: " + response.optString("message", "Unknown error"));
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // Step 4: Extract "data" object
|
||||||
|
// JSONObject data = response.getJSONObject("data");
|
||||||
|
// UUID chatId = UUID.fromString(data.getString("chat_id"));
|
||||||
|
// JSONArray messagesArray = data.getJSONArray("messages");
|
||||||
|
//
|
||||||
|
// // Step 5: Parse messages
|
||||||
|
// List<Message> messages = new ArrayList<>();
|
||||||
|
// if (!messagesArray.isEmpty()) {
|
||||||
|
// for (int i = 0; i < messagesArray.length(); i++) {
|
||||||
|
// JSONObject msgJson = messagesArray.getJSONObject(i);
|
||||||
|
//
|
||||||
|
// // Safely extract optional UUIDs
|
||||||
|
// UUID replyToId = null;
|
||||||
|
// String replyToIdStr = msgJson.optString("reply_to_id", null);
|
||||||
|
// if (replyToIdStr != null && !replyToIdStr.equals("null")) {
|
||||||
|
// replyToId = UUID.fromString(replyToIdStr);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// UUID originalMessageId = null;
|
||||||
|
// String originalMessageIdStr = msgJson.optString("original_message_id", null);
|
||||||
|
// if (originalMessageIdStr != null && !originalMessageIdStr.equals("null")) {
|
||||||
|
// originalMessageId = UUID.fromString(originalMessageIdStr);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// UUID forwardedBy = null;
|
||||||
|
// String forwardedByStr = msgJson.optString("forwarded_by", null);
|
||||||
|
// if (forwardedByStr != null && !forwardedByStr.equals("null")) {
|
||||||
|
// forwardedBy = UUID.fromString(forwardedByStr);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// UUID forwardedFrom = null;
|
||||||
|
// String forwardedFromStr = msgJson.optString("forwarded_from", null);
|
||||||
|
// if (forwardedFromStr != null && !forwardedFromStr.equals("null")) {
|
||||||
|
// forwardedFrom = UUID.fromString(forwardedFromStr);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Message msg = new Message(
|
||||||
|
// UUID.fromString(msgJson.getString("message_id")),
|
||||||
|
// UUID.fromString(msgJson.getString("sender_id")),
|
||||||
|
// msgJson.getString("receiver_type"),
|
||||||
|
// UUID.fromString(msgJson.getString("receiver_id")),
|
||||||
|
// msgJson.getString("content"),
|
||||||
|
// msgJson.getString("message_type"),
|
||||||
|
// LocalDateTime.parse(msgJson.getString("send_at").replace(" ", "T")),
|
||||||
|
// msgJson.getString("status"),
|
||||||
|
// replyToId,
|
||||||
|
// msgJson.getBoolean("is_edited"),
|
||||||
|
// originalMessageId,
|
||||||
|
// forwardedBy,
|
||||||
|
// forwardedFrom,
|
||||||
|
// msgJson.getBoolean("is_deleted_globally"),
|
||||||
|
// LocalDateTime.parse(msgJson.getString("edited_at").replace(" ", "T"))
|
||||||
|
// );
|
||||||
|
//
|
||||||
|
// messages.add(msg);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // Step 6: Add to active chats if not already present
|
||||||
|
// boolean alreadyExists = Session.activeChats.stream()
|
||||||
|
// .anyMatch(entry -> entry.getId().equals(chatId));
|
||||||
|
// if (!alreadyExists) {
|
||||||
|
// ChatEntry savedEntry = new ChatEntry(
|
||||||
|
// chatId,
|
||||||
|
// "Saved-Messages",
|
||||||
|
// "Saved Messages",
|
||||||
|
// "📌", // or use a URL string if you have an icon for saved messages
|
||||||
|
// "private",
|
||||||
|
// messages.isEmpty() ? null : messages.get(messages.size() - 1).getSend_at()
|
||||||
|
// );
|
||||||
|
// savedEntry.setSavedMessages(true);
|
||||||
|
// Session.activeChats.add(savedEntry);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // Step 7: Show chat
|
||||||
|
// showSavedMessages(chatId, messages);
|
||||||
|
//
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// System.out.println("An error occurred while retrieving Saved Messages.");
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
// Step 2: Send request and wait for response
|
// private void showSavedMessages(UUID chatId, List<Message> messages) {
|
||||||
JSONObject response = ActionHandler.sendWithResponse(request);
|
|
||||||
|
|
||||||
// Step 3: Check the response
|
|
||||||
if (!response.optString("status", "fail").equals("success")) {
|
|
||||||
System.out.println("Failed to open Saved Messages chat: " + response.optString("message", "Unknown error"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Step 4: Extract "data" object
|
|
||||||
JSONObject data = response.getJSONObject("data");
|
|
||||||
UUID chatId = UUID.fromString(data.getString("chat_id"));
|
|
||||||
JSONArray messagesArray = data.getJSONArray("messages");
|
|
||||||
|
|
||||||
// Step 5: Parse messages
|
|
||||||
List<Message> messages = new ArrayList<>();
|
|
||||||
if (!messagesArray.isEmpty()) {
|
|
||||||
for (int i = 0; i < messagesArray.length(); i++) {
|
|
||||||
JSONObject msgJson = messagesArray.getJSONObject(i);
|
|
||||||
|
|
||||||
// Safely extract optional UUIDs
|
|
||||||
UUID replyToId = null;
|
|
||||||
String replyToIdStr = msgJson.optString("reply_to_id", null);
|
|
||||||
if (replyToIdStr != null && !replyToIdStr.equals("null")) {
|
|
||||||
replyToId = UUID.fromString(replyToIdStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID originalMessageId = null;
|
|
||||||
String originalMessageIdStr = msgJson.optString("original_message_id", null);
|
|
||||||
if (originalMessageIdStr != null && !originalMessageIdStr.equals("null")) {
|
|
||||||
originalMessageId = UUID.fromString(originalMessageIdStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID forwardedBy = null;
|
|
||||||
String forwardedByStr = msgJson.optString("forwarded_by", null);
|
|
||||||
if (forwardedByStr != null && !forwardedByStr.equals("null")) {
|
|
||||||
forwardedBy = UUID.fromString(forwardedByStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID forwardedFrom = null;
|
|
||||||
String forwardedFromStr = msgJson.optString("forwarded_from", null);
|
|
||||||
if (forwardedFromStr != null && !forwardedFromStr.equals("null")) {
|
|
||||||
forwardedFrom = UUID.fromString(forwardedFromStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
Message msg = new Message(
|
|
||||||
UUID.fromString(msgJson.getString("message_id")),
|
|
||||||
UUID.fromString(msgJson.getString("sender_id")),
|
|
||||||
msgJson.getString("receiver_type"),
|
|
||||||
UUID.fromString(msgJson.getString("receiver_id")),
|
|
||||||
msgJson.getString("content"),
|
|
||||||
msgJson.getString("message_type"),
|
|
||||||
LocalDateTime.parse(msgJson.getString("send_at").replace(" ", "T")),
|
|
||||||
msgJson.getString("status"),
|
|
||||||
replyToId,
|
|
||||||
msgJson.getBoolean("is_edited"),
|
|
||||||
originalMessageId,
|
|
||||||
forwardedBy,
|
|
||||||
forwardedFrom,
|
|
||||||
msgJson.getBoolean("is_deleted_globally"),
|
|
||||||
LocalDateTime.parse(msgJson.getString("edited_at").replace(" ", "T"))
|
|
||||||
);
|
|
||||||
|
|
||||||
messages.add(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Step 6: Add to active chats if not already present
|
|
||||||
boolean alreadyExists = Session.activeChats.stream()
|
|
||||||
.anyMatch(entry -> entry.getId().equals(chatId));
|
|
||||||
if (!alreadyExists) {
|
|
||||||
ChatEntry savedEntry = new ChatEntry(
|
|
||||||
chatId,
|
|
||||||
"Saved-Messages",
|
|
||||||
"Saved Messages",
|
|
||||||
"📌", // or use a URL string if you have an icon for saved messages
|
|
||||||
"private",
|
|
||||||
messages.isEmpty() ? null : messages.get(messages.size() - 1).getSend_at()
|
|
||||||
);
|
|
||||||
savedEntry.setSavedMessages(true);
|
|
||||||
Session.activeChats.add(savedEntry);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Step 7: Show chat
|
|
||||||
showSavedMessages(chatId, messages);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.out.println("An error occurred while retrieving Saved Messages.");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showSavedMessages(UUID chatId, List<Message> messages) {
|
|
||||||
// Scanner scanner = new Scanner(System.in);
|
// Scanner scanner = new Scanner(System.in);
|
||||||
//
|
//
|
||||||
// System.out.println("==== Saved Messages ====");
|
// System.out.println("==== Saved Messages ====");
|
||||||
@@ -453,7 +453,7 @@ public class SidebarHandler {
|
|||||||
// System.out.println("[" + justSent.getSend_at() + "] " + justSent.getContent());
|
// System.out.println("[" + justSent.getSend_at() + "] " + justSent.getContent());
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
// public void openSavedMessages() {
|
// public void openSavedMessages() {
|
||||||
|
|||||||
@@ -2555,16 +2555,16 @@ public class ClientHandler implements Runnable {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "get_saved_messages": {
|
// case "get_saved_messages": {
|
||||||
UUID user_Id = UUID.fromString(requestJson.getString("user_id"));
|
// UUID user_Id = UUID.fromString(requestJson.getString("user_id"));
|
||||||
response = SidebarService.handleGetSavedMessages(user_Id);
|
// response = SidebarService.handleGetSavedMessages(user_Id);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
case "send_saved_messages": {
|
// case "send_saved_messages": {
|
||||||
response = SidebarService.handleSendMessage(requestJson);
|
// response = SidebarService.handleSendMessage(requestJson);
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
|
||||||
case "search_contacts": {
|
case "search_contacts": {
|
||||||
String user_id = requestJson.getString("user_id");
|
String user_id = requestJson.getString("user_id");
|
||||||
|
|||||||
@@ -211,86 +211,81 @@ public class SidebarService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResponseModel handleGetSavedMessages(UUID userId) {
|
// public static ResponseModel handleGetSavedMessages(UUID userId) {
|
||||||
try {
|
// try {
|
||||||
|
//
|
||||||
UUID chatId = PrivateChatDatabase.getOrCreateSavedMessagesChat(userId);
|
// UUID chatId = PrivateChatDatabase.getOrCreateSavedMessagesChat(userId);
|
||||||
if (chatId == null) {
|
// if (chatId == null) {
|
||||||
return new ResponseModel("error", "Failed to create or find saved messages chat.");
|
// return new ResponseModel("error", "Failed to create or find saved messages chat.");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
List<Message> messages = MessageDatabase.privateChatHistory(chatId, userId);
|
// List<Message> messages = MessageDatabase.privateChatHistory(chatId, userId);
|
||||||
|
//
|
||||||
JSONArray messageArray = new JSONArray();
|
// JSONArray messageArray = new JSONArray();
|
||||||
if (!messages.isEmpty()) {
|
// if (!messages.isEmpty()) {
|
||||||
for (Message msg : messages) {
|
// for (Message msg : messages) {
|
||||||
JSONObject msgJson = new JSONObject();
|
// JSONObject msgJson = new JSONObject();
|
||||||
msgJson.put("message_id", msg.getMessage_id().toString());
|
// msgJson.put("message_id", msg.getMessage_id().toString());
|
||||||
msgJson.put("sender_id", msg.getSender_id().toString());
|
// msgJson.put("sender_id", msg.getSender_id().toString());
|
||||||
msgJson.put("receiver_type", msg.getReceiver_type());
|
// msgJson.put("receiver_type", msg.getReceiver_type());
|
||||||
msgJson.put("receiver_id", msg.getReceiver_id().toString());
|
// msgJson.put("receiver_id", msg.getReceiver_id().toString());
|
||||||
msgJson.put("content", msg.getContent());
|
// msgJson.put("content", msg.getContent());
|
||||||
msgJson.put("message_type", msg.getMessage_type());
|
// msgJson.put("message_type", msg.getMessage_type());
|
||||||
msgJson.put("send_at", msg.getSend_at().toString()); // LocalDateTime
|
// msgJson.put("send_at", msg.getSend_at().toString()); // LocalDateTime
|
||||||
msgJson.put("status", msg.getStatus());
|
// msgJson.put("status", msg.getStatus());
|
||||||
msgJson.put("reply_to_id", msg.getReply_to_id() != null ? msg.getReply_to_id().toString() : JSONObject.NULL);
|
// msgJson.put("reply_to_id", msg.getReply_to_id() != null ? msg.getReply_to_id().toString() : JSONObject.NULL);
|
||||||
msgJson.put("is_edited", msg.isIs_edited());
|
// msgJson.put("is_edited", msg.isIs_edited());
|
||||||
msgJson.put("original_message_id", msg.getOriginal_message_id() != null ? msg.getOriginal_message_id().toString() : JSONObject.NULL);
|
// msgJson.put("original_message_id", msg.getOriginal_message_id() != null ? msg.getOriginal_message_id().toString() : JSONObject.NULL);
|
||||||
msgJson.put("forwarded_by", msg.getForwarded_by() != null ? msg.getForwarded_by().toString() : JSONObject.NULL);
|
// msgJson.put("forwarded_by", msg.getForwarded_by() != null ? msg.getForwarded_by().toString() : JSONObject.NULL);
|
||||||
msgJson.put("forwarded_from", msg.getForwarded_from() != null ? msg.getForwarded_from().toString() : JSONObject.NULL);
|
// msgJson.put("forwarded_from", msg.getForwarded_from() != null ? msg.getForwarded_from().toString() : JSONObject.NULL);
|
||||||
|
//
|
||||||
messageArray.put(msgJson);
|
// messageArray.put(msgJson);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
JSONObject data = new JSONObject();
|
// JSONObject data = new JSONObject();
|
||||||
data.put("chat_id", chatId.toString());
|
// data.put("chat_id", chatId.toString());
|
||||||
data.put("messages", messageArray);
|
// data.put("messages", messageArray);
|
||||||
|
//
|
||||||
return new ResponseModel("success", "Saved messages retrieved successfully", data);
|
// return new ResponseModel("success", "Saved messages retrieved successfully", data);
|
||||||
|
//
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
return new ResponseModel("error", "Unexpected server error.");
|
// return new ResponseModel("error", "Unexpected server error.");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Save messages to DB
|
// Save messages to DB
|
||||||
public static ResponseModel handleSendMessage(JSONObject requestJson) {
|
// public static ResponseModel handleSendMessage(JSONObject requestJson) {
|
||||||
try {
|
// try {
|
||||||
Message message = new Message(
|
// Message message = new Message(
|
||||||
UUID.fromString(requestJson.getString("message_id")),
|
// UUID.fromString(requestJson.getString("message_id")),
|
||||||
UUID.fromString(requestJson.getString("sender_id")),
|
// UUID.fromString(requestJson.getString("sender_id")),
|
||||||
requestJson.getString("receiver_type"),
|
// requestJson.getString("receiver_type"),
|
||||||
UUID.fromString(requestJson.getString("receiver_id")),
|
// UUID.fromString(requestJson.getString("receiver_id")),
|
||||||
requestJson.optString("content", null),
|
// requestJson.optString("content", null),
|
||||||
requestJson.optString("message_type", "TEXT"),
|
// requestJson.optString("message_type", "TEXT"),
|
||||||
LocalDateTime.now(), // send_at
|
// LocalDateTime.now(), // send_at
|
||||||
requestJson.optString("status", "SEND"),
|
// requestJson.optString("status", "SEND"),
|
||||||
requestJson.isNull("reply_to_id") ? null : UUID.fromString(requestJson.getString("reply_to_id")),
|
// requestJson.isNull("reply_to_id") ? null : UUID.fromString(requestJson.getString("reply_to_id")),
|
||||||
requestJson.optBoolean("is_edited", false),
|
// requestJson.optBoolean("is_edited", false),
|
||||||
requestJson.isNull("original_message_id") ? null : UUID.fromString(requestJson.getString("original_message_id")),
|
// requestJson.isNull("original_message_id") ? null : UUID.fromString(requestJson.getString("original_message_id")),
|
||||||
requestJson.isNull("forwarded_by") ? null : UUID.fromString(requestJson.getString("forwarded_by")),
|
// requestJson.isNull("forwarded_by") ? null : UUID.fromString(requestJson.getString("forwarded_by")),
|
||||||
requestJson.isNull("forwarded_from") ? null : UUID.fromString(requestJson.getString("forwarded_from")),
|
// requestJson.isNull("forwarded_from") ? null : UUID.fromString(requestJson.getString("forwarded_from")),
|
||||||
requestJson.optBoolean("is_deleted_globally", false),
|
// requestJson.optBoolean("is_deleted_globally", false),
|
||||||
requestJson.isNull("edited_at") ? null :
|
// requestJson.isNull("edited_at") ? null :
|
||||||
LocalDateTime.ofInstant(
|
// LocalDateTime.ofInstant(
|
||||||
Instant.ofEpochMilli(requestJson.getLong("edited_at")),
|
// Instant.ofEpochMilli(requestJson.getLong("edited_at")),
|
||||||
ZoneId.systemDefault()
|
// ZoneId.systemDefault()
|
||||||
)
|
// )
|
||||||
);
|
// );
|
||||||
|
//
|
||||||
MessageDatabase.insertSavedMessage(message);
|
// MessageDatabase.insertSavedMessage(message);
|
||||||
return new ResponseModel("success", "Message saved successfully.");
|
// return new ResponseModel("success", "Message saved successfully.");
|
||||||
|
//
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
return new ResponseModel("error", "Unexpected server error.");
|
// return new ResponseModel("error", "Unexpected server error.");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Changes username
|
|
||||||
public static boolean updateUserName(String userId, String newUserName) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user