]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/JsonMessageEnvelope.java
9a2759700fe4579f30d6aced6e29823eef1b1d72
[signal-cli] / src / main / java / org / asamk / signal / JsonMessageEnvelope.java
1 package org.asamk.signal;
2
3 import org.whispersystems.signalservice.api.messages.SignalServiceContent;
4 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
5 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
6
7 class JsonMessageEnvelope {
8
9 String source;
10 int sourceDevice;
11 String relay;
12 long timestamp;
13 boolean isReceipt;
14 JsonDataMessage dataMessage;
15 JsonSyncMessage syncMessage;
16 JsonCallMessage callMessage;
17 JsonReceiptMessage receiptMessage;
18
19 public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) {
20 if (!envelope.isUnidentifiedSender() && envelope.hasSource()) {
21 SignalServiceAddress source = envelope.getSourceAddress();
22 this.source = source.getNumber().get();
23 this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null;
24 }
25 this.sourceDevice = envelope.getSourceDevice();
26 this.timestamp = envelope.getTimestamp();
27 this.isReceipt = envelope.isReceipt();
28 if (content != null) {
29 if (envelope.isUnidentifiedSender()) {
30 this.source = content.getSender().getNumber().get();
31 this.sourceDevice = content.getSenderDevice();
32 }
33 if (content.getDataMessage().isPresent()) {
34 this.dataMessage = new JsonDataMessage(content.getDataMessage().get());
35 }
36 if (content.getSyncMessage().isPresent()) {
37 this.syncMessage = new JsonSyncMessage(content.getSyncMessage().get());
38 }
39 if (content.getCallMessage().isPresent()) {
40 this.callMessage = new JsonCallMessage(content.getCallMessage().get());
41 }
42 if (content.getReceiptMessage().isPresent()) {
43 this.receiptMessage = new JsonReceiptMessage(content.getReceiptMessage().get());
44 }
45 }
46 }
47 }