]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSyncMessage.java
Fix behavior for recipients with only UUIDs
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncMessage.java
1 package org.asamk.signal.json;
2
3 import org.asamk.Signal;
4 import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage;
5 import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
6 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11 enum JsonSyncMessageType {
12 CONTACTS_SYNC,
13 GROUPS_SYNC,
14 REQUEST_SYNC
15 }
16
17 class JsonSyncMessage {
18
19 JsonSyncDataMessage sentMessage;
20 List<String> blockedNumbers;
21 List<ReadMessage> readMessages;
22 JsonSyncMessageType type;
23
24 JsonSyncMessage(SignalServiceSyncMessage syncMessage) {
25 if (syncMessage.getSent().isPresent()) {
26 this.sentMessage = new JsonSyncDataMessage(syncMessage.getSent().get());
27 }
28 if (syncMessage.getBlockedList().isPresent()) {
29 this.blockedNumbers = new ArrayList<>(syncMessage.getBlockedList().get().getAddresses().size());
30 for (SignalServiceAddress address : syncMessage.getBlockedList().get().getAddresses()) {
31 this.blockedNumbers.add(address.getLegacyIdentifier());
32 }
33 }
34 if (syncMessage.getRead().isPresent()) {
35 this.readMessages = syncMessage.getRead().get();
36 }
37
38 if (syncMessage.getContacts().isPresent()) {
39 this.type = JsonSyncMessageType.CONTACTS_SYNC;
40 } else if (syncMessage.getGroups().isPresent()) {
41 this.type = JsonSyncMessageType.GROUPS_SYNC;
42 } else if (syncMessage.getRequest().isPresent()) {
43 this.type = JsonSyncMessageType.REQUEST_SYNC;
44 }
45 }
46
47 JsonSyncMessage(Signal.SyncMessageReceived messageReceived) {
48 sentMessage = new JsonSyncDataMessage(messageReceived);
49 }
50 }