]> nmode's Git Repositories - signal-cli/commitdiff
Add dbus methods: deleteContact and deleteRecipient
authorjonas.hoefer <jonas.hoefer@iwelt.de>
Thu, 2 Dec 2021 10:02:28 +0000 (11:02 +0100)
committerAsamK <asamk@gmx.de>
Sun, 5 Dec 2021 10:01:25 +0000 (11:01 +0100)
Closes #814

man/signal-cli-dbus.5.adoc
src/main/java/org/asamk/Signal.java
src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java
src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java

index 5950b582814864db3896e9dca9f743d3a1ff72e1..dd7f803423e6d0124a1bf30936eb2dbbaf5e73e3 100755 (executable)
@@ -519,6 +519,16 @@ setContactName(number<s>,name<>) -> <>::
 
 Exceptions: InvalidNumber, Failure
 
 
 Exceptions: InvalidNumber, Failure
 
+deleteContact(number<s>) -> <>::
+* number : Phone number
+
+Exceptions: Failure
+
+deleteRecipient(number<s>) -> <>::
+* number : Phone number
+
+Exceptions: Failure
+
 setExpirationTimer(number<s>, expiration<i>) -> <>::
 * number     : Phone number of recipient
 * expiration : int32 for the number of seconds before messages to this recipient disappear. Set to 0 to disable expiration.
 setExpirationTimer(number<s>, expiration<i>) -> <>::
 * number     : Phone number of recipient
 * expiration : int32 for the number of seconds before messages to this recipient disappear. Set to 0 to disable expiration.
index 8ce717455b9171c2bb8df6c2b8b4d96e0a1dba1d..421e5de5cd70e9aeb3933c19fdfc88db898c9b0c 100644 (file)
@@ -76,6 +76,10 @@ public interface Signal extends DBusInterface {
 
     void sendEndSessionMessage(List<String> recipients) throws Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
 
 
     void sendEndSessionMessage(List<String> recipients) throws Error.Failure, Error.InvalidNumber, Error.UntrustedIdentity;
 
+    void deleteRecipient(final String recipient) throws Error.Failure;
+
+    void deleteContact(final String recipient) throws Error.Failure;
+
     long sendGroupMessage(
             String message, List<String> attachments, byte[] groupId
     ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId;
     long sendGroupMessage(
             String message, List<String> attachments, byte[] groupId
     ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId;
index e80f2d34de20a2f87215c51b797580512d9856a1..5421d4ad56ce0f69c7aeb880cd62da204353981c 100644 (file)
@@ -383,12 +383,12 @@ public class DbusManagerImpl implements Manager {
 
     @Override
     public void deleteRecipient(final RecipientIdentifier.Single recipient) throws IOException {
 
     @Override
     public void deleteRecipient(final RecipientIdentifier.Single recipient) throws IOException {
-        throw new UnsupportedOperationException();
+        signal.deleteRecipient(recipient.getIdentifier());
     }
 
     @Override
     public void deleteContact(final RecipientIdentifier.Single recipient) throws IOException {
     }
 
     @Override
     public void deleteContact(final RecipientIdentifier.Single recipient) throws IOException {
-        throw new UnsupportedOperationException();
+        signal.deleteContact(recipient.getIdentifier());
     }
 
     @Override
     }
 
     @Override
index 0baacecba61729e52ecfce8049e588544be59499..5d7eb49154fa43974bdf09f16cd6b96b8d2c62a8 100644 (file)
@@ -387,6 +387,24 @@ 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 {
     @Override
     public long sendGroupMessage(final String message, final List<String> attachments, final byte[] groupId) {
         try {