kunfei 4 лет назад
Родитель
Сommit
9c41ba825b

+ 1 - 1
app/src/main/java/io/legado/app/App.kt

@@ -60,7 +60,7 @@ class App : MultiDexApplication() {
                 2 -> ChineseUtils.s2t("初始化")
             }
             //同步阅读记录
-            if (AppConfig.syncBookProgress) {
+            if (AppWebDav.isOk && AppConfig.syncBookProgress) {
                 AppWebDav.downloadAllBookProgress()
             }
         }

+ 15 - 7
app/src/main/java/io/legado/app/help/storage/AppWebDav.kt

@@ -17,6 +17,7 @@ import io.legado.app.lib.webdav.WebDav
 import io.legado.app.utils.*
 import kotlinx.coroutines.Dispatchers.IO
 import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withContext
 import splitties.init.appCtx
 import java.io.File
@@ -30,6 +31,12 @@ object AppWebDav {
 
     var isOk = false
 
+    init {
+        runBlocking {
+            initConfig()
+        }
+    }
+
     private val rootWebDavUrl: String
         get() {
             val configUrl = appCtx.getPrefString(PreferKey.webDavUrl)?.trim()
@@ -50,14 +57,15 @@ object AppWebDav {
             return "backup${backupDate}.zip"
         }
 
-    @Throws(Exception::class)
     suspend fun initConfig() {
-        isOk = false
-        val account = appCtx.getPrefString(PreferKey.webDavAccount)
-        val password = appCtx.getPrefString(PreferKey.webDavPassword)
-        if (!account.isNullOrBlank() && !password.isNullOrBlank()) {
-            HttpAuth.auth = HttpAuth.Auth(account, password)
-            isOk = WebDav(rootWebDavUrl).makeAsDir() && WebDav(bookProgressUrl).makeAsDir()
+        kotlin.runCatching {
+            isOk = false
+            val account = appCtx.getPrefString(PreferKey.webDavAccount)
+            val password = appCtx.getPrefString(PreferKey.webDavPassword)
+            if (!account.isNullOrBlank() && !password.isNullOrBlank()) {
+                HttpAuth.auth = HttpAuth.Auth(account, password)
+                isOk = WebDav(rootWebDavUrl).makeAsDir() && WebDav(bookProgressUrl).makeAsDir()
+            }
         }
     }