From dac8f178669b9c92167d137608d7c9484a3613db Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 4 Jun 2026 18:37:30 -0600 Subject: [PATCH 1/2] settings: migrate to kotlinx serialization --- .../cloudstream3/ui/settings/SettingsGeneral.kt | 16 +++++++--------- .../settings/extensions/ExtensionsViewModel.kt | 14 ++++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt index 57f5aa87098..56131eed580 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt @@ -10,7 +10,6 @@ import androidx.core.content.edit import androidx.core.os.ConfigurationCompat import androidx.fragment.app.Fragment import androidx.preference.PreferenceManager -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.allProviders import com.lagradost.cloudstream3.CloudStreamApp import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey @@ -48,6 +47,8 @@ import com.lagradost.cloudstream3.utils.USER_PROVIDER_API import com.lagradost.cloudstream3.utils.downloader.DownloadFileManagement import com.lagradost.cloudstream3.utils.downloader.DownloadFileManagement.getBasePath import com.lagradost.cloudstream3.utils.downloader.DownloadQueueManager +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable import java.util.Locale // Change local language settings in the app. @@ -145,15 +146,12 @@ class SettingsGeneral : BasePreferenceFragmentCompat() { setToolBarScrollFlags() } + @Serializable data class CustomSite( - @JsonProperty("parentJavaClass") // javaClass.simpleName - val parentJavaClass: String, - @JsonProperty("name") - val name: String, - @JsonProperty("url") - val url: String, - @JsonProperty("lang") - val lang: String, + @SerialName("parentJavaClass") val parentJavaClass: String, // javaClass.simpleName + @SerialName("name") val name: String, + @SerialName("url") val url: String, + @SerialName("lang") val lang: String, ) companion object { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt index 482251b7831..3d150549227 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.ui.settings.extensions import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.amap @@ -15,13 +14,16 @@ import com.lagradost.cloudstream3.plugins.RepositoryManager.PREBUILT_REPOSITORIE import com.lagradost.cloudstream3.utils.UiText import com.lagradost.cloudstream3.utils.txt import com.lagradost.cloudstream3.utils.Coroutines.ioSafe +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +@Serializable data class RepositoryData( - @JsonProperty("iconUrl") val iconUrl: String?, - @JsonProperty("name") val name: String, - @JsonProperty("url") val url: String -){ - constructor(name: String,url: String):this(null,name,url) + @SerialName("iconUrl") val iconUrl: String?, + @SerialName("name") val name: String, + @SerialName("url") val url: String, +) { + constructor(name: String, url: String): this(null, name, url) } const val REPOSITORIES_KEY = "REPOSITORIES_KEY" From 89de7d3393758030f1514e2065cf7ef4334ae009 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 18 Jun 2026 13:49:28 -0600 Subject: [PATCH 2/2] Keep all JsonProperty for now --- .../cloudstream3/ui/settings/SettingsGeneral.kt | 11 ++++++----- .../ui/settings/extensions/ExtensionsViewModel.kt | 9 +++++---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt index 56131eed580..4621a7b1f58 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsGeneral.kt @@ -10,6 +10,7 @@ import androidx.core.content.edit import androidx.core.os.ConfigurationCompat import androidx.fragment.app.Fragment import androidx.preference.PreferenceManager +import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder.allProviders import com.lagradost.cloudstream3.CloudStreamApp import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey @@ -135,7 +136,7 @@ fun Pair.nameNextToFlagEmoji(): String { // fallback to [A][A] -> [?] question mak flag val flag = SubtitleHelper.getFlagFromIso(this.second) ?: "\ud83c\udde6\ud83c\udde6" - return "$flag\u00a0${this.first}" // \u00a0 non-breaking space + return "$flag\u00a0${this.first}" // \u00a0 non-breaking space } class SettingsGeneral : BasePreferenceFragmentCompat() { @@ -148,10 +149,10 @@ class SettingsGeneral : BasePreferenceFragmentCompat() { @Serializable data class CustomSite( - @SerialName("parentJavaClass") val parentJavaClass: String, // javaClass.simpleName - @SerialName("name") val name: String, - @SerialName("url") val url: String, - @SerialName("lang") val lang: String, + @JsonProperty("parentJavaClass") @SerialName("parentJavaClass") val parentJavaClass: String, // javaClass.simpleName + @JsonProperty("name") @SerialName("name") val name: String, + @JsonProperty("url") @SerialName("url") val url: String, + @JsonProperty("lang") @SerialName("lang") val lang: String, ) companion object { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt index 3d150549227..af76b85efc9 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsViewModel.kt @@ -3,6 +3,7 @@ package com.lagradost.cloudstream3.ui.settings.extensions import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel +import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.CloudStreamApp.Companion.getKey import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.amap @@ -19,9 +20,9 @@ import kotlinx.serialization.Serializable @Serializable data class RepositoryData( - @SerialName("iconUrl") val iconUrl: String?, - @SerialName("name") val name: String, - @SerialName("url") val url: String, + @JsonProperty("iconUrl") @SerialName("iconUrl") val iconUrl: String?, + @JsonProperty("name") @SerialName("name") val name: String, + @JsonProperty("url") @SerialName("url") val url: String, ) { constructor(name: String, url: String): this(null, name, url) } @@ -92,4 +93,4 @@ class ExtensionsViewModel : ViewModel() { val urls = repos() _repositories.postValue(urls) } -} \ No newline at end of file +}