From cd24ee8f268f6f73d47cec6e3311a2b4b0841d2a Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Mon, 24 Feb 2025 14:18:24 +0100 Subject: [PATCH] open remote url for unknown attachments (#4941) closes https://github.com/tuskyapp/Tusky/issues/4729 --- .../tusky/components/account/media/AccountMediaFragment.kt | 2 +- .../components/search/fragments/SearchStatusesFragment.kt | 2 +- .../main/java/com/keylesspalace/tusky/entity/Attachment.kt | 6 ++++++ .../main/java/com/keylesspalace/tusky/fragment/SFragment.kt | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt index fb87827b7..343e1fa3e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/account/media/AccountMediaFragment.kt @@ -206,7 +206,7 @@ class AccountMediaFragment : } } Attachment.Type.UNKNOWN -> { - context?.openLink(selected.attachment.url) + context?.openLink(selected.attachment.unknownUrl) } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt index 7104a74e8..25b7285f6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt @@ -216,7 +216,7 @@ class SearchStatusesFragment : SearchFragment(), Status } Attachment.Type.UNKNOWN -> { - context?.openLink(status.attachments[attachmentIndex].url) + context?.openLink(status.attachments[attachmentIndex].unknownUrl) } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/entity/Attachment.kt b/app/src/main/java/com/keylesspalace/tusky/entity/Attachment.kt index 553d6a8b3..57c1c6e42 100644 --- a/app/src/main/java/com/keylesspalace/tusky/entity/Attachment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/entity/Attachment.kt @@ -27,12 +27,18 @@ data class Attachment( val url: String, // can be null for e.g. audio attachments @Json(name = "preview_url") val previewUrl: String? = null, + // null when local attachment + @Json(name = "remote_url") val remoteUrl: String? = null, val meta: MetaData? = null, val type: Type, val description: String? = null, val blurhash: String? = null ) : Parcelable { + /** The url to open for attachments of unknown type */ + val unknownUrl: String + get() = remoteUrl ?: url + @JsonClass(generateAdapter = false) enum class Type { @Json(name = "image") diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt index b5f07884e..99263eb78 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt @@ -414,7 +414,7 @@ abstract class SFragment(@LayoutRes contentLayoutId: Int) : Fragment(contentLayo } Attachment.Type.UNKNOWN -> { - requireContext().openLink(attachment.url) + requireContext().openLink(attachment.unknownUrl) } } }