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
.SignalServiceDataMessage
;
6 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroup
;
7 import org
.whispersystems
.signalservice
.api
.messages
.SignalServiceGroupV2
;
10 import java
.util
.stream
.Collectors
;
12 class JsonDataMessage
{
18 JsonReaction reaction
;
20 List
<JsonMention
> mentions
;
21 List
<JsonAttachment
> attachments
;
23 JsonGroupInfo groupInfo
;
25 JsonDataMessage(SignalServiceDataMessage dataMessage
, Manager m
) {
26 this.timestamp
= dataMessage
.getTimestamp();
27 if (dataMessage
.getGroupContext().isPresent()) {
28 if (dataMessage
.getGroupContext().get().getGroupV1().isPresent()) {
29 SignalServiceGroup groupInfo
= dataMessage
.getGroupContext().get().getGroupV1().get();
30 this.groupInfo
= new JsonGroupInfo(groupInfo
);
31 } else if (dataMessage
.getGroupContext().get().getGroupV2().isPresent()) {
32 SignalServiceGroupV2 groupInfo
= dataMessage
.getGroupContext().get().getGroupV2().get();
33 this.groupInfo
= new JsonGroupInfo(groupInfo
);
36 if (dataMessage
.getBody().isPresent()) {
37 this.message
= dataMessage
.getBody().get();
39 this.expiresInSeconds
= dataMessage
.getExpiresInSeconds();
40 if (dataMessage
.getReaction().isPresent()) {
41 this.reaction
= new JsonReaction(dataMessage
.getReaction().get(), m
);
43 if (dataMessage
.getQuote().isPresent()) {
44 this.quote
= new JsonQuote(dataMessage
.getQuote().get(), m
);
46 if (dataMessage
.getMentions().isPresent()) {
47 this.mentions
= dataMessage
.getMentions()
50 .map(mention
-> new JsonMention(mention
, m
))
51 .collect(Collectors
.toList());
53 this.mentions
= List
.of();
55 if (dataMessage
.getAttachments().isPresent()) {
56 this.attachments
= dataMessage
.getAttachments()
59 .map(JsonAttachment
::new)
60 .collect(Collectors
.toList());
62 this.attachments
= List
.of();
64 if (dataMessage
.getSticker().isPresent()) {
65 this.sticker
= new JsonSticker(dataMessage
.getSticker().get());
69 public JsonDataMessage(Signal
.MessageReceived messageReceived
) {
70 timestamp
= messageReceived
.getTimestamp();
71 message
= messageReceived
.getMessage();
72 groupInfo
= new JsonGroupInfo(messageReceived
.getGroupId());
73 reaction
= null; // TODO Replace these 4 with the proper commands
77 attachments
= messageReceived
.getAttachments().stream().map(JsonAttachment
::new).collect(Collectors
.toList());
80 public JsonDataMessage(Signal
.SyncMessageReceived messageReceived
) {
81 timestamp
= messageReceived
.getTimestamp();
82 message
= messageReceived
.getMessage();
83 groupInfo
= new JsonGroupInfo(messageReceived
.getGroupId());
84 reaction
= null; // TODO Replace these 4 with the proper commands
88 attachments
= messageReceived
.getAttachments().stream().map(JsonAttachment
::new).collect(Collectors
.toList());