From: John Freed Date: Thu, 7 Oct 2021 05:40:20 +0000 (+0200) Subject: implement viewedReceipt X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/a9a6edaf3ff8ac81b1229db294d738f624688a0d?hp=26594dd0eed44225d7d4a17571597a81e4e3b58a implement viewedReceipt for Dbus and Json -- note that this changes the JsonReceiptMessage structure update documentation --- diff --git a/man/signal-cli-dbus.5.adoc b/man/signal-cli-dbus.5.adoc index e7cd083f..093f5807 100755 --- a/man/signal-cli-dbus.5.adoc +++ b/man/signal-cli-dbus.5.adoc @@ -212,13 +212,18 @@ sendTyping(recipient, stop) -> <>:: Exceptions: Failure, GroupNotFound, UntrustedIdentity - sendReadReceipt(recipient, targetSentTimestamp) -> <>:: * recipient : Phone number of a single recipient * targetSentTimestamp : Array of Longs to identify the corresponding signal messages Exceptions: Failure, UntrustedIdentity +sendViewedReceipt(recipient, targetSentTimestamp) -> <>:: +* recipient : Phone number of a single recipient +* targetSentTimestamp : Array of Longs to identify the corresponding signal messages + +Exceptions: Failure, UntrustedIdentity + sendGroupMessageReaction(emoji, remove, targetAuthor, targetSentTimestamp, groupId) -> timestamp:: * emoji : Unicode grapheme cluster of the emoji * remove : Boolean, whether a previously sent reaction (emoji) should be removed diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index b8800085..dad7d5d7 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -34,6 +34,10 @@ public interface Signal extends DBusInterface { String recipient, List messageIds ) throws Error.Failure, Error.UntrustedIdentity; + void sendViewedReceipt( + String recipient, List messageIds + ) throws Error.Failure, Error.UntrustedIdentity; + long sendRemoteDeleteMessage( long targetSentTimestamp, String recipient ) throws Error.Failure, Error.InvalidNumber; diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index ab9c89b2..18565a0d 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -282,6 +282,19 @@ public class DbusSignalImpl implements Signal { } } + @Override + public void sendViewedReceipt( + final String recipient, final List 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 { diff --git a/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java b/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java index e32009e1..54869d25 100644 --- a/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonReceiptMessage.java @@ -17,6 +17,9 @@ class JsonReceiptMessage { @JsonProperty final boolean isRead; + @JsonProperty + final boolean isViewed; + @JsonProperty final List timestamps; @@ -24,6 +27,7 @@ class JsonReceiptMessage { this.when = receiptMessage.getWhen(); this.isDelivery = receiptMessage.isDeliveryReceipt(); this.isRead = receiptMessage.isReadReceipt(); + this.isViewed = receiptMessage.isViewedReceipt(); this.timestamps = receiptMessage.getTimestamps(); } @@ -33,6 +37,7 @@ class JsonReceiptMessage { this.when = when; this.isDelivery = isDelivery; this.isRead = isRead; + this.isViewed = isViewed; this.timestamps = timestamps; }