1 package org
.asamk
.signal
.json
;
3 import org
.asamk
.Signal
;
4 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceAttachment
;
5 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceDataMessage
;
6 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroup
;
7 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroupV2
;
9 import java
.util
.ArrayList
;
10 import java
.util
.List
;
11 import java
.util
.stream
.Collectors
;
13 class JsonDataMessage
{
18 List
<JsonAttachment
> attachments
;
19 JsonGroupInfo groupInfo
;
21 JsonDataMessage(SignalServiceDataMessage dataMessage
) {
22 this.timestamp
= dataMessage
.getTimestamp();
23 if (dataMessage
.getGroupContext().isPresent()) {
24 if (dataMessage
.getGroupContext().get().getGroupV1().isPresent()) {
25 SignalServiceGroup groupInfo
= dataMessage
.getGroupContext().get().getGroupV1().get();
26 this.groupInfo
= new JsonGroupInfo(groupInfo
);
27 } else if (dataMessage
.getGroupContext().get().getGroupV2().isPresent()) {
28 SignalServiceGroupV2 groupInfo
= dataMessage
.getGroupContext().get().getGroupV2().get();
29 this.groupInfo
= new JsonGroupInfo(groupInfo
);
32 if (dataMessage
.getBody().isPresent()) {
33 this.message
= dataMessage
.getBody().get();
35 this.expiresInSeconds
= dataMessage
.getExpiresInSeconds();
36 if (dataMessage
.getAttachments().isPresent()) {
37 this.attachments
= new ArrayList
<>(dataMessage
.getAttachments().get().size());
38 for (SignalServiceAttachment attachment
: dataMessage
.getAttachments().get()) {
39 this.attachments
.add(new JsonAttachment(attachment
));
42 this.attachments
= new ArrayList
<>();
46 public JsonDataMessage(Signal
.MessageReceived messageReceived
) {
47 timestamp
= messageReceived
.getTimestamp();
48 message
= messageReceived
.getMessage();
49 groupInfo
= new JsonGroupInfo(messageReceived
.getGroupId());
50 attachments
= messageReceived
.getAttachments().stream().map(JsonAttachment
::new).collect(Collectors
.toList());
53 public JsonDataMessage(Signal
.SyncMessageReceived messageReceived
) {
54 timestamp
= messageReceived
.getTimestamp();
55 message
= messageReceived
.getMessage();
56 groupInfo
= new JsonGroupInfo(messageReceived
.getGroupId());
57 attachments
= messageReceived
.getAttachments().stream().map(JsonAttachment
::new).collect(Collectors
.toList());