Fix issue where stories with links would fail to send.

This commit is contained in:
Alex Hart
2022-03-16 13:44:22 -03:00
committed by Cody Henthorne
parent 19d3bbc70a
commit 7f4a12c179
3 changed files with 25 additions and 30 deletions

View File

@@ -231,7 +231,6 @@ public class MessageSender {
attachmentDatabase.updateMessageId(preUploadAttachmentIds, primaryMessageId);
messageIds.add(primaryMessageId);
uploadLinkPreviews(primaryMessage, primaryMessageId, jobManager, preUploadJobIds, messageDependsOnIds);
if (messages.size() > 0) {
List<OutgoingSecureMediaMessage> secondaryMessages = messages.subList(1, messages.size());
@@ -260,7 +259,6 @@ public class MessageSender {
attachmentDatabase.updateMessageId(attachmentIds, messageId);
messageIds.add(messageId);
uploadLinkPreviews(secondaryMessage, messageId, jobManager, preUploadJobIds, messageDependsOnIds);
}
for (int i = 0; i < attachmentCopies.size(); i++) {
@@ -295,31 +293,6 @@ public class MessageSender {
}
}
@WorkerThread
private static void uploadLinkPreviews(@NonNull OutgoingMediaMessage mediaMessage,
long outgoingMessageId,
@NonNull JobManager jobManager,
@NonNull List<String> preUploadJobIds,
@NonNull List<String> messageDependsOnIds)
{
if (!mediaMessage.getLinkPreviews().isEmpty()) {
try {
MmsMessageRecord freshRecord = (MmsMessageRecord) SignalDatabase.mms().getMessageRecord(outgoingMessageId);
freshRecord.getLinkPreviews()
.stream()
.map(LinkPreview::getAttachmentId)
.filter(Objects::nonNull)
.forEach(previewId -> {
Job job = new AttachmentUploadJob(previewId);
jobManager.add(job, preUploadJobIds);
messageDependsOnIds.add(job.getId());
});
} catch (NoSuchMessageException e) {
throw new AssertionError("Cannot fetch record we just inserted");
}
}
}
/**
* @return A result if the attachment was enqueued, or null if it failed to enqueue or shouldn't
* be enqueued (like in the case of a local self-send).