import org.asamk.signal.manager.api.InactiveGroupLinkException;
import org.asamk.signal.manager.api.InvalidDeviceLinkException;
import org.asamk.signal.manager.api.InvalidStickerException;
+import org.asamk.signal.manager.api.InvalidUsernameException;
import org.asamk.signal.manager.api.Message;
import org.asamk.signal.manager.api.MessageEnvelope;
import org.asamk.signal.manager.api.NotPrimaryDeviceException;
import org.asamk.signal.manager.util.KeyUtils;
import org.asamk.signal.manager.util.MimeUtils;
import org.asamk.signal.manager.util.StickerUtils;
+import org.signal.libsignal.usernames.BaseUsernameException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.whispersystems.signalservice.api.SignalSessionLock;
context.getSyncHelper().sendSyncFetchProfileMessage();
}
+ void refreshCurrentUsername() throws IOException, BaseUsernameException {
+ context.getAccountHelper().refreshCurrentUsername();
+ }
+
+ @Override
+ public String setUsername(final String username) throws IOException, InvalidUsernameException {
+ try {
+ return context.getAccountHelper().reserveUsername(username);
+ } catch (BaseUsernameException e) {
+ throw new InvalidUsernameException(e.getMessage() + " (" + e.getClass().getSimpleName() + ")", e);
+ }
+ }
+
+ @Override
+ public void deleteUsername() throws IOException {
+ context.getAccountHelper().deleteUsername();
+ }
+
@Override
public void unregister() throws IOException {
context.getAccountHelper().unregister();
@Override
public Pair<GroupId, SendGroupMessageResults> createGroup(
- String name, Set<RecipientIdentifier.Single> members, File avatarFile
+ String name, Set<RecipientIdentifier.Single> members, String avatarFile
) throws IOException, AttachmentInvalidException, UnregisteredRecipientException {
return context.getGroupHelper()
.createGroup(name,
final var textAttachment = AttachmentUtils.createAttachmentStream(new StreamDetails(new ByteArrayInputStream(
messageBytes), MimeUtils.LONG_TEXT, messageBytes.length), Optional.empty());
messageBuilder.withBody(message.messageText().substring(0, 2000));
- messageBuilder.withAttachment(textAttachment);
+ messageBuilder.withAttachment(context.getAttachmentHelper().uploadAttachment(textAttachment));
} else {
messageBuilder.withBody(message.messageText());
}
quote.message(),
List.of(),
resolveMentions(quote.mentions()),
- SignalServiceDataMessage.Quote.Type.NORMAL));
+ SignalServiceDataMessage.Quote.Type.NORMAL,
+ List.of()));
}
if (message.sticker().isPresent()) {
final var sticker = message.sticker().get();
@Override
public void deleteRecipient(final RecipientIdentifier.Single recipient) {
- account.removeRecipient(account.getRecipientResolver().resolveRecipient(recipient.getIdentifier()));
+ final var recipientIdOptional = context.getRecipientHelper().resolveRecipientOptional(recipient);
+ if (recipientIdOptional.isPresent()) {
+ account.removeRecipient(recipientIdOptional.get());
+ }
}
@Override
public void deleteContact(final RecipientIdentifier.Single recipient) {
- account.getContactStore()
- .deleteContact(account.getRecipientResolver().resolveRecipient(recipient.getIdentifier()));
+ final var recipientIdOptional = context.getRecipientHelper().resolveRecipientOptional(recipient);
+ if (recipientIdOptional.isPresent()) {
+ account.getContactStore().deleteContact(recipientIdOptional.get());
+ }
}
@Override