]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
Convert RecipientAddress to record
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalImpl.java
index 7f0c3b31cbd9ac6e269c3e5ddd958a936ef7439e..e59c7f86ade88784d8462b7ddf5edaceef02e7bd 100644 (file)
@@ -2,7 +2,6 @@ package org.asamk.signal.dbus;
 
 import org.asamk.Signal;
 import org.asamk.signal.BaseConfig;
-import org.asamk.signal.DbusReceiveMessageHandler;
 import org.asamk.signal.manager.AttachmentInvalidException;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.NotMasterDeviceException;
@@ -112,7 +111,7 @@ public class DbusSignalImpl implements Signal {
     @Override
     public void subscribeReceive() {
         if (dbusMessageHandler == null) {
-            dbusMessageHandler = new DbusReceiveMessageHandler(m, connection, objectPath);
+            dbusMessageHandler = new DbusReceiveMessageHandler(connection, objectPath);
             m.addReceiveHandler(dbusMessageHandler);
         }
         subscriberCount++;
@@ -200,7 +199,7 @@ public class DbusSignalImpl implements Signal {
     @Override
     public long sendMessage(final String message, final List<String> attachments, final List<String> recipients) {
         try {
-            final var results = m.sendMessage(new Message(message, attachments, List.of()),
+            final var results = m.sendMessage(new Message(message, attachments, List.of(), Optional.empty()),
                     getSingleRecipientIdentifiers(recipients, m.getSelfNumber()).stream()
                             .map(RecipientIdentifier.class::cast)
                             .collect(Collectors.toSet()));
@@ -365,7 +364,7 @@ public class DbusSignalImpl implements Signal {
             final String message, final List<String> attachments
     ) throws Error.AttachmentInvalid, Error.Failure, Error.UntrustedIdentity {
         try {
-            final var results = m.sendMessage(new Message(message, attachments, List.of()),
+            final var results = m.sendMessage(new Message(message, attachments, List.of(), Optional.empty()),
                     Set.of(RecipientIdentifier.NoteToSelf.INSTANCE));
             checkSendMessageResults(results.timestamp(), results.results());
             return results.timestamp();
@@ -388,10 +387,28 @@ public class DbusSignalImpl implements Signal {
         }
     }
 
+    @Override
+    public void deleteRecipient(final String recipient) throws Error.Failure {
+        try {
+            m.deleteRecipient(getSingleRecipientIdentifier(recipient, m.getSelfNumber()));
+        } catch (IOException e) {
+            throw new Error.Failure("Recipient not found");
+        }
+    }
+
+    @Override
+    public void deleteContact(final String recipient) throws Error.Failure {
+        try {
+            m.deleteContact(getSingleRecipientIdentifier(recipient, m.getSelfNumber()));
+        } catch (IOException e) {
+            throw new Error.Failure("Contact not found");
+        }
+    }
+
     @Override
     public long sendGroupMessage(final String message, final List<String> attachments, final byte[] groupId) {
         try {
-            var results = m.sendMessage(new Message(message, attachments, List.of()),
+            var results = m.sendMessage(new Message(message, attachments, List.of(), Optional.empty()),
                     Set.of(new RecipientIdentifier.Group(getGroupId(groupId))));
             checkSendMessageResults(results.timestamp(), results.results());
             return results.timestamp();
@@ -662,7 +679,7 @@ public class DbusSignalImpl implements Signal {
     public List<String> listNumbers() {
         return Stream.concat(m.getIdentities().stream().map(Identity::recipient),
                         m.getContacts().stream().map(Pair::first))
-                .map(a -> a.getNumber().orElse(null))
+                .map(a -> a.number().orElse(null))
                 .filter(Objects::nonNull)
                 .distinct()
                 .collect(Collectors.toList());
@@ -681,7 +698,7 @@ public class DbusSignalImpl implements Signal {
         // Try profiles if no contact name was found
         for (var identity : m.getIdentities()) {
             final var address = identity.recipient();
-            var number = address.getNumber().orElse(null);
+            var number = address.number().orElse(null);
             if (number != null) {
                 Profile profile = null;
                 try {