]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonDataMessage.java
Fix behavior for recipients with only UUIDs
[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
8 import java.util.ArrayList;
9 import java.util.List;
10 import java.util.stream.Collectors;
11
12 class JsonDataMessage {
13
14 long timestamp;
15 String message;
16 int expiresInSeconds;
17 List<JsonAttachment> attachments;
18 JsonGroupInfo groupInfo;
19
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);
25 }
26 if (dataMessage.getBody().isPresent()) {
27 this.message = dataMessage.getBody().get();
28 }
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));
34 }
35 } else {
36 this.attachments = new ArrayList<>();
37 }
38 }
39
40 public JsonDataMessage(Signal.MessageReceived messageReceived) {
41 timestamp = messageReceived.getTimestamp();
42 message = messageReceived.getMessage();
43 groupInfo = new JsonGroupInfo(messageReceived.getGroupId());
44 attachments = messageReceived.getAttachments()
45 .stream()
46 .map(JsonAttachment::new)
47 .collect(Collectors.toList());
48 }
49
50 public JsonDataMessage(Signal.SyncMessageReceived messageReceived) {
51 timestamp = messageReceived.getTimestamp();
52 message = messageReceived.getMessage();
53 groupInfo = new JsonGroupInfo(messageReceived.getGroupId());
54 attachments = messageReceived.getAttachments()
55 .stream()
56 .map(JsonAttachment::new)
57 .collect(Collectors.toList());
58 }
59 }