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
;
8 import java
.util
.ArrayList
;
10 import java
.util
.stream
.Collectors
;
12 class JsonDataMessage
{
17 List
<JsonAttachment
> attachments
;
18 JsonGroupInfo groupInfo
;
20 JsonDataMessage(SignalServiceDataMessage dataMessage
) {
21 this.timestamp
= dataMessage
.getTimestamp();
22 if (dataMessage
.getGroupContext().isPresent() && dataMessage
.getGroupContext().get().getGroupV1().isPresent()) {
23 SignalServiceGroup groupInfo
= dataMessage
.getGroupContext().get().getGroupV1().get();
24 this.groupInfo
= new JsonGroupInfo(groupInfo
);
26 if (dataMessage
.getBody().isPresent()) {
27 this.message
= dataMessage
.getBody().get();
29 this.expiresInSeconds
= dataMessage
.getExpiresInSeconds();
30 if (dataMessage
.getAttachments().isPresent()) {
31 this.attachments
= new ArrayList
<>(dataMessage
.getAttachments().get().size());
32 for (SignalServiceAttachment attachment
: dataMessage
.getAttachments().get()) {
33 this.attachments
.add(new JsonAttachment(attachment
));
36 this.attachments
= new ArrayList
<>();
40 public JsonDataMessage(Signal
.MessageReceived messageReceived
) {
41 timestamp
= messageReceived
.getTimestamp();
42 message
= messageReceived
.getMessage();
43 groupInfo
= new JsonGroupInfo(messageReceived
.getGroupId());
44 attachments
= messageReceived
.getAttachments().stream().map(JsonAttachment
::new).collect(Collectors
.toList());
47 public JsonDataMessage(Signal
.SyncMessageReceived messageReceived
) {
48 timestamp
= messageReceived
.getTimestamp();
49 message
= messageReceived
.getMessage();
50 groupInfo
= new JsonGroupInfo(messageReceived
.getGroupId());
51 attachments
= messageReceived
.getAttachments().stream().map(JsonAttachment
::new).collect(Collectors
.toList());