"allDeclaredMethods":true,
"allDeclaredConstructors":true}
,
+{
+ "name":"org.asamk.signal.json.JsonPayment",
+ "allDeclaredFields":true,
+ "queryAllDeclaredMethods":true,
+ "queryAllDeclaredConstructors":true,
+ "methods":[
+ {"name":"note","parameterTypes":[] },
+ {"name":"receipt","parameterTypes":[] }
+ ]}
+,
{
"name":"org.asamk.signal.json.JsonQuote",
"allDeclaredFields":true,
{"name":"eraId_"}
]}
,
+{
+ "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Payment",
+ "fields":[
+ {"name":"itemCase_"},
+ {"name":"item_"}
+ ]}
+,
+{
+ "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Payment$Notification",
+ "fields":[
+ {"name":"bitField0_"},
+ {"name":"note_"},
+ {"name":"transactionCase_"},
+ {"name":"transaction_"}
+ ]}
+,
+{
+ "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Payment$Notification$MobileCoin",
+ "fields":[
+ {"name":"bitField0_"},
+ {"name":"receipt_"}
+ ]}
+,
{
"name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Preview",
"fields":[
boolean hasProfileKey,
Optional<Reaction> reaction,
Optional<Quote> quote,
+ Optional<Payment> payment,
List<Attachment> attachments,
Optional<Long> remoteDeleteId,
Optional<Sticker> sticker,
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))
}
}
+ 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(
false,
Optional.empty(),
Optional.empty(),
+ Optional.empty(),
getAttachments(extras),
Optional.empty(),
Optional.empty(),
false,
Optional.empty(),
Optional.empty(),
+ Optional.empty(),
getAttachments(extras),
Optional.empty(),
Optional.empty(),
@JsonInclude(JsonInclude.Include.NON_NULL) Boolean viewOnce,
@JsonInclude(JsonInclude.Include.NON_NULL) JsonReaction reaction,
@JsonInclude(JsonInclude.Include.NON_NULL) JsonQuote quote,
+ @JsonInclude(JsonInclude.Include.NON_NULL) JsonPayment payment,
@JsonInclude(JsonInclude.Include.NON_NULL) List<JsonMention> mentions,
@JsonInclude(JsonInclude.Include.NON_NULL) List<JsonAttachment> attachments,
@JsonInclude(JsonInclude.Include.NON_NULL) JsonSticker sticker,
final var viewOnce = dataMessage.isViewOnce();
final var reaction = dataMessage.reaction().map(JsonReaction::from).orElse(null);
final var quote = dataMessage.quote().isPresent() ? JsonQuote.from(dataMessage.quote().get()) : null;
+ final var payment = dataMessage.payment().isPresent() ? JsonPayment.from(dataMessage.payment().get()) : null;
final var mentions = dataMessage.mentions().size() > 0 ? dataMessage.mentions()
.stream()
.map(JsonMention::from)
viewOnce,
reaction,
quote,
+ payment,
mentions,
attachments,
sticker,
null,
null,
null,
+ null,
messageReceived.getAttachments().stream().map(JsonAttachment::from).collect(Collectors.toList()),
null,
null,
null,
null,
null,
+ null,
messageReceived.getAttachments().stream().map(JsonAttachment::from).collect(Collectors.toList()),
null,
null,
--- /dev/null
+package org.asamk.signal.json;
+
+import org.asamk.signal.manager.api.MessageEnvelope;
+
+public record JsonPayment(String note, byte[] receipt) {
+ static JsonPayment from(MessageEnvelope.Data.Payment payment) {
+ return new JsonPayment(payment.note(), payment.receipt());
+ }
+}