]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/JsonSyncMessage.java
Send delivery receipt for data messages that need it
[signal-cli] / src / main / java / org / asamk / signal / JsonSyncMessage.java
index 92ad1cc5ea784cb107a6b382a830afdf82768afb..326ec4edfa66a170d371e653a917b75514f75b3b 100644 (file)
@@ -2,23 +2,44 @@ package org.asamk.signal;
 
 import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
+import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 
+import java.util.ArrayList;
 import java.util.List;
 
+enum JsonSyncMessageType {
+    CONTACTS_SYNC,
+    GROUPS_SYNC,
+    REQUEST_SYNC
+}
+
 class JsonSyncMessage {
-    JsonDataMessage sentMessage;
+
+    JsonSyncDataMessage sentMessage;
     List<String> blockedNumbers;
     List<ReadMessage> readMessages;
+    JsonSyncMessageType type;
 
     JsonSyncMessage(SignalServiceSyncMessage syncMessage) {
         if (syncMessage.getSent().isPresent()) {
-            this.sentMessage = new JsonDataMessage(syncMessage.getSent().get().getMessage());
+            this.sentMessage = new JsonSyncDataMessage(syncMessage.getSent().get());
         }
         if (syncMessage.getBlockedList().isPresent()) {
-            this.blockedNumbers = syncMessage.getBlockedList().get().getNumbers();
+            this.blockedNumbers = new ArrayList<>(syncMessage.getBlockedList().get().getAddresses().size());
+            for (SignalServiceAddress address : syncMessage.getBlockedList().get().getAddresses()) {
+                this.blockedNumbers.add(address.getNumber().get());
+            }
         }
         if (syncMessage.getRead().isPresent()) {
             this.readMessages = syncMessage.getRead().get();
         }
+
+        if (syncMessage.getContacts().isPresent()) {
+            this.type = JsonSyncMessageType.CONTACTS_SYNC;
+        } else if (syncMessage.getGroups().isPresent()) {
+            this.type = JsonSyncMessageType.GROUPS_SYNC;
+        } else if (syncMessage.getRequest().isPresent()) {
+            this.type = JsonSyncMessageType.REQUEST_SYNC;
+        }
     }
 }