X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/7b0744ec758b1ccbe3c9ce5a1e6dea5d7e2313da..0b33cb55b81b9bb4ce4b67cdf24f079b20f3bd05:/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index a3f18393..3d0e2263 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -46,6 +46,7 @@ import org.asamk.signal.manager.api.UnregisteredRecipientException; import org.asamk.signal.manager.api.UpdateGroup; import org.asamk.signal.manager.api.UpdateProfile; import org.asamk.signal.manager.api.UserStatus; +import org.asamk.signal.manager.api.UsernameLinkUrl; import org.freedesktop.dbus.DBusMap; import org.freedesktop.dbus.DBusPath; import org.freedesktop.dbus.connections.impl.DBusConnection; @@ -120,7 +121,9 @@ public class DbusManagerImpl implements Manager { } @Override - public void updateAccountAttributes(final String deviceName) throws IOException { + public void updateAccountAttributes( + final String deviceName, final Boolean unrestrictedUnidentifiedSender + ) throws IOException { if (deviceName != null) { final var devicePath = signal.getThisDevice(); getRemoteObject(devicePath, Signal.Device.class).Set("org.asamk.Signal.Device", "Name", deviceName); @@ -164,7 +167,17 @@ public class DbusManagerImpl implements Manager { } @Override - public String setUsername(final String username) throws IOException, InvalidUsernameException { + public String getUsername() { + throw new UnsupportedOperationException(); + } + + @Override + public UsernameLinkUrl getUsernameLink() { + throw new UnsupportedOperationException(); + } + + @Override + public void setUsername(final String username) throws IOException, InvalidUsernameException { throw new UnsupportedOperationException(); } @@ -386,7 +399,7 @@ public class DbusManagerImpl implements Manager { @Override public SendMessageResults sendMessage( - final Message message, final Set recipients + final Message message, final Set recipients, final boolean notifySelf ) throws IOException, AttachmentInvalidException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException { return handleMessage(recipients, numbers -> signal.sendMessage(message.messageText(), message.attachments(), numbers), @@ -657,7 +670,18 @@ public class DbusManagerImpl implements Manager { } return Recipient.newBuilder() .withAddress(new RecipientAddress(null, n)) - .withContact(new Contact(contactName, null, null, 0, contactBlocked, false, false, false)) + .withContact(new Contact(contactName, + null, + null, + null, + 0, + 0, + false, + contactBlocked, + false, + false, + false, + null)) .build(); }).filter(Objects::nonNull).toList(); } @@ -836,7 +860,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), Optional.empty(), List.of(), - List.of(), + getMentions(extras), List.of(), List.of())), Optional.empty(), @@ -880,7 +904,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), Optional.empty(), List.of(), - List.of(), + getMentions(extras), List.of(), List.of()))), Optional.empty(), @@ -957,7 +981,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), Optional.empty(), List.of(), - List.of(), + getMentions(extras), List.of(), List.of())), Optional.empty(), @@ -1026,6 +1050,19 @@ public class DbusManagerImpl implements Manager { }).toList(); } + private List getMentions(final Map> extras) { + if (!extras.containsKey("mentions")) { + return List.of(); + } + + final List>> mentions = getValue(extras, "mentions"); + return mentions.stream() + .map(a -> new MessageEnvelope.Data.Mention(new RecipientAddress(null, getValue(a, "recipient")), + getValue(a, "start"), + getValue(a, "length"))) + .toList(); + } + @Override public InputStream retrieveAttachment(final String id) throws IOException { throw new UnsupportedOperationException();