]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonQuote.java
Implement textStyles for sending and receiving
[signal-cli] / src / main / java / org / asamk / signal / json / JsonQuote.java
index 05dc8f41257026ecbeed6936c0be775c0f159bb9..94f3f52c04bc89e24a5466a1262dfe4bd1ef4b46 100644 (file)
@@ -4,10 +4,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 
 import org.asamk.signal.manager.api.MessageEnvelope;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
-import java.util.stream.Collectors;
 
 public record JsonQuote(
         long id,
@@ -16,27 +14,32 @@ public record JsonQuote(
         String authorUuid,
         String text,
         @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonMention> mentions,
-        List<JsonQuotedAttachment> attachments
+        List<JsonQuotedAttachment> attachments,
+        @JsonInclude(JsonInclude.Include.NON_NULL) List<JsonTextStyle> textStyles
 ) {
 
     static JsonQuote from(MessageEnvelope.Data.Quote quote) {
         final var id = quote.id();
         final var address = quote.author();
         final var author = address.getLegacyIdentifier();
-        final var authorNumber = address.getNumber().orElse(null);
-        final var authorUuid = address.getUuid().map(UUID::toString).orElse(null);
+        final var authorNumber = address.number().orElse(null);
+        final var authorUuid = address.uuid().map(UUID::toString).orElse(null);
         final var text = quote.text().orElse(null);
 
-        final var mentions = quote.mentions().size() > 0 ? quote.mentions()
-                .stream()
-                .map(JsonMention::from)
-                .collect(Collectors.toList()) : null;
+        final var mentions = quote.mentions().size() > 0
+                ? quote.mentions().stream().map(JsonMention::from).toList()
+                : null;
 
         final var attachments = quote.attachments().size() > 0 ? quote.attachments()
                 .stream()
                 .map(JsonQuotedAttachment::from)
-                .collect(Collectors.toList()) : new ArrayList<JsonQuotedAttachment>();
+                .toList() : List.<JsonQuotedAttachment>of();
+
+        final var textStyles = quote.textStyles().size() > 0 ? quote.textStyles()
+                .stream()
+                .map(JsonTextStyle::from)
+                .toList() : null;
 
-        return new JsonQuote(id, author, authorNumber, authorUuid, text, mentions, attachments);
+        return new JsonQuote(id, author, authorNumber, authorUuid, text, mentions, attachments, textStyles);
     }
 }