mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-29 10:30:38 +00:00
46 lines
1.5 KiB
Java
46 lines
1.5 KiB
Java
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 {
|
|
|
|
JsonSyncDataMessage sentMessage;
|
|
List<String> blockedNumbers;
|
|
List<ReadMessage> 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;
|
|
}
|
|
}
|
|
}
|