X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ae41d0c5026fe868c6198e1005344fc78b6e0a2c..3533500b736ce382b9cc1d53d29ff267324bf4be:/src/main/java/org/asamk/signal/json/JsonAttachment.java diff --git a/src/main/java/org/asamk/signal/json/JsonAttachment.java b/src/main/java/org/asamk/signal/json/JsonAttachment.java index 8a405fc4..c75b3987 100644 --- a/src/main/java/org/asamk/signal/json/JsonAttachment.java +++ b/src/main/java/org/asamk/signal/json/JsonAttachment.java @@ -1,31 +1,34 @@ package org.asamk.signal.json; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; +import org.asamk.signal.manager.api.MessageEnvelope; -class JsonAttachment { +record JsonAttachment( + String contentType, + String filename, + String id, + Long size, + Integer width, + Integer height, + String caption, + Long uploadTimestamp +) { - String contentType; - String filename; - String id; - int size; + static JsonAttachment from(MessageEnvelope.Data.Attachment attachment) { + final var id = attachment.id().orElse(null); + final var filename = attachment.fileName().orElse(null); + final var size = attachment.size().orElse(null); + final var width = attachment.width().orElse(null); + final var height = attachment.height().orElse(null); + final var caption = attachment.caption().orElse(null); + final var uploadTimestamp = attachment.uploadTimestamp().orElse(null); - JsonAttachment(SignalServiceAttachment attachment) { - this.contentType = attachment.getContentType(); - - final SignalServiceAttachmentPointer pointer = attachment.asPointer(); - if (attachment.isPointer()) { - this.id = String.valueOf(pointer.getId()); - if (pointer.getFileName().isPresent()) { - this.filename = pointer.getFileName().get(); - } - if (pointer.getSize().isPresent()) { - this.size = pointer.getSize().get(); - } - } - } - - JsonAttachment(String filename) { - this.filename = filename; + return new JsonAttachment(attachment.contentType(), + filename, + id, + size, + width, + height, + caption, + uploadTimestamp); } }