From d88e7f331ab19fd14ea0b7595bed8409fc278876 Mon Sep 17 00:00:00 2001 From: Tlaster Date: Thu, 28 May 2020 15:16:02 +0800 Subject: [PATCH] Fix real size media for mastodon --- .../library/mastodon/model/Attachment.java | 51 +++++++++++++++++++ .../api/mastodon/AttachmentExtensions.kt | 2 + 2 files changed, 53 insertions(+) diff --git a/twidere.component.common/src/main/java/org/mariotaku/microblog/library/mastodon/model/Attachment.java b/twidere.component.common/src/main/java/org/mariotaku/microblog/library/mastodon/model/Attachment.java index de8132687..2a45b9f9b 100644 --- a/twidere.component.common/src/main/java/org/mariotaku/microblog/library/mastodon/model/Attachment.java +++ b/twidere.component.common/src/main/java/org/mariotaku/microblog/library/mastodon/model/Attachment.java @@ -18,8 +18,11 @@ package org.mariotaku.microblog.library.mastodon.model; +import androidx.annotation.Nullable; + import com.bluelinelabs.logansquare.annotation.JsonField; import com.bluelinelabs.logansquare.annotation.JsonObject; +import com.hannesdorfmann.parcelableplease.annotation.ParcelableThisPlease; /** * {@see https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md#attachment} @@ -59,6 +62,9 @@ public class Attachment { @JsonField(name = "text_url") String textUrl; + @JsonField(name = "meta") + MetaInfo meta; + public String getId() { return id; } @@ -83,6 +89,51 @@ public class Attachment { return textUrl; } + public MetaInfo getMeta() { + return meta; + } + + @JsonObject + public static class MetaInfo { + + @ParcelableThisPlease + @JsonField(name = "focus") + @Nullable + public FocusInfo focus; + @ParcelableThisPlease + @JsonField(name = "original") + @Nullable + public MetaDataInfo original; + @ParcelableThisPlease + @JsonField(name = "small") + @Nullable + public MetaDataInfo small; + + @JsonObject + public static class FocusInfo { + @ParcelableThisPlease + @JsonField(name = "x") + public float x; + @ParcelableThisPlease + @JsonField(name = "y") + public float y; + } + + @JsonObject + public static class MetaDataInfo { + @ParcelableThisPlease + @JsonField(name = "width") + public long width; + @ParcelableThisPlease + @JsonField(name = "height") + public long height; + @ParcelableThisPlease + @JsonField(name = "aspect") + public float aspect; + } + + + } @Override public String toString() { return "Attachment{" + diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/mastodon/AttachmentExtensions.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/mastodon/AttachmentExtensions.kt index 4d8b5a842..1390e82d8 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/mastodon/AttachmentExtensions.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/model/api/mastodon/AttachmentExtensions.kt @@ -38,6 +38,8 @@ fun Attachment.toParcelable(): ParcelableMedia { "gifv" -> ParcelableMedia.Type.ANIMATED_GIF else -> ParcelableMedia.Type.UNKNOWN } + result.height = meta?.original?.height?.toInt() ?: 0 + result.width = meta?.original?.width?.toInt() ?: 0 result.url = url ?: remoteUrl result.media_url = result.url result.preview_url = previewUrl