Horis 4 years ago
parent
commit
9b6d3c3064

+ 1 - 1
app/src/main/java/io/legado/app/ui/association/BaseAssociationViewModel.kt

@@ -21,7 +21,7 @@ abstract class BaseAssociationViewModel(application: Application) : BaseViewMode
         }
     }
 
-    fun importJson(json: String) {
+    private fun importJson(json: String) {
         //暂时根据文件内容判断属于什么
         when {
             json.contains("sourceUrl") ->

+ 16 - 2
app/src/main/java/io/legado/app/ui/association/OnLineImportViewModel.kt

@@ -1,12 +1,16 @@
 package io.legado.app.ui.association
 
 import android.app.Application
+import androidx.core.net.toUri
 import io.legado.app.R
 import io.legado.app.help.config.ReadBookConfig
 import io.legado.app.help.http.newCallResponseBody
 import io.legado.app.help.http.okHttpClient
 import io.legado.app.help.http.text
+import io.legado.app.utils.FileUtils
+import io.legado.app.utils.externalFiles
 import okhttp3.MediaType.Companion.toMediaType
+import splitties.init.appCtx
 
 class OnLineImportViewModel(app: Application) : BaseAssociationViewModel(app) {
 
@@ -72,8 +76,18 @@ class OnLineImportViewModel(app: Application) : BaseAssociationViewModel(app) {
                     importReadConfig(rs.bytes(), finally)
                 }
                 else -> {
-                    val json = rs.text("utf-8")
-                    importJson(json)
+                    val inputStream = rs.byteStream()
+                    val file = FileUtils.createFileIfNotExist(
+                        appCtx.externalFiles,
+                        "book_cache",
+                        "scheme_import_cache.json"
+                    )
+                    file.outputStream().use { out ->
+                        inputStream.use {
+                            it.copyTo(out)
+                        }
+                    }
+                    importJson(file.toUri())
                 }
             }
         }