]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/MessageEnvelope.java
add JsonPayment (#808)
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / MessageEnvelope.java
index 776e9f32ee5a324f2d5e7bddd8b8c23113df77e0..f9484a011ba21c2039fd692250f5118e4100c4aa 100644 (file)
@@ -101,6 +101,7 @@ public record MessageEnvelope(
             boolean hasProfileKey,
             Optional<Reaction> reaction,
             Optional<Quote> quote,
+            Optional<Payment> payment,
             List<Attachment> attachments,
             Optional<Long> remoteDeleteId,
             Optional<Sticker> sticker,
@@ -130,6 +131,9 @@ public record MessageEnvelope(
                     Optional.ofNullable(dataMessage.getQuote()
                             .transform(q -> Quote.from(q, recipientResolver, addressResolver, fileProvider))
                             .orNull()),
+                    Optional.ofNullable(dataMessage.getPayment()
+                            .transform(p -> p.getPaymentNotification().isPresent() ? Payment.from(p) : null)
+                            .orNull()),
                     dataMessage.getAttachments()
                             .transform(a -> a.stream()
                                     .map(as -> Attachment.from(as, fileProvider))
@@ -229,6 +233,12 @@ public record MessageEnvelope(
             }
         }
 
+        public record Payment(String note, byte[] receipt) {
+            static Payment from(SignalServiceDataMessage.Payment payment) {
+                return new Payment(payment.getPaymentNotification().get().getNote(), payment.getPaymentNotification().get().getReceipt());
+            }
+        }
+
         public record Mention(RecipientAddress recipient, int start, int length) {
 
             static Mention from(