pull/90/head^2
kunfei 5 years ago
parent 72bf906bd6
commit f37c24e550
  1. 8
      app/src/main/java/io/legado/app/help/storage/WebDavHelp.kt
  2. 4
      app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt
  3. 4
      app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt

@ -54,12 +54,12 @@ object WebDavHelp {
return names
}
suspend fun showRestoreDialog(context: Context): Boolean {
suspend fun showRestoreDialog(context: Context, restoreSuccess: () -> Unit): Boolean {
val names = withContext(IO) { getWebDavFileNames() }
return if (names.isNotEmpty()) {
context.selector(title = "选择恢复文件", items = names) { _, index ->
if (index in 0 until names.size) {
restoreWebDav(names[index])
restoreWebDav(names[index], restoreSuccess)
}
}
true
@ -68,7 +68,7 @@ object WebDavHelp {
}
}
private fun restoreWebDav(name: String) {
private fun restoreWebDav(name: String, success: () -> Unit) {
Coroutine.async {
getWebDavUrl()?.let {
val file = WebDav(it + "legado/" + name)
@ -77,6 +77,8 @@ object WebDavHelp {
ZipUtils.unzipFile(zipFilePath, unzipFilesPath)
Restore.restore(unzipFilesPath)
}
}.onSuccess {
success.invoke()
}
}

@ -158,7 +158,9 @@ class BackupConfigFragment : PreferenceFragmentCompat(),
fun restore() {
launch {
if (!WebDavHelp.showRestoreDialog(requireContext())) {
if (!WebDavHelp.showRestoreDialog(requireContext()) {
toast(R.string.restore_success)
}) {
val backupPath = getPrefString(PreferKey.backupPath)
if (backupPath?.isNotEmpty() == true) {
val uri = Uri.parse(backupPath)

@ -100,7 +100,9 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
fun restore() {
launch {
if (!WebDavHelp.showRestoreDialog(requireContext())) {
if (!WebDavHelp.showRestoreDialog(requireContext()) {
toast(R.string.restore_success)
}) {
val backupPath = getPrefString(PreferKey.backupPath)
if (backupPath?.isNotEmpty() == true) {
val uri = Uri.parse(backupPath)

Loading…
Cancel
Save