]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonStoryMessage.java
Prevent unnecessary compile warnings
[signal-cli] / src / main / java / org / asamk / signal / json / JsonStoryMessage.java
index 9fa3ea21a74a00301fb86f73537196cd89d531d6..c1ca61441a5e8fa204ffe80c20b3c35a8bd5af1b 100644 (file)
@@ -3,8 +3,10 @@ package org.asamk.signal.json;
 import com.fasterxml.jackson.annotation.JsonInclude;
 
 import org.asamk.signal.manager.api.Color;
+import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.api.MessageEnvelope;
-import org.asamk.signal.manager.groups.GroupId;
+
+import java.util.List;
 
 record JsonStoryMessage(
         boolean allowsReplies,
@@ -40,11 +42,20 @@ record JsonStoryMessage(
                     textAttachment.backgroundColor().map(Color::toHexColor).orElse(null));
         }
 
-        public record Gradient(String startColor, String endColor, Integer angle) {
+        public record Gradient(
+                String startColor, String endColor, List<String> colors, List<Float> positions, Integer angle
+        ) {
 
             static Gradient from(MessageEnvelope.Story.TextAttachment.Gradient gradient) {
-                return new Gradient(gradient.startColor().map(Color::toHexColor).orElse(null),
-                        gradient.endColor().map(Color::toHexColor).orElse(null),
+                final var isLegacyGradient = gradient.colors().size() == 2
+                        && gradient.positions().size() == 2
+                        && gradient.positions().get(0) == 0f
+                        && gradient.positions().get(1) == 1f;
+
+                return new Gradient(isLegacyGradient ? gradient.colors().get(0).toHexColor() : null,
+                        isLegacyGradient ? gradient.colors().get(1).toHexColor() : null,
+                        gradient.colors().stream().map(Color::toHexColor).toList(),
+                        gradient.positions(),
                         gradient.angle().orElse(null));
             }
         }