]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/JsonDbusReceiveMessageHandler.java
Update dependencies
[signal-cli] / src / main / java / org / asamk / signal / JsonDbusReceiveMessageHandler.java
index 3ba65f7dcbf62f4e1865847abdb8365d12ca49ea..0728b8719506b5c2ed5a3de851c457123572151b 100644 (file)
@@ -2,16 +2,16 @@ package org.asamk.signal;
 
 import org.asamk.Signal;
 import org.asamk.signal.manager.Manager;
-import org.freedesktop.dbus.DBusConnection;
+import org.freedesktop.dbus.connections.impl.DBusConnection;
 import org.freedesktop.dbus.exceptions.DBusException;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 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.multidevice.SignalServiceSyncMessage;
+import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
+import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -31,7 +31,7 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
     static void sendReceivedMessageToDbus(SignalServiceEnvelope envelope, SignalServiceContent content, DBusConnection conn, final String objectPath, Manager m) {
         if (envelope.isReceipt()) {
             try {
-                conn.sendSignal(new Signal.ReceiptReceived(
+                conn.sendMessage(new Signal.ReceiptReceived(
                         objectPath,
                         envelope.getTimestamp(),
                         !envelope.isUnidentifiedSender() && envelope.hasSource() ? envelope.getSourceE164().get() : content.getSender().getNumber().get()
@@ -40,17 +40,30 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
                 e.printStackTrace();
             }
         } else if (content != null) {
-            if (content.getDataMessage().isPresent()) {
+            if (content.getReceiptMessage().isPresent()) {
+                final SignalServiceReceiptMessage receiptMessage = content.getReceiptMessage().get();
+                if (receiptMessage.isDeliveryReceipt()) {
+                    final String sender = !envelope.isUnidentifiedSender() && envelope.hasSource() ? envelope.getSourceE164().get() : content.getSender().getNumber().get();
+                    for (long timestamp : receiptMessage.getTimestamps()) {
+                        try {
+                            conn.sendMessage(new Signal.ReceiptReceived(
+                                    objectPath,
+                                    timestamp,
+                                    sender
+                            ));
+                        } catch (DBusException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            } else if (content.getDataMessage().isPresent()) {
                 SignalServiceDataMessage message = content.getDataMessage().get();
 
-                if (message.getBody().isPresent())
-                    System.out.println(message.getBody().get());
-
                 if (!message.isEndSession() &&
                         !(message.getGroupContext().isPresent() &&
                                 message.getGroupContext().get().getGroupV1Type() != SignalServiceGroup.Type.DELIVER)) {
                     try {
-                        conn.sendSignal(new Signal.MessageReceived(
+                        conn.sendMessage(new Signal.MessageReceived(
                                 objectPath,
                                 message.getTimestamp(),
                                 envelope.isUnidentifiedSender() || !envelope.hasSource() ? content.getSender().getNumber().get() : envelope.getSourceE164().get(),
@@ -71,7 +84,7 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
                         SignalServiceDataMessage message = transcript.getMessage();
 
                         try {
-                            conn.sendSignal(new Signal.SyncMessageReceived(
+                            conn.sendMessage(new Signal.SyncMessageReceived(
                                     objectPath,
                                     transcript.getTimestamp(),
                                     envelope.getSourceAddress().getNumber().get(),
@@ -94,7 +107,7 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
         if (message.getAttachments().isPresent()) {
             for (SignalServiceAttachment attachment : message.getAttachments().get()) {
                 if (attachment.isPointer()) {
-                    attachments.add(m.getAttachmentFile(attachment.asPointer().getId()).getAbsolutePath());
+                    attachments.add(m.getAttachmentFile(attachment.asPointer().getRemoteId()).getAbsolutePath());
                 }
             }
         }