From: jonas.hoefer Date: Thu, 2 Dec 2021 10:02:28 +0000 (+0100) Subject: Add dbus methods: deleteContact and deleteRecipient X-Git-Tag: v0.10.0~29 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/861f47d734a2c416ca3231ad72f9f129da5a706f Add dbus methods: deleteContact and deleteRecipient Closes #814 --- diff --git a/man/signal-cli-dbus.5.adoc b/man/signal-cli-dbus.5.adoc index 5950b582..dd7f8034 100755 --- a/man/signal-cli-dbus.5.adoc +++ b/man/signal-cli-dbus.5.adoc @@ -519,6 +519,16 @@ setContactName(number,name<>) -> <>:: Exceptions: InvalidNumber, Failure +deleteContact(number) -> <>:: +* number : Phone number + +Exceptions: Failure + +deleteRecipient(number) -> <>:: +* number : Phone number + +Exceptions: Failure + setExpirationTimer(number, expiration) -> <>:: * number : Phone number of recipient * expiration : int32 for the number of seconds before messages to this recipient disappear. Set to 0 to disable expiration. diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index 8ce71745..421e5de5 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -76,6 +76,10 @@ public interface Signal extends DBusInterface { void sendEndSessionMessage(List 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 attachments, byte[] groupId ) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.InvalidGroupId; diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index e80f2d34..5421d4ad 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -383,12 +383,12 @@ public class DbusManagerImpl implements Manager { @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 { - throw new UnsupportedOperationException(); + signal.deleteContact(recipient.getIdentifier()); } @Override diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index 0baacecb..5d7eb491 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -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 attachments, final byte[] groupId) { try {