]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonDataMessage.java
Extract JsonWriter for json output
[signal-cli] / src / main / java / org / asamk / signal / json / JsonDataMessage.java
index 957e3a792d77dc2e5cad3c87fb02166465936400..787f47abb79a4434327ef01b858ee68b9f6529b6 100644 (file)
@@ -2,12 +2,10 @@ package org.asamk.signal.json;
 
 import org.asamk.Signal;
 import org.asamk.signal.manager.Manager;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -21,6 +19,7 @@ class JsonDataMessage {
     JsonQuote quote;
     List<JsonMention> mentions;
     List<JsonAttachment> attachments;
+    JsonSticker sticker;
     JsonGroupInfo groupInfo;
 
     JsonDataMessage(SignalServiceDataMessage dataMessage, Manager m) {
@@ -45,20 +44,25 @@ class JsonDataMessage {
             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));
-            }
+            this.mentions = dataMessage.getMentions()
+                    .get()
+                    .stream()
+                    .map(mention -> new JsonMention(mention, m))
+                    .collect(Collectors.toList());
         } else {
-            this.mentions = new ArrayList<>();
+            this.mentions = List.of();
         }
         if (dataMessage.getAttachments().isPresent()) {
-            this.attachments = new ArrayList<>(dataMessage.getAttachments().get().size());
-            for (SignalServiceAttachment attachment : dataMessage.getAttachments().get()) {
-                this.attachments.add(new JsonAttachment(attachment));
-            }
+            this.attachments = dataMessage.getAttachments()
+                    .get()
+                    .stream()
+                    .map(JsonAttachment::new)
+                    .collect(Collectors.toList());
         } else {
-            this.attachments = new ArrayList<>();
+            this.attachments = List.of();
+        }
+        if (dataMessage.getSticker().isPresent()) {
+            this.sticker = new JsonSticker(dataMessage.getSticker().get());
         }
     }
 
@@ -66,9 +70,10 @@ class JsonDataMessage {
         timestamp = messageReceived.getTimestamp();
         message = messageReceived.getMessage();
         groupInfo = new JsonGroupInfo(messageReceived.getGroupId());
-        reaction = null;    // TODO Replace these 3 with the proper commands
+        reaction = null;    // TODO Replace these 4 with the proper commands
         quote = null;
         mentions = null;
+        sticker = null;
         attachments = messageReceived.getAttachments().stream().map(JsonAttachment::new).collect(Collectors.toList());
     }
 
@@ -76,9 +81,10 @@ class JsonDataMessage {
         timestamp = messageReceived.getTimestamp();
         message = messageReceived.getMessage();
         groupInfo = new JsonGroupInfo(messageReceived.getGroupId());
-        reaction = null;    // TODO Replace these 3 with the proper commands
+        reaction = null;    // TODO Replace these 4 with the proper commands
         quote = null;
         mentions = null;
+        sticker = null;
         attachments = messageReceived.getAttachments().stream().map(JsonAttachment::new).collect(Collectors.toList());
     }
 }