X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ae41d0c5026fe868c6198e1005344fc78b6e0a2c..de273586b4106171a3940ce5ec2c2b3712430c8c:/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..a96fc534 100644 --- a/src/main/java/org/asamk/signal/json/JsonAttachment.java +++ b/src/main/java/org/asamk/signal/json/JsonAttachment.java @@ -1,31 +1,43 @@ package org.asamk.signal.json; +import com.fasterxml.jackson.annotation.JsonProperty; + import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; -import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; class JsonAttachment { - String contentType; - String filename; - String id; - int size; + @JsonProperty + final String contentType; + + @JsonProperty + final String filename; + + @JsonProperty + final String id; + + @JsonProperty + final Long size; 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(); - } + final var pointer = attachment.asPointer(); + this.id = pointer.getRemoteId().toString(); + this.filename = pointer.getFileName().orNull(); + this.size = pointer.getSize().transform(Integer::longValue).orNull(); + } else { + final var stream = attachment.asStream(); + this.id = null; + this.filename = stream.getFileName().orNull(); + this.size = stream.getLength(); } } JsonAttachment(String filename) { this.filename = filename; + this.contentType = null; + this.id = null; + this.size = null; } }