diff --git a/app/src/main/java/io/legado/app/data/entities/BookSource.kt b/app/src/main/java/io/legado/app/data/entities/BookSource.kt index a89751db0..0abab30ac 100644 --- a/app/src/main/java/io/legado/app/data/entities/BookSource.kt +++ b/app/src/main/java/io/legado/app/data/entities/BookSource.kt @@ -222,27 +222,16 @@ data class BookSource( companion object { - private val gson by lazy { - GSON.newBuilder() - .registerTypeAdapter(ExploreRule::class.java, ExploreRule.jsonDeserializer) - .registerTypeAdapter(SearchRule::class.java, SearchRule.jsonDeserializer) - .registerTypeAdapter(BookInfoRule::class.java, BookInfoRule.jsonDeserializer) - .registerTypeAdapter(TocRule::class.java, TocRule.jsonDeserializer) - .registerTypeAdapter(ContentRule::class.java, ContentRule.jsonDeserializer) - .registerTypeAdapter(ReviewRule::class.java, ReviewRule.jsonDeserializer) - .create() - } - fun fromJson(json: String): Result { - return gson.fromJsonObject(json) + return GSON.fromJsonObject(json) } fun fromJsonArray(json: String): Result> { - return gson.fromJsonArray(json) + return GSON.fromJsonArray(json) } fun fromJsonArray(inputStream: InputStream): Result> { - return gson.fromJsonArray(inputStream) + return GSON.fromJsonArray(inputStream) } } diff --git a/app/src/main/java/io/legado/app/utils/GsonExtensions.kt b/app/src/main/java/io/legado/app/utils/GsonExtensions.kt index f42bbab31..21be285bb 100644 --- a/app/src/main/java/io/legado/app/utils/GsonExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/GsonExtensions.kt @@ -4,6 +4,7 @@ import com.google.gson.* import com.google.gson.internal.LinkedTreeMap import com.google.gson.reflect.TypeToken import com.google.gson.stream.JsonWriter +import io.legado.app.data.entities.rule.* import java.io.InputStream import java.io.InputStreamReader import java.io.OutputStream @@ -21,6 +22,12 @@ val GSON: Gson by lazy { ) .registerTypeAdapter(Int::class.java, IntJsonDeserializer()) .registerTypeAdapter(String::class.java, StringJsonDeserializer()) + .registerTypeAdapter(ExploreRule::class.java, ExploreRule.jsonDeserializer) + .registerTypeAdapter(SearchRule::class.java, SearchRule.jsonDeserializer) + .registerTypeAdapter(BookInfoRule::class.java, BookInfoRule.jsonDeserializer) + .registerTypeAdapter(TocRule::class.java, TocRule.jsonDeserializer) + .registerTypeAdapter(ContentRule::class.java, ContentRule.jsonDeserializer) + .registerTypeAdapter(ReviewRule::class.java, ReviewRule.jsonDeserializer) .disableHtmlEscaping() .setPrettyPrinting() .create()