]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonReaction.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonReaction.java
index 5e978fe09adbe0bd2dd2e15d1fe6468816c2af1f..9dc645919aa4ec061769423c57d40e974fd2e840 100644 (file)
@@ -3,17 +3,30 @@ package org.asamk.signal.json;
 import org.asamk.signal.manager.Manager;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage.Reaction;
 
-public class JsonReaction {
+import static org.asamk.signal.util.Util.getLegacyIdentifier;
 
-    String emoji;
-    String targetAuthor;
-    long targetSentTimestamp;
-    boolean isRemove;
+public record JsonReaction(
+        String emoji,
+        @Deprecated String targetAuthor,
+        String targetAuthorNumber,
+        String targetAuthorUuid,
+        long targetSentTimestamp,
+        boolean isRemove
+) {
 
-    JsonReaction(Reaction reaction, Manager m) {
-        this.emoji = reaction.getEmoji();
-        this.targetAuthor = m.resolveSignalServiceAddress(reaction.getTargetAuthor()).getLegacyIdentifier();
-        this.targetSentTimestamp = reaction.getTargetSentTimestamp();
-        this.isRemove = reaction.isRemove();
+    static JsonReaction from(Reaction reaction, Manager m) {
+        final var emoji = reaction.getEmoji();
+        final var address = m.resolveSignalServiceAddress(reaction.getTargetAuthor());
+        final var targetAuthor = getLegacyIdentifier(address);
+        final var targetAuthorNumber = address.getNumber().orNull();
+        final var targetAuthorUuid = address.getUuid().toString();
+        final var targetSentTimestamp = reaction.getTargetSentTimestamp();
+        final var isRemove = reaction.isRemove();
+        return new JsonReaction(emoji,
+                targetAuthor,
+                targetAuthorNumber,
+                targetAuthorUuid,
+                targetSentTimestamp,
+                isRemove);
     }
 }