X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/23a006c31154fffe5a20c5daece08428fb2447d5..cd7172ee57049d292e7916ef58886d74bc82fcf7:/lib/src/main/java/org/asamk/signal/manager/Manager.java diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index 60ee4071..ae3f6aed 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -17,6 +17,7 @@ package org.asamk.signal.manager; import org.asamk.signal.manager.api.Device; +import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.TypingAction; import org.asamk.signal.manager.config.ServiceConfig; import org.asamk.signal.manager.config.ServiceEnvironment; @@ -697,12 +698,10 @@ public class Manager implements Closeable { } public Pair> sendGroupMessage( - String messageText, List attachments, GroupId groupId + Message message, GroupId groupId ) throws IOException, GroupNotFoundException, AttachmentInvalidException, NotAGroupMemberException { - final var messageBuilder = createMessageBuilder().withBody(messageText); - if (attachments != null) { - messageBuilder.withAttachments(AttachmentUtils.getSignalServiceAttachments(attachments)); - } + final var messageBuilder = createMessageBuilder(); + applyMessage(messageBuilder, message); return sendHelper.sendAsGroupMessage(messageBuilder, groupId); } @@ -1230,11 +1229,19 @@ public class Manager implements Closeable { } public Pair> sendMessage( - String messageText, List attachments, List recipients + Message message, List recipients ) throws IOException, AttachmentInvalidException, InvalidNumberException { - final var messageBuilder = createMessageBuilder().withBody(messageText); - if (attachments != null) { - var attachmentStreams = AttachmentUtils.getSignalServiceAttachments(attachments); + final var messageBuilder = createMessageBuilder(); + applyMessage(messageBuilder, message); + return sendHelper.sendMessage(messageBuilder, getRecipientIds(recipients)); + } + + private void applyMessage( + final SignalServiceDataMessage.Builder messageBuilder, final Message message + ) throws AttachmentInvalidException, IOException { + messageBuilder.withBody(message.getMessageText()); + if (message.getAttachments() != null) { + var attachmentStreams = AttachmentUtils.getSignalServiceAttachments(message.getAttachments()); // Upload attachments here, so we only upload once even for multiple recipients var messageSender = dependencies.getMessageSender(); @@ -1249,16 +1256,11 @@ public class Manager implements Closeable { messageBuilder.withAttachments(attachmentPointers); } - return sendHelper.sendMessage(messageBuilder, getRecipientIds(recipients)); } - public Pair sendSelfMessage( - String messageText, List attachments - ) throws IOException, AttachmentInvalidException { - final var messageBuilder = createMessageBuilder().withBody(messageText); - if (attachments != null) { - messageBuilder.withAttachments(AttachmentUtils.getSignalServiceAttachments(attachments)); - } + public Pair sendSelfMessage(final Message message) throws IOException, AttachmentInvalidException { + final var messageBuilder = createMessageBuilder(); + applyMessage(messageBuilder, message); return sendHelper.sendSelfMessage(messageBuilder); }