Replace SimpleXmlConverterFactory to JAXB coverter

This commit is contained in:
MohitMali 2022-11-23 19:24:25 +05:30
parent 120cbcf86e
commit f9c2c37340
4 changed files with 40 additions and 47 deletions

View File

@ -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
/**

View File

@ -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)

View File

@ -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<Book>? = 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

View File

@ -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<Url>?
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<Url>? = 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<String, String>? = null
@field:Element(required = false)
@field:XmlElement(required = false)
var pieces: Pieces? = null
val pieceHashes: List<String>?
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<String>? = 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
}
}