From ec7807e662e25cf4bbd8e82b94a2823e922cf1af Mon Sep 17 00:00:00 2001 From: adbenitez Date: Fri, 7 Feb 2025 12:26:16 +0100 Subject: [PATCH] use save API for msgs forwarded to "saved messages" --- .../util/SendRelayedMessageUtil.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/thoughtcrime/securesms/util/SendRelayedMessageUtil.java b/src/main/java/org/thoughtcrime/securesms/util/SendRelayedMessageUtil.java index 656f9b001..4a5f81fca 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/SendRelayedMessageUtil.java +++ b/src/main/java/org/thoughtcrime/securesms/util/SendRelayedMessageUtil.java @@ -38,9 +38,24 @@ public class SendRelayedMessageUtil { if (isForwarding(activity)) { int[] forwardedMessageIDs = getForwardedMessageIDs(activity); resetRelayingMessageContent(activity); + if (forwardedMessageIDs == null) return; + Util.runOnAnyBackgroundThread(() -> { - for (long chatId : chatIds) { - handleForwarding(activity, (int) chatId, forwardedMessageIDs); + DcContext dcContext = DcHelper.getContext(activity); + for (long longChatId : chatIds) { + int chatId = (int) longChatId; + if (dcContext.getChat(chatId).isSelfTalk()) { + for (int msgId : forwardedMessageIDs) { + DcMsg msg = dcContext.getMsg(msgId); + if (msg.canSave() && msg.getSavedMsgId() == 0 && msg.getChatId() != chatId) { + dcContext.saveMsgs(new int[]{msgId}); + } else { + handleForwarding(activity, chatId, new int[]{msgId}); + } + } + } else { + handleForwarding(activity, chatId, forwardedMessageIDs); + } } });