]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/internal/ManagerImpl.java
Send sync message for read/viewed receipt messages
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / internal / ManagerImpl.java
index 480fa751f74e7909d5ceac75da8cd8f6284397e6..6549b088d8872403b4a7455e0dfacd8ddcd8216e 100644 (file)
@@ -704,8 +704,15 @@ public class ManagerImpl implements Manager {
             final SignalServiceReceiptMessage receiptMessage
     ) {
         try {
-            final var result = context.getSendHelper()
-                    .sendReceiptMessage(receiptMessage, context.getRecipientHelper().resolveRecipient(sender));
+            final var recipientId = context.getRecipientHelper().resolveRecipient(sender);
+            final var result = context.getSendHelper().sendReceiptMessage(receiptMessage, recipientId);
+
+            final var serviceId = account.getRecipientAddressResolver()
+                    .resolveRecipientAddress(recipientId)
+                    .serviceId();
+            if (serviceId.isPresent()) {
+                context.getSyncHelper().sendSyncReceiptMessage(serviceId.get(), receiptMessage);
+            }
             return new SendMessageResults(timestamp, Map.of(sender, List.of(toSendMessageResult(result))));
         } catch (UnregisteredRecipientException e) {
             return new SendMessageResults(timestamp,