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

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

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

Loading…
Cancel
Save