]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonReceiptMessage.java
Workaround possible GraalVM issue
[signal-cli] / src / main / java / org / asamk / signal / json / JsonReceiptMessage.java
index 1b896053efe26a979985c987a2ba9290d7cc2819..ec61b2f166da26485f9487aa6b4bd3117733a4cd 100644 (file)
@@ -1,25 +1,17 @@
 package org.asamk.signal.json;
 
-import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
+import org.asamk.signal.manager.api.MessageEnvelope;
 
 import java.util.List;
 
-class JsonReceiptMessage {
+record JsonReceiptMessage(long when, boolean isDelivery, boolean isRead, boolean isViewed, List<Long> timestamps) {
 
-    long when;
-    boolean isDelivery;
-    boolean isRead;
-    List<Long> timestamps;
-
-    JsonReceiptMessage(SignalServiceReceiptMessage receiptMessage) {
-
-        this.when = receiptMessage.getWhen();
-        if (receiptMessage.isDeliveryReceipt()) {
-            this.isDelivery = true;
-        }
-        if (receiptMessage.isReadReceipt()) {
-            this.isRead = true;
-        }
-        this.timestamps = receiptMessage.getTimestamps();
+    static JsonReceiptMessage from(MessageEnvelope.Receipt receiptMessage) {
+        final var when = receiptMessage.when();
+        final var isDelivery = receiptMessage.type() == MessageEnvelope.Receipt.Type.DELIVERY;
+        final var isRead = receiptMessage.type() == MessageEnvelope.Receipt.Type.READ;
+        final var isViewed = receiptMessage.type() == MessageEnvelope.Receipt.Type.VIEWED;
+        final var timestamps = receiptMessage.timestamps();
+        return new JsonReceiptMessage(when, isDelivery, isRead, isViewed, timestamps);
     }
 }