X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/e04c45766d50d6a4e2d3c084145e2115b38bef5c..ae41d0c5026fe868c6198e1005344fc78b6e0a2c:/src/main/java/org/asamk/signal/json/JsonSyncMessage.java diff --git a/src/main/java/org/asamk/signal/json/JsonSyncMessage.java b/src/main/java/org/asamk/signal/json/JsonSyncMessage.java new file mode 100644 index 00000000..27766bda --- /dev/null +++ b/src/main/java/org/asamk/signal/json/JsonSyncMessage.java @@ -0,0 +1,50 @@ +package org.asamk.signal.json; + +import 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 { + + JsonSyncDataMessage sentMessage; + List blockedNumbers; + List readMessages; + JsonSyncMessageType type; + + JsonSyncMessage(SignalServiceSyncMessage syncMessage) { + if (syncMessage.getSent().isPresent()) { + this.sentMessage = new JsonSyncDataMessage(syncMessage.getSent().get()); + } + if (syncMessage.getBlockedList().isPresent()) { + 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; + } + } + + JsonSyncMessage(Signal.SyncMessageReceived messageReceived) { + sentMessage = new JsonSyncDataMessage(messageReceived); + } +}