1 package org
.asamk
.signal
.json
;
3 import org
.asamk
.Signal
;
4 import org
.asamk
.signal
.manager
.Manager
;
5 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceContent
;
6 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceEnvelope
;
7 import org
.whispersystems
.signalservice
.api
.push
.SignalServiceAddress
;
11 public class JsonMessageEnvelope
{
17 JsonDataMessage dataMessage
;
18 JsonSyncMessage syncMessage
;
19 JsonCallMessage callMessage
;
20 JsonReceiptMessage receiptMessage
;
22 public JsonMessageEnvelope(SignalServiceEnvelope envelope
, SignalServiceContent content
, Manager m
) {
23 if (!envelope
.isUnidentifiedSender() && envelope
.hasSource()) {
24 SignalServiceAddress source
= envelope
.getSourceAddress();
25 this.source
= source
.getLegacyIdentifier();
26 this.relay
= source
.getRelay().isPresent() ? source
.getRelay().get() : null;
28 this.sourceDevice
= envelope
.getSourceDevice();
29 this.timestamp
= envelope
.getTimestamp();
30 if (envelope
.isReceipt()) {
31 this.receiptMessage
= JsonReceiptMessage
.deliveryReceipt(timestamp
, List
.of(timestamp
));
33 if (content
!= null) {
34 if (envelope
.isUnidentifiedSender()) {
35 this.source
= content
.getSender().getLegacyIdentifier();
36 this.sourceDevice
= content
.getSenderDevice();
38 if (content
.getDataMessage().isPresent()) {
39 this.dataMessage
= new JsonDataMessage(content
.getDataMessage().get(), m
);
41 if (content
.getSyncMessage().isPresent()) {
42 this.syncMessage
= new JsonSyncMessage(content
.getSyncMessage().get(), m
);
44 if (content
.getCallMessage().isPresent()) {
45 this.callMessage
= new JsonCallMessage(content
.getCallMessage().get());
47 if (content
.getReceiptMessage().isPresent()) {
48 this.receiptMessage
= new JsonReceiptMessage(content
.getReceiptMessage().get());
53 public JsonMessageEnvelope(Signal
.MessageReceived messageReceived
) {
54 source
= messageReceived
.getSender();
55 timestamp
= messageReceived
.getTimestamp();
56 dataMessage
= new JsonDataMessage(messageReceived
);
59 public JsonMessageEnvelope(Signal
.ReceiptReceived receiptReceived
) {
60 source
= receiptReceived
.getSender();
61 timestamp
= receiptReceived
.getTimestamp();
62 receiptMessage
= JsonReceiptMessage
.deliveryReceipt(timestamp
, List
.of(timestamp
));
65 public JsonMessageEnvelope(Signal
.SyncMessageReceived messageReceived
) {
66 source
= messageReceived
.getSource();
67 timestamp
= messageReceived
.getTimestamp();
68 syncMessage
= new JsonSyncMessage(messageReceived
);