]> nmode's Git Repositories - signal-cli/commitdiff
Refactor SendReceiptAction to take type argument
authorAsamK <asamk@gmx.de>
Thu, 26 May 2022 15:37:54 +0000 (17:37 +0200)
committerAsamK <asamk@gmx.de>
Thu, 26 May 2022 15:37:54 +0000 (17:37 +0200)
lib/src/main/java/org/asamk/signal/manager/actions/SendReceiptAction.java
lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java
lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java

index 89a1aaa8cdb76e9626e0e6c3497af98fa6dbc7c7..c08438b5bc529b266217ff0bfd375b09acb76666 100644 (file)
@@ -2,6 +2,7 @@ package org.asamk.signal.manager.actions;
 
 import org.asamk.signal.manager.helper.Context;
 import org.asamk.signal.manager.storage.recipients.RecipientId;
+import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -10,16 +11,22 @@ import java.util.Objects;
 public class SendReceiptAction implements HandleAction {
 
     private final RecipientId recipientId;
+    private final SignalServiceReceiptMessage.Type type;
     private final List<Long> timestamps = new ArrayList<>();
 
-    public SendReceiptAction(final RecipientId recipientId, final long timestamp) {
+    public SendReceiptAction(
+            final RecipientId recipientId, final SignalServiceReceiptMessage.Type type, final long timestamp
+    ) {
         this.recipientId = recipientId;
+        this.type = type;
         this.timestamps.add(timestamp);
     }
 
     @Override
     public void execute(Context context) throws Throwable {
-        context.getSendHelper().sendDeliveryReceipt(recipientId, timestamps);
+        final var receiptMessage = new SignalServiceReceiptMessage(type, timestamps, System.currentTimeMillis());
+
+        context.getSendHelper().sendReceiptMessage(receiptMessage, recipientId);
     }
 
     @Override
@@ -34,13 +41,13 @@ public class SendReceiptAction implements HandleAction {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
         final SendReceiptAction that = (SendReceiptAction) o;
-        // Using only recipientId here on purpose
-        return recipientId.equals(that.recipientId);
+        // Using only recipientId and type here on purpose
+        return recipientId.equals(that.recipientId) && type == that.type;
     }
 
     @Override
     public int hashCode() {
-        // Using only recipientId here on purpose
-        return Objects.hash(recipientId);
+        // Using only recipientId and type here on purpose
+        return Objects.hash(recipientId, type);
     }
 }
index 37616d6e6f78ae59c5695d61bc7ee6fcf8417fc8..519d01b4522e3691d3f09323d04e2c3e28cd9489 100644 (file)
@@ -51,6 +51,7 @@ import org.whispersystems.signalservice.api.messages.SignalServiceContent;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
+import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.StickerPackOperationMessage;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
@@ -247,7 +248,9 @@ public final class IncomingMessageHandler {
             var message = content.getDataMessage().get();
 
             if (content.isNeedsReceipt()) {
-                actions.add(new SendReceiptAction(sender, message.getTimestamp()));
+                actions.add(new SendReceiptAction(sender,
+                        SignalServiceReceiptMessage.Type.DELIVERY,
+                        message.getTimestamp()));
             } else {
                 // Message wasn't sent as unidentified sender message
                 final var contact = context.getAccount().getContactStore().getContact(sender);
index 85d5cc32546883db6bd5019500c4630578d02293..758fe1b9ebbe71ba5448b0ea2a6891d2e43b59ee 100644 (file)
@@ -116,16 +116,6 @@ public class SendHelper {
         return sendGroupMessage(message, recipientIds, distributionId, ContentHint.IMPLICIT);
     }
 
-    public SendMessageResult sendDeliveryReceipt(
-            RecipientId recipientId, List<Long> messageIds
-    ) {
-        var receiptMessage = new SignalServiceReceiptMessage(SignalServiceReceiptMessage.Type.DELIVERY,
-                messageIds,
-                System.currentTimeMillis());
-
-        return sendReceiptMessage(receiptMessage, recipientId);
-    }
-
     public SendMessageResult sendReceiptMessage(
             final SignalServiceReceiptMessage receiptMessage, final RecipientId recipientId
     ) {