]> nmode's Git Repositories - signal-cli/commitdiff
Merge branch 'master' into dbus_sendviewed 764/head
authorAsamK <asamk@gmx.de>
Sat, 30 Oct 2021 10:46:59 +0000 (12:46 +0200)
committerGitHub <noreply@github.com>
Sat, 30 Oct 2021 10:46:59 +0000 (12:46 +0200)
man/signal-cli-dbus.5.adoc
src/main/java/org/asamk/Signal.java
src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
src/main/java/org/asamk/signal/json/JsonReceiptMessage.java

index 4c317db3dfc40dc3d7bd04982e2ec40d7536111d..1bc0b879fd201928c646d684b6d3bd8b03895488 100755 (executable)
@@ -462,6 +462,12 @@ sendReadReceipt(recipient<s>, targetSentTimestamps<ax>) -> <>::
 
 Exceptions: Failure, UntrustedIdentity
 
+sendViewedReceipt(recipient<s>, targetSentTimestamp<ax>) -> <>::
+* recipient             : Phone number of a single recipient
+* targetSentTimestamp   : Array of Longs to identify the corresponding signal messages
+
+Exceptions: Failure, UntrustedIdentity
+
 sendRemoteDeleteMessage(targetSentTimestamp<x>, recipient<s>) -> timestamp<x>::
 sendRemoteDeleteMessage(targetSentTimestamp<x>, recipients<as>) -> timestamp<x>::
 * targetSentTimestamp : Long representing timestamp of the message to delete
index 240930dc3d4094fdcc4c06610f091d176d5f59d7..18bdbdb563a604fd0fb41a5d5fe1e79a348b5ce1 100644 (file)
@@ -37,6 +37,10 @@ public interface Signal extends DBusInterface {
             String recipient, List<Long> messageIds
     ) throws Error.Failure, Error.UntrustedIdentity;
 
+    void sendViewedReceipt(
+            String recipient, List<Long> messageIds
+    ) throws Error.Failure, Error.UntrustedIdentity;
+
     long sendRemoteDeleteMessage(
             long targetSentTimestamp, String recipient
     ) throws Error.Failure, Error.InvalidNumber;
index 7be6a8e284317d210c19e8a75c9f3b07059ada75..977dfa758cc2ec98c8a3bcf3c72c84d36a942adc 100644 (file)
@@ -278,6 +278,19 @@ public class DbusSignalImpl implements Signal {
         }
     }
 
+    @Override
+    public void sendViewedReceipt(
+            final String recipient, final List<Long> messageIds
+    ) throws Error.Failure, Error.UntrustedIdentity {
+        try {
+            m.sendViewedReceipt(getSingleRecipientIdentifier(recipient, m.getSelfNumber()), messageIds);
+        } catch (IOException e) {
+            throw new Error.Failure(e.getMessage());
+        } catch (UntrustedIdentityException e) {
+            throw new Error.UntrustedIdentity(e.getMessage());
+        }
+    }
+
     @Override
     public void sendContacts() {
         try {
index af7050b1c7c729fdce7753ea83149b111d2245d3..1199c790270054aa08293ded2c116e825820f942 100644 (file)
@@ -4,17 +4,18 @@ import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage
 
 import java.util.List;
 
-record JsonReceiptMessage(long when, boolean isDelivery, boolean isRead, List<Long> timestamps) {
+record JsonReceiptMessage(long when, boolean isDelivery, boolean isRead, boolean isViewed, List<Long> timestamps) {
 
     static JsonReceiptMessage from(SignalServiceReceiptMessage receiptMessage) {
         final var when = receiptMessage.getWhen();
         final var isDelivery = receiptMessage.isDeliveryReceipt();
         final var isRead = receiptMessage.isReadReceipt();
+        final var isViewed = receiptMessage.isViewedReceipt();
         final var timestamps = receiptMessage.getTimestamps();
-        return new JsonReceiptMessage(when, isDelivery, isRead, timestamps);
+        return new JsonReceiptMessage(when, isDelivery, isRead, isViewed, timestamps);
     }
 
     static JsonReceiptMessage deliveryReceipt(final long when, final List<Long> timestamps) {
-        return new JsonReceiptMessage(when, true, false, timestamps);
+        return new JsonReceiptMessage(when, true, false, false, false, timestamps);
     }
 }