1 package org
.asamk
.signal
.json
;
3 import org
.asamk
.Signal
;
4 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceContent
;
5 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceEnvelope
;
6 import org
.whispersystems
.signalservice
.api
.push
.SignalServiceAddress
;
10 public class JsonMessageEnvelope
{
16 JsonDataMessage dataMessage
;
17 JsonSyncMessage syncMessage
;
18 JsonCallMessage callMessage
;
19 JsonReceiptMessage receiptMessage
;
21 public JsonMessageEnvelope(SignalServiceEnvelope envelope
, SignalServiceContent content
) {
22 if (!envelope
.isUnidentifiedSender() && envelope
.hasSource()) {
23 SignalServiceAddress source
= envelope
.getSourceAddress();
24 this.source
= source
.getLegacyIdentifier();
25 this.relay
= source
.getRelay().isPresent() ? source
.getRelay().get() : null;
27 this.sourceDevice
= envelope
.getSourceDevice();
28 this.timestamp
= envelope
.getTimestamp();
29 if (envelope
.isReceipt()) {
30 this.receiptMessage
= JsonReceiptMessage
.deliveryReceipt(timestamp
, List
.of(timestamp
));
32 if (content
!= null) {
33 if (envelope
.isUnidentifiedSender()) {
34 this.source
= content
.getSender().getLegacyIdentifier();
35 this.sourceDevice
= content
.getSenderDevice();
37 if (content
.getDataMessage().isPresent()) {
38 this.dataMessage
= new JsonDataMessage(content
.getDataMessage().get());
40 if (content
.getSyncMessage().isPresent()) {
41 this.syncMessage
= new JsonSyncMessage(content
.getSyncMessage().get());
43 if (content
.getCallMessage().isPresent()) {
44 this.callMessage
= new JsonCallMessage(content
.getCallMessage().get());
46 if (content
.getReceiptMessage().isPresent()) {
47 this.receiptMessage
= new JsonReceiptMessage(content
.getReceiptMessage().get());
52 public JsonMessageEnvelope(Signal
.MessageReceived messageReceived
) {
53 source
= messageReceived
.getSender();
54 timestamp
= messageReceived
.getTimestamp();
55 dataMessage
= new JsonDataMessage(messageReceived
);
58 public JsonMessageEnvelope(Signal
.ReceiptReceived receiptReceived
) {
59 source
= receiptReceived
.getSender();
60 timestamp
= receiptReceived
.getTimestamp();
61 receiptMessage
= JsonReceiptMessage
.deliveryReceipt(timestamp
, List
.of(timestamp
));
64 public JsonMessageEnvelope(Signal
.SyncMessageReceived messageReceived
) {
65 source
= messageReceived
.getSource();
66 timestamp
= messageReceived
.getTimestamp();
67 syncMessage
= new JsonSyncMessage(messageReceived
);