diff --git a/app/src/main/java/com/github/libretube/obj/update/Asset.kt b/app/src/main/java/com/github/libretube/obj/update/Asset.kt index 1388df1c1..2f00db85c 100644 --- a/app/src/main/java/com/github/libretube/obj/update/Asset.kt +++ b/app/src/main/java/com/github/libretube/obj/update/Asset.kt @@ -1,20 +1,22 @@ package com.github.libretube.obj.update -import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import kotlinx.datetime.Instant +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable -@JsonIgnoreProperties(ignoreUnknown = true) +@Serializable data class Asset( - val browser_download_url: String? = null, - val content_type: String? = null, - val created_at: String? = null, - val download_count: Int? = null, - val id: Int? = null, - val label: Any? = null, - val name: String? = null, - val node_id: String? = null, - val size: Int? = null, - val state: String? = null, - val updated_at: String? = null, - val uploader: Uploader? = null, - val url: String? = null + @SerialName("browser_download_url") val browserDownloadUrl: String, + @SerialName("content_type") val contentType: String, + @SerialName("created_at") val createdAt: Instant, + @SerialName("download_count") val downloadCount: Int, + val id: Int, + val label: String? = null, + val name: String, + @SerialName("node_id") val nodeId: String, + val size: Int, + val state: String, + @SerialName("updated_at") val updatedAt: Instant, + val uploader: User, + val url: String ) diff --git a/app/src/main/java/com/github/libretube/obj/update/Author.kt b/app/src/main/java/com/github/libretube/obj/update/Author.kt deleted file mode 100644 index ae61b7660..000000000 --- a/app/src/main/java/com/github/libretube/obj/update/Author.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.libretube.obj.update - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties - -@JsonIgnoreProperties(ignoreUnknown = true) -data class Author( - val avatar_url: String? = null, - val events_url: String? = null, - val followers_url: String? = null, - val following_url: String? = null, - val gists_url: String? = null, - val gravatar_id: String? = null, - val html_url: String? = null, - val id: Int? = null, - val login: String? = null, - val node_id: String? = null, - val organizations_url: String? = null, - val received_events_url: String? = null, - val repos_url: String? = null, - val site_admin: Boolean? = null, - val starred_url: String? = null, - val subscriptions_url: String? = null, - val type: String? = null, - val url: String? = null -) diff --git a/app/src/main/java/com/github/libretube/obj/update/Reactions.kt b/app/src/main/java/com/github/libretube/obj/update/Reactions.kt index 0ec667860..01cfdc21e 100644 --- a/app/src/main/java/com/github/libretube/obj/update/Reactions.kt +++ b/app/src/main/java/com/github/libretube/obj/update/Reactions.kt @@ -1,15 +1,16 @@ package com.github.libretube.obj.update -import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable -@JsonIgnoreProperties(ignoreUnknown = true) +@Serializable data class Reactions( - val confused: Int? = null, - val eyes: Int? = null, - val heart: Int? = null, - val hooray: Int? = null, - val laugh: Int? = null, - val rocket: Int? = null, - val total_count: Int? = null, - val url: String? = null + val confused: Int, + val eyes: Int, + val heart: Int, + val hooray: Int, + val laugh: Int, + val rocket: Int, + @SerialName("total_count") val totalCount: Int, + val url: String ) diff --git a/app/src/main/java/com/github/libretube/obj/update/UpdateInfo.kt b/app/src/main/java/com/github/libretube/obj/update/UpdateInfo.kt index 8491dc734..6d166add7 100644 --- a/app/src/main/java/com/github/libretube/obj/update/UpdateInfo.kt +++ b/app/src/main/java/com/github/libretube/obj/update/UpdateInfo.kt @@ -1,27 +1,29 @@ package com.github.libretube.obj.update -import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import kotlinx.datetime.Instant +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable -@JsonIgnoreProperties(ignoreUnknown = true) +@Serializable data class UpdateInfo( - val assets: List? = null, - val assets_url: String? = null, - val author: Author? = null, - val body: String? = null, - val created_at: String? = null, - val draft: Boolean? = null, - val html_url: String? = null, - val id: Int? = null, - val mentions_count: Int? = null, - val name: String? = null, - val node_id: String? = null, - val prerelease: Boolean? = null, - val published_at: String? = null, - val reactions: Reactions? = null, - val tag_name: String? = null, - val tarball_url: String? = null, - val target_commitish: String? = null, - val upload_url: String? = null, - val url: String? = null, - val zipball_url: String? = null + val assets: List = emptyList(), + @SerialName("assets_url") val assetsUrl: String, + val author: User, + val body: String, + @SerialName("created_at") val createdAt: Instant, + val draft: Boolean, + @SerialName("html_url") val htmlUrl: String, + val id: Int, + @SerialName("mentions_count") val mentionsCount: Int, + val name: String, + @SerialName("node_id") val nodeId: String, + val prerelease: Boolean, + @SerialName("published_at") val publishedAt: Instant, + val reactions: Reactions, + @SerialName("tag_name") val tagName: String, + @SerialName("tarball_url") val tarballUrl: String, + @SerialName("target_commitish") val targetCommitish: String, + @SerialName("upload_url") val uploadUrl: String, + val url: String, + @SerialName("zipball_url") val zipballUrl: String ) diff --git a/app/src/main/java/com/github/libretube/obj/update/Uploader.kt b/app/src/main/java/com/github/libretube/obj/update/Uploader.kt deleted file mode 100644 index 9dc63930b..000000000 --- a/app/src/main/java/com/github/libretube/obj/update/Uploader.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.libretube.obj.update - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties - -@JsonIgnoreProperties(ignoreUnknown = true) -data class Uploader( - val avatar_url: String? = null, - val events_url: String? = null, - val followers_url: String? = null, - val following_url: String? = null, - val gists_url: String? = null, - val gravatar_id: String? = null, - val html_url: String? = null, - val id: Int? = null, - val login: String? = null, - val node_id: String? = null, - val organizations_url: String? = null, - val received_events_url: String? = null, - val repos_url: String? = null, - val site_admin: Boolean? = null, - val starred_url: String? = null, - val subscriptions_url: String? = null, - val type: String? = null, - val url: String? = null -) diff --git a/app/src/main/java/com/github/libretube/obj/update/User.kt b/app/src/main/java/com/github/libretube/obj/update/User.kt new file mode 100644 index 000000000..b2103e904 --- /dev/null +++ b/app/src/main/java/com/github/libretube/obj/update/User.kt @@ -0,0 +1,26 @@ +package com.github.libretube.obj.update + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class User( + @SerialName("avatar_url") val avatarUrl: String, + @SerialName("events_url") val eventsUrl: String, + @SerialName("followers_url") val followersUrl: String, + @SerialName("following_url") val followingUrl: String, + @SerialName("gists_url") val gistsUrl: String, + @SerialName("gravatar_id") val gravatarId: String, + @SerialName("html_url") val htmlUrl: String, + val id: Int, + val login: String, + @SerialName("node_id") val nodeId: String, + @SerialName("organizations_url") val organizationsUrl: String, + @SerialName("received_events_url") val receivedEventsUrl: String, + @SerialName("repos_url") val reposUrl: String, + @SerialName("site_admin") val siteAdmin: Boolean, + @SerialName("starred_url") val starredUrl: String, + @SerialName("subscriptions_url") val subscriptionsUrl: String, + val type: String, + val url: String +) diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/UpdateDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/UpdateDialog.kt index 88c1d636d..43c2acf51 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/UpdateDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/UpdateDialog.kt @@ -29,7 +29,7 @@ class UpdateDialog( intent.putExtra("downloadUrl", downloadUrl) context?.startService(intent) } else { - val uri = Uri.parse(updateInfo.html_url) + val uri = Uri.parse(updateInfo.htmlUrl) val intent = Intent(Intent.ACTION_VIEW).setData(uri) startActivity(intent) } @@ -40,8 +40,10 @@ class UpdateDialog( private fun getDownloadUrl(updateInfo: UpdateInfo): String? { val supportedArchitectures = Build.SUPPORTED_ABIS supportedArchitectures.forEach { arch -> - updateInfo.assets?.forEach { asset -> - if (asset.name?.contains(arch) == true) return asset.browser_download_url + updateInfo.assets.forEach { asset -> + if (asset.name.contains(arch)) { + return asset.browserDownloadUrl + } } } return null