diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index 8dacf7093..76ddae1a8 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -59,7 +59,7 @@ object Libs { /** * https://github.com/square/retrofit */ - const val converter_simplexml: String = "com.squareup.retrofit2:converter-simplexml:" + + const val converter_jaxb: String = "com.squareup.retrofit2:converter-jaxb:" + Versions.com_squareup_retrofit2 /** diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 40d9e7f7d..94194816b 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -74,11 +74,7 @@ dependencies { implementation(Libs.select_folder_document_file) // Square - implementation(Libs.converter_simplexml) { - exclude(group = "xpp3", module = "xpp3") - exclude(group = "stax", module = "stax-api") - exclude(group = "stax", module = "stax") - } + implementation(Libs.converter_jaxb) // Leak canary debugImplementation(Libs.leakcanary_android) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/entity/LibraryNetworkEntity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/entity/LibraryNetworkEntity.kt index 0f894e138..acf9fe059 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/entity/LibraryNetworkEntity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/entity/LibraryNetworkEntity.kt @@ -17,66 +17,66 @@ */ package org.kiwix.kiwixmobile.core.entity -import org.simpleframework.xml.Attribute -import org.simpleframework.xml.ElementList -import org.simpleframework.xml.Root import java.io.File import java.io.Serializable import java.util.LinkedList +import javax.xml.bind.annotation.XmlAttribute +import javax.xml.bind.annotation.XmlElement +import javax.xml.bind.annotation.XmlRootElement -@Root(name = "library") +@XmlRootElement(name = "library") class LibraryNetworkEntity { - @field:ElementList(name = "book", inline = true, required = false) + @field:XmlElement(name = "book") var book: LinkedList? = null - @field:Attribute(name = "version", required = false) + @field:XmlAttribute(name = "version") var version: String? = null - @Root(name = "book", strict = false) + @XmlRootElement(name = "book") class Book : Serializable { - @field:Attribute(name = "id", required = false) + @field:XmlAttribute(name = "id") var id: String = "" - @field:Attribute(name = "title", required = false) + @field:XmlAttribute(name = "title") var title: String = "" - @field:Attribute(name = "description", required = false) + @field:XmlAttribute(name = "description") var description: String? = null - @field:Attribute(name = "language", required = false) + @field:XmlAttribute(name = "language") var language: String = "" - @field:Attribute(name = "creator", required = false) + @field:XmlAttribute(name = "creator") var creator: String = "" - @field:Attribute(name = "publisher", required = false) + @field:XmlAttribute(name = "publisher") var publisher: String = "" - @field:Attribute(name = "favicon", required = false) + @field:XmlAttribute(name = "favicon") var favicon: String = "" - @field:Attribute(name = "faviconMimeType", required = false) + @field:XmlAttribute(name = "faviconMimeType") var faviconMimeType: String? = null - @field:Attribute(name = "date", required = false) + @field:XmlAttribute(name = "date") var date: String = "" - @field:Attribute(name = "url", required = false) + @field:XmlAttribute(name = "url") var url: String? = null - @field:Attribute(name = "articleCount", required = false) + @field:XmlAttribute(name = "articleCount") var articleCount: String? = null - @field:Attribute(name = "mediaCount", required = false) + @field:XmlAttribute(name = "mediaCount") var mediaCount: String? = null - @field:Attribute(name = "size", required = false) + @field:XmlAttribute(name = "size") var size: String = "" - @field:Attribute(name = "name", required = false) + @field:XmlAttribute(name = "name") var bookName: String? = null - @field:Attribute(name = "tags", required = false) + @field:XmlAttribute(name = "tags") var tags: String? = null var searchMatches = 0 diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntity.kt index 80c58b886..4d64baaa5 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntity.kt @@ -17,30 +17,27 @@ */ package org.kiwix.kiwixmobile.core.entity -import org.simpleframework.xml.Attribute -import org.simpleframework.xml.Element -import org.simpleframework.xml.ElementList -import org.simpleframework.xml.ElementMap -import org.simpleframework.xml.Root -import org.simpleframework.xml.Text +import javax.xml.bind.annotation.XmlAttribute +import javax.xml.bind.annotation.XmlElement +import javax.xml.bind.annotation.XmlRootElement -@Root(strict = false, name = "metalink") +@XmlRootElement(name = "metalink") class MetaLinkNetworkEntity { - @field:Element + @field:XmlElement var file: FileElement? = null val urls: List? get() = file?.urls val relevantUrl: Url get() = file?.urls?.get(0) ?: Url() - @Root(strict = false) + @XmlRootElement() class FileElement { - @field:Attribute + @field:XmlAttribute var name: String? = null - @field:ElementList(inline = true, entry = "url") + @field:XmlElement(name = "url") var urls: List? = null - @field:Element var size: Long = 0 + @field:XmlElement var size: Long = 0 @field:ElementMap( entry = "hash", @@ -51,7 +48,7 @@ class MetaLinkNetworkEntity { ) var hashes: Map? = null - @field:Element(required = false) + @field:XmlElement(required = false) var pieces: Pieces? = null val pieceHashes: List? get() = pieces?.pieceHashes @@ -66,24 +63,24 @@ class MetaLinkNetworkEntity { } class Pieces { - @field:Attribute + @field:XmlAttribute var length = 0 - @field:Attribute(name = "type") + @field:XmlAttribute(name = "type") var hashType: String? = null - @field:ElementList(inline = true, entry = "hash") + @field:XmlElement(name = "hash") var pieceHashes: List? = null } class Url { - @field:Attribute + @field:XmlAttribute var location: String? = null - @field:Attribute + @field:XmlAttribute var priority = 0 - @field:Text + @field:XmlAttribute var value: String? = null } }