From 442dde5c40a838affdd394847b60a94b2b0f2a57 Mon Sep 17 00:00:00 2001 From: Alex Hart <alex@signal.org> Date: Tue, 19 Apr 2022 14:15:14 -0300 Subject: [PATCH] Keep caption when forwarding media with a body to a story. --- .../securesms/jobs/PushDistributionListSendJob.java | 6 ++++++ .../thoughtcrime/securesms/sharing/MultiShareSender.java | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDistributionListSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDistributionListSendJob.java index 4eca00129b..c8fb50b612 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDistributionListSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDistributionListSendJob.java @@ -9,6 +9,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.attachments.Attachment; +import org.thoughtcrime.securesms.attachments.DatabaseAttachment; import org.thoughtcrime.securesms.database.GroupReceiptDatabase; import org.thoughtcrime.securesms.database.MessageDatabase; import org.thoughtcrime.securesms.database.NoSuchMessageException; @@ -99,6 +100,11 @@ public final class PushDistributionListSendJob extends PushSendJob { throw new AssertionError("Only story messages are currently supported! MessageId: " + messageId); } + if (!message.getStoryType().isTextStory()) { + DatabaseAttachment storyAttachment = (DatabaseAttachment) message.getAttachments().get(0); + SignalDatabase.attachments().updateAttachmentCaption(storyAttachment.getAttachmentId(), message.getBody()); + } + Set<String> attachmentUploadIds = enqueueCompressingAndUploadAttachmentsChains(jobManager, message); jobManager.add(new PushDistributionListSendJob(messageId, destination, !attachmentUploadIds.isEmpty(), filterRecipientIds), attachmentUploadIds, attachmentUploadIds.isEmpty() ? null : destination.toQueueKey()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java index 24d4c6b677..078845d355 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java @@ -41,6 +41,7 @@ import org.thoughtcrime.securesms.sms.OutgoingEncryptedMessage; import org.thoughtcrime.securesms.sms.OutgoingTextMessage; import org.thoughtcrime.securesms.stories.Stories; import org.thoughtcrime.securesms.util.Base64; +import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.MessageUtil; import org.thoughtcrime.securesms.util.Util; @@ -220,7 +221,12 @@ public final class MultiShareSender { } else if (canSendAsTextStory) { outgoingMessages.add(generateTextStory(recipient, multiShareArgs, sentTimestamp, storyType)); } else { - for (final Slide slide : slideDeck.getSlides()) { + List<Slide> storySupportedSlides = slideDeck.getSlides() + .stream() + .filter(it -> MediaUtil.isStorySupportedType(it.getContentType())) + .collect(Collectors.toList()); + + for (final Slide slide : storySupportedSlides) { SlideDeck singletonDeck = new SlideDeck(); singletonDeck.addSlide(slide); -- GitLab