From a7a4972013f97c57baf5fad1263faccdc3c6b6a6 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 24 Mar 2022 11:05:48 -0300 Subject: [PATCH] Check if there is an attachment available before trying to send it to a story. --- .../securesms/jobs/PushDistributionListSendJob.java | 4 +++- .../org/thoughtcrime/securesms/jobs/PushGroupSendJob.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) 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 a33cbda041..3ee0332144 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDistributionListSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDistributionListSendJob.java @@ -177,8 +177,10 @@ public final class PushDistributionListSendJob extends PushSendJob { final SignalServiceStoryMessage storyMessage; if (message.getStoryType().isTextStory()) { storyMessage = SignalServiceStoryMessage.forTextAttachment(Recipient.self().getProfileKey(), null, StorySendUtil.deserializeBodyToStoryTextAttachment(message, this::getPreviewsFor), message.getStoryType().isStoryWithReplies()); - } else { + } else if (!attachmentPointers.isEmpty()) { storyMessage = SignalServiceStoryMessage.forFileAttachment(Recipient.self().getProfileKey(), null, attachmentPointers.get(0), message.getStoryType().isStoryWithReplies()); + } else { + throw new UndeliverableMessageException("No attachment on non-text story."); } return GroupSendUtil.sendStoryMessage(context, message.getRecipient().requireDistributionListId(), destinations, isRecipientUpdate, new MessageId(messageId, true), message.getSentTimeMillis(), storyMessage); } catch (ServerRejectedException e) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java index efad1fecfe..7491489d61 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java @@ -253,8 +253,10 @@ public final class PushGroupSendJob extends PushSendJob { final SignalServiceStoryMessage storyMessage; if (message.getStoryType().isTextStory()) { storyMessage = SignalServiceStoryMessage.forTextAttachment(Recipient.self().getProfileKey(), groupContext, StorySendUtil.deserializeBodyToStoryTextAttachment(message, this::getPreviewsFor), message.getStoryType().isStoryWithReplies()); - } else { + } else if (!attachmentPointers.isEmpty()) { storyMessage = SignalServiceStoryMessage.forFileAttachment(Recipient.self().getProfileKey(), groupContext, attachmentPointers.get(0), message.getStoryType().isStoryWithReplies()); + } else { + throw new UndeliverableMessageException("No attachment on non-text story."); } return GroupSendUtil.sendGroupStoryMessage(context, groupId.requireV2(), destinations, isRecipientUpdate, new MessageId(messageId, true), message.getSentTimeMillis(), storyMessage);