]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonDataMessage.java
Implement join group via invitation link
[signal-cli] / src / main / java / org / asamk / signal / json / JsonDataMessage.java
1 package org.asamk.signal.json;
2
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;
8
9 import java.util.ArrayList;
10 import java.util.List;
11 import java.util.stream.Collectors;
12
13 class JsonDataMessage {
14
15 long timestamp;
16 String message;
17 int expiresInSeconds;
18 List<JsonAttachment> attachments;
19 JsonGroupInfo groupInfo;
20
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);
30 }
31 }
32 if (dataMessage.getBody().isPresent()) {
33 this.message = dataMessage.getBody().get();
34 }
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));
40 }
41 } else {
42 this.attachments = new ArrayList<>();
43 }
44 }
45
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());
51 }
52
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());
58 }
59 }