X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/35c72f692f13b12594ecdbe8f59f31d3b396d356..a6562b3b7baf7ba5621d00318e9fc52fb0b3e739:/src/main/java/org/asamk/signal/JsonSyncMessage.java diff --git a/src/main/java/org/asamk/signal/JsonSyncMessage.java b/src/main/java/org/asamk/signal/JsonSyncMessage.java index febf64a4..a6ecb459 100644 --- a/src/main/java/org/asamk/signal/JsonSyncMessage.java +++ b/src/main/java/org/asamk/signal/JsonSyncMessage.java @@ -2,24 +2,45 @@ 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 blockedNumbers; List readMessages; + JsonSyncMessageType type; JsonSyncMessage(SignalServiceSyncMessage syncMessage) { - if (syncMessage.getSent().isPresent()) { - this.sentMessage = new JsonDataMessage(syncMessage.getSent().get().getMessage()); - } - if (syncMessage.getBlockedList().isPresent()) { - this.blockedNumbers = syncMessage.getBlockedList().get().getNumbers(); - } - if (syncMessage.getRead().isPresent()) { - this.readMessages = syncMessage.getRead().get(); - } - } + 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; + } + } }