- JsonDataMessage(SignalServiceDataMessage dataMessage, Manager m) {
- this.timestamp = dataMessage.getTimestamp();
- if (dataMessage.getGroupContext().isPresent()) {
- if (dataMessage.getGroupContext().get().getGroupV1().isPresent()) {
- SignalServiceGroup groupInfo = dataMessage.getGroupContext().get().getGroupV1().get();
- this.groupInfo = new JsonGroupInfo(groupInfo);
- } else if (dataMessage.getGroupContext().get().getGroupV2().isPresent()) {
- SignalServiceGroupV2 groupInfo = dataMessage.getGroupContext().get().getGroupV2().get();
- this.groupInfo = new JsonGroupInfo(groupInfo);
- }
- }
- if (dataMessage.getBody().isPresent()) {
- this.message = dataMessage.getBody().get();
- }
- this.expiresInSeconds = dataMessage.getExpiresInSeconds();
- if (dataMessage.getReaction().isPresent()) {
- this.reaction = new JsonReaction(dataMessage.getReaction().get(), m);
- }
- if (dataMessage.getQuote().isPresent()) {
- this.quote = new JsonQuote(dataMessage.getQuote().get(), m);
- }
- if (dataMessage.getMentions().isPresent()) {
- this.mentions = new ArrayList<>(dataMessage.getMentions().get().size());
- for (SignalServiceDataMessage.Mention mention : dataMessage.getMentions().get()) {
- this.mentions.add(new JsonMention(mention, m));
- }
- } else {
- this.mentions = new ArrayList<>();
- }
- if (dataMessage.getAttachments().isPresent()) {
- this.attachments = new ArrayList<>(dataMessage.getAttachments().get().size());
- for (SignalServiceAttachment attachment : dataMessage.getAttachments().get()) {
- this.attachments.add(new JsonAttachment(attachment));
- }
- } else {
- this.attachments = new ArrayList<>();
- }
+ final var contacts = dataMessage.sharedContacts().size() > 0 ? dataMessage.sharedContacts()
+ .stream()
+ .map(JsonSharedContact::from)
+ .collect(Collectors.toList()) : null;
+ return new JsonDataMessage(timestamp,
+ message,
+ expiresInSeconds,
+ viewOnce,
+ reaction,
+ quote,
+ mentions,
+ attachments,
+ sticker,
+ remoteDelete,
+ contacts,
+ groupInfo);