Saved messages chat updated.

This commit is contained in:
Asal Lotfi
2025-08-08 13:33:03 +03:30
parent 8c9e0becd6
commit b5340160bf
6 changed files with 274 additions and 53 deletions
@@ -179,6 +179,10 @@ public class ClientHandler implements Runnable {
);
entry.setOtherUserId(otherId);
if (currentUser.getInternal_uuid() == otherId) {
entry.setSavedMessages(true);
}
if (archivedChatIds.contains(chat.getChat_id())) {
archivedChatList.add(entry);
chatList.add(entry);
@@ -691,6 +695,8 @@ public class ClientHandler implements Runnable {
LocalDateTime lastMessageTime = MessageDatabase.getLastMessageTime(chat.getChat_id(), "private");
boolean isSavedMessages = chat.getUser1_id().equals(currentUser.getInternal_uuid())
&& chat.getUser2_id().equals(currentUser.getInternal_uuid());
ChatEntry entry = new ChatEntry(
chat.getChat_id(),
@@ -704,6 +710,11 @@ public class ClientHandler implements Runnable {
);
entry.setOtherUserId(otherId);
// Mark it as saved messages if it's the special self-chat
if (isSavedMessages) {
entry.setSavedMessages(true);
}
if (archivedChatIds.contains(chat.getChat_id())) {
archivedChatList.add(entry);
chatList.add(entry);
@@ -2106,9 +2117,9 @@ public class ClientHandler implements Runnable {
break;
}
case "send_message": {
response = SidebarService.handleSendMessage(requestJson);
break;
case "send_saved_messages": {
response = SidebarService.handleSendMessage(requestJson);
break;
}
default:
@@ -9,7 +9,9 @@ import org.to.telegramfinalproject.Models.Message;
import org.to.telegramfinalproject.Models.ResponseModel;
import org.to.telegramfinalproject.Models.User;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@@ -165,7 +167,7 @@ public class SidebarService {
return new ResponseModel("error", "Failed to create or find saved messages chat.");
}
List<Message> messages = MessageDatabase.privateChatHistory(userId, userId);
List<Message> messages = MessageDatabase.privateChatHistory(chatId);
JSONArray messageArray = new JSONArray();
if (!messages.isEmpty()) {
@@ -177,7 +179,6 @@ public class SidebarService {
msgJson.put("receiver_id", msg.getReceiver_id().toString());
msgJson.put("content", msg.getContent());
msgJson.put("message_type", msg.getMessage_type());
msgJson.put("file_url", msg.getFile_url() != null ? msg.getFile_url() : JSONObject.NULL);
msgJson.put("send_at", msg.getSend_at().toString()); // LocalDateTime
msgJson.put("status", msg.getStatus());
msgJson.put("reply_to_id", msg.getReply_to_id() != null ? msg.getReply_to_id().toString() : JSONObject.NULL);
@@ -212,17 +213,22 @@ public class SidebarService {
UUID.fromString(requestJson.getString("receiver_id")),
requestJson.optString("content", null),
requestJson.optString("message_type", "TEXT"),
requestJson.isNull("file_url") ? null : requestJson.getString("file_url"),
LocalDateTime.now(), // send_at
requestJson.optString("status", "SEND"),
requestJson.isNull("reply_to_id") ? null : UUID.fromString(requestJson.getString("reply_to_id")),
requestJson.optBoolean("is_edited", false),
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_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.isNull("edited_at") ? null :
LocalDateTime.ofInstant(
Instant.ofEpochMilli(requestJson.getLong("edited_at")),
ZoneId.systemDefault()
)
);
MessageDatabase.save(message);
MessageDatabase.insertSavedMessage(message);
return new ResponseModel("success", "Message saved successfully.");
} catch (Exception e) {