]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
Add support for sending view once messages
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalImpl.java
index fae0c0a551446a4f7de0d1e362d40fd76086800e..725df8b1a639be8b25a6853018ee52586bacadd3 100644 (file)
@@ -5,6 +5,7 @@ import org.asamk.signal.BaseConfig;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.CaptchaRejectedException;
+import org.asamk.signal.manager.api.DeviceLimitExceededException;
 import org.asamk.signal.manager.api.DeviceLinkUrl;
 import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.GroupInviteLinkUrl;
@@ -80,7 +81,10 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     private static final Logger logger = LoggerFactory.getLogger(DbusSignalImpl.class);
 
     public DbusSignalImpl(
-            final Manager m, DBusConnection connection, final String objectPath, final boolean noReceiveOnStart
+            final Manager m,
+            DBusConnection connection,
+            final String objectPath,
+            final boolean noReceiveOnStart
     ) {
         this.m = m;
         this.connection = connection;
@@ -189,7 +193,7 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
         try {
             var deviceLinkUrl = DeviceLinkUrl.parseDeviceLinkUri(new URI(uri));
             m.addDeviceLink(deviceLinkUrl);
-        } catch (IOException | InvalidDeviceLinkException e) {
+        } catch (IOException | InvalidDeviceLinkException | DeviceLimitExceededException e) {
             throw new Error.Failure(e.getClass().getSimpleName() + " Add device link failed. " + e.getMessage());
         } catch (NotPrimaryDeviceException e) {
             throw new Error.Failure("This command doesn't work on linked devices.");
@@ -232,6 +236,7 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
         try {
             final var message = new Message(messageText,
                     attachments,
+                    false,
                     List.of(),
                     Optional.empty(),
                     Optional.empty(),
@@ -257,16 +262,12 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     }
 
     @Override
-    public long sendRemoteDeleteMessage(
-            final long targetSentTimestamp, final String recipient
-    ) {
+    public long sendRemoteDeleteMessage(final long targetSentTimestamp, final String recipient) {
         return sendRemoteDeleteMessage(targetSentTimestamp, List.of(recipient));
     }
 
     @Override
-    public long sendRemoteDeleteMessage(
-            final long targetSentTimestamp, final List<String> recipients
-    ) {
+    public long sendRemoteDeleteMessage(final long targetSentTimestamp, final List<String> recipients) {
         try {
             final var results = m.sendRemoteDeleteMessage(targetSentTimestamp,
                     getSingleRecipientIdentifiers(recipients, m.getSelfNumber()).stream()
@@ -322,7 +323,9 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public long sendPaymentNotification(
-            final byte[] receipt, final String note, final String recipient
+            final byte[] receipt,
+            final String note,
+            final String recipient
     ) throws Error.Failure {
         try {
             final var results = m.sendPaymentNotificationMessage(receipt,
@@ -337,7 +340,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public void sendTyping(
-            final String recipient, final boolean stop
+            final String recipient,
+            final boolean stop
     ) throws Error.Failure, Error.GroupNotFound, Error.UntrustedIdentity {
         try {
             final var results = m.sendTypingMessage(stop ? TypingAction.STOP : TypingAction.START,
@@ -354,7 +358,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public void sendReadReceipt(
-            final String recipient, final List<Long> messageIds
+            final String recipient,
+            final List<Long> messageIds
     ) throws Error.Failure, Error.UntrustedIdentity {
         final var results = m.sendReadReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()), messageIds);
         checkSendMessageResults(results);
@@ -362,7 +367,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public void sendViewedReceipt(
-            final String recipient, final List<Long> messageIds
+            final String recipient,
+            final List<Long> messageIds
     ) throws Error.Failure, Error.UntrustedIdentity {
         final var results = m.sendViewedReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()), messageIds);
         checkSendMessageResults(results);
@@ -388,11 +394,13 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public long sendNoteToSelfMessage(
-            final String messageText, final List<String> attachments
+            final String messageText,
+            final List<String> attachments
     ) throws Error.AttachmentInvalid, Error.Failure, Error.UntrustedIdentity {
         try {
             final var message = new Message(messageText,
                     attachments,
+                    false,
                     List.of(),
                     Optional.empty(),
                     Optional.empty(),
@@ -438,6 +446,7 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
         try {
             final var message = new Message(messageText,
                     attachments,
+                    false,
                     List.of(),
                     Optional.empty(),
                     Optional.empty(),
@@ -460,7 +469,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public void sendGroupTyping(
-            final byte[] groupId, final boolean stop
+            final byte[] groupId,
+            final boolean stop
     ) throws Error.Failure, Error.GroupNotFound, Error.UntrustedIdentity {
         try {
             final var results = m.sendTypingMessage(stop ? TypingAction.STOP : TypingAction.START,
@@ -474,9 +484,7 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     }
 
     @Override
-    public long sendGroupRemoteDeleteMessage(
-            final long targetSentTimestamp, final byte[] groupId
-    ) {
+    public long sendGroupRemoteDeleteMessage(final long targetSentTimestamp, final byte[] groupId) {
         try {
             final var results = m.sendRemoteDeleteMessage(targetSentTimestamp,
                     Set.of(getGroupRecipientIdentifier(groupId)));
@@ -526,7 +534,7 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     @Override
     public void setContactName(final String number, final String name) {
         try {
-            m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name, "");
+            m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name, "", null, null, null);
         } catch (NotPrimaryDeviceException e) {
             throw new Error.Failure("This command doesn't work on linked devices.");
         } catch (UnregisteredRecipientException e) {
@@ -620,7 +628,9 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
 
     @Override
     public byte[] createGroup(
-            final String name, final List<String> members, final String avatar
+            final String name,
+            final List<String> members,
+            final String avatar
     ) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber {
         return updateGroupInternal(new byte[0], name, members, avatar);
     }
@@ -899,7 +909,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     }
 
     private static void checkGroupSendMessageResults(
-            long timestamp, Collection<SendMessageResult> results
+            long timestamp,
+            Collection<SendMessageResult> results
     ) throws DBusExecutionException {
         if (results.size() == 1) {
             checkSendMessageResult(timestamp, results.stream().findFirst().get());
@@ -926,7 +937,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     }
 
     private static Set<RecipientIdentifier.Single> getSingleRecipientIdentifiers(
-            final Collection<String> recipientStrings, final String localNumber
+            final Collection<String> recipientStrings,
+            final String localNumber
     ) throws DBusExecutionException {
         final var identifiers = new HashSet<RecipientIdentifier.Single>();
         for (var recipientString : recipientStrings) {
@@ -936,7 +948,8 @@ public class DbusSignalImpl implements Signal, AutoCloseable {
     }
 
     private static RecipientIdentifier.Single getSingleRecipientIdentifier(
-            final String recipientString, final String localNumber
+            final String recipientString,
+            final String localNumber
     ) throws DBusExecutionException {
         try {
             return RecipientIdentifier.Single.fromString(recipientString, localNumber);