修复恢复报错bug

pull/302/head
gedoor 5 years ago
parent 775ddbcf25
commit e5c336ee29
  1. 8
      app/src/main/java/io/legado/app/help/storage/WebDavHelp.kt
  2. 7
      app/src/main/java/io/legado/app/ui/config/BackupRestoreUi.kt

@ -70,7 +70,7 @@ object WebDavHelp {
return names
}
suspend fun showRestoreDialog(context: Context, restoreSuccess: () -> Unit): Boolean {
suspend fun showRestoreDialog(context: Context): Boolean {
val names = withContext(IO) { getWebDavFileNames() }
return if (names.isNotEmpty()) {
withContext(Main) {
@ -79,7 +79,7 @@ object WebDavHelp {
items = names
) { _, index ->
if (index in 0 until names.size) {
restoreWebDav(names[index], restoreSuccess)
restoreWebDav(names[index])
}
}
}
@ -89,7 +89,7 @@ object WebDavHelp {
}
}
private fun restoreWebDav(name: String, success: () -> Unit) {
private fun restoreWebDav(name: String) {
Coroutine.async {
rootWebDavUrl.let {
if (name == SyncBookProgress.fileName) {
@ -103,8 +103,6 @@ object WebDavHelp {
Restore.restoreConfig()
}
}
}.onSuccess {
success.invoke()
}.onError {
App.INSTANCE.toast("WebDavError:${it.localizedMessage}")
}

@ -77,9 +77,8 @@ object BackupRestoreUi {
fun restore(fragment: Fragment) {
Coroutine.async(context = Main) {
if (!WebDavHelp.showRestoreDialog(fragment.requireContext()) {
fragment.toast(R.string.restore_success)
}) {
val restoreFromWebDav = WebDavHelp.showRestoreDialog(fragment.requireContext())
if (!restoreFromWebDav) {
val backupPath = fragment.getPrefString(PreferKey.backupPath)
if (backupPath?.isNotEmpty() == true) {
if (backupPath.isContentPath()) {
@ -113,8 +112,6 @@ object BackupRestoreUi {
AppConfig.backupPath = path
Restore.restoreDatabase(path)
Restore.restoreConfig(path)
}.onSuccess {
fragment.toast(R.string.restore_success)
}
}
.request()

Loading…
Cancel
Save