kunfei 3 years ago
parent
commit
da2e0802ca

+ 3 - 14
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<BookSource> {
-            return gson.fromJsonObject(json)
+            return GSON.fromJsonObject(json)
         }
 
         fun fromJsonArray(json: String): Result<List<BookSource>> {
-            return gson.fromJsonArray(json)
+            return GSON.fromJsonArray(json)
         }
 
         fun fromJsonArray(inputStream: InputStream): Result<List<BookSource>> {
-            return gson.fromJsonArray(inputStream)
+            return GSON.fromJsonArray(inputStream)
         }
 
     }

+ 7 - 0
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()