]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
Send remote delete (#593)
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalImpl.java
index 9bc4b67f9a9ba68133c005fff47b457cd5014d89..6b22029b2fc0434f05c0465f383116aabc5a6f6e 100644 (file)
@@ -103,6 +103,45 @@ public class DbusSignalImpl implements Signal {
         }
     }
 
+    @Override
+    public long sendRemoteDeleteMessage(
+            final long targetSentTimestamp, final String recipient
+    ) {
+        var recipients = new ArrayList<String>(1);
+        recipients.add(recipient);
+        return sendRemoteDeleteMessage(targetSentTimestamp, recipients);
+    }
+
+    @Override
+    public long sendRemoteDeleteMessage(
+            final long targetSentTimestamp, final List<String> recipients
+    ) {
+        try {
+            final var results = m.sendRemoteDeleteMessage(targetSentTimestamp, recipients);
+            checkSendMessageResults(results.first(), results.second());
+            return results.first();
+        } catch (IOException e) {
+            throw new Error.Failure(e.getMessage());
+        } catch (InvalidNumberException e) {
+            throw new Error.InvalidNumber(e.getMessage());
+        }
+    }
+
+    @Override
+    public long sendGroupRemoteDeleteMessage(
+            final long targetSentTimestamp, final byte[] groupId
+    ) {
+        try {
+            final var results = m.sendGroupRemoteDeleteMessage(targetSentTimestamp, GroupId.unknownVersion(groupId));
+            checkSendMessageResults(results.first(), results.second());
+            return results.first();
+        } catch (IOException e) {
+            throw new Error.Failure(e.getMessage());
+        } catch (GroupNotFoundException | NotAGroupMemberException e) {
+            throw new Error.GroupNotFound(e.getMessage());
+        }
+    }
+
     @Override
     public long sendMessageReaction(
             final String emoji, final boolean remove, final String targetAuthor, final long targetSentTimestamp, final String recipient