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;
}
public Pair<Long, List<SendMessageResult>> sendGroupMessage(
- String messageText, List<String> 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);
}
}
public Pair<Long, List<SendMessageResult>> sendMessage(
- String messageText, List<String> attachments, List<String> recipients
+ Message message, List<String> 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();
messageBuilder.withAttachments(attachmentPointers);
}
- return sendHelper.sendMessage(messageBuilder, getRecipientIds(recipients));
}
- public Pair<Long, SendMessageResult> sendSelfMessage(
- String messageText, List<String> attachments
- ) throws IOException, AttachmentInvalidException {
- final var messageBuilder = createMessageBuilder().withBody(messageText);
- if (attachments != null) {
- messageBuilder.withAttachments(AttachmentUtils.getSignalServiceAttachments(attachments));
- }
+ public Pair<Long, SendMessageResult> sendSelfMessage(final Message message) throws IOException, AttachmentInvalidException {
+ final var messageBuilder = createMessageBuilder();
+ applyMessage(messageBuilder, message);
return sendHelper.sendSelfMessage(messageBuilder);
}
import org.asamk.signal.manager.AttachmentInvalidException;
import org.asamk.signal.manager.Manager;
import org.asamk.signal.manager.NotMasterDeviceException;
+import org.asamk.signal.manager.api.Message;
import org.asamk.signal.manager.groups.GroupId;
import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
import org.asamk.signal.manager.groups.GroupNotFoundException;
@Override
public long sendMessage(final String message, final List<String> attachments, final List<String> recipients) {
try {
- final var results = m.sendMessage(message, attachments, recipients);
+ final var results = m.sendMessage(new Message(message, attachments), recipients);
checkSendMessageResults(results.first(), results.second());
return results.first();
} catch (InvalidNumberException e) {
final String message, final List<String> attachments
) throws Error.AttachmentInvalid, Error.Failure, Error.UntrustedIdentity {
try {
- final var results = m.sendSelfMessage(message, attachments);
+ final var results = m.sendSelfMessage(new Message(message, attachments));
checkSendMessageResult(results.first(), results.second());
return results.first();
} catch (AttachmentInvalidException e) {
@Override
public long sendGroupMessage(final String message, final List<String> attachments, final byte[] groupId) {
try {
- var results = m.sendGroupMessage(message, attachments, GroupId.unknownVersion(groupId));
+ var results = m.sendGroupMessage(new Message(message, attachments), GroupId.unknownVersion(groupId));
checkSendMessageResults(results.first(), results.second());
return results.first();
} catch (IOException e) {