From 4f9e8c08401639f36a3ebd72cd5640f2a6075482 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 14 Oct 2022 12:36:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/association/FileAssociationActivity.kt | 3 ++- .../ui/book/import/BaseImportBookActivity.kt | 24 ++++++++++++++----- .../book/import/local/ImportBookActivity.kt | 10 ++++---- .../book/import/remote/RemoteBookActivity.kt | 13 ++++++---- 4 files changed, 35 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt b/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt index 69ef308bb..cf3b96bd6 100644 --- a/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt +++ b/app/src/main/java/io/legado/app/ui/association/FileAssociationActivity.kt @@ -33,7 +33,8 @@ class FileAssociationActivity : AppConfig.defaultBookTreeUri = treeUri.toString() importBook(treeUri, uri) } ?: let { - toastOnUi("不选择文件夹重启应用后可能没有权限访问") + val storageHelp = String(assets.open("storageHelp.md").readBytes()) + toastOnUi(storageHelp) viewModel.importBook(uri) } } diff --git a/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt index 12219caf1..182f6361f 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt @@ -7,21 +7,33 @@ import io.legado.app.base.VMBaseActivity import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.ui.document.HandleFileContract +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine -abstract class BaseImportBookActivity(): VMBaseActivity() { +abstract class BaseImportBookActivity : VMBaseActivity() { + + private var localBookTreeSelectListener: ((Boolean) -> Unit)? = null private val localBookTreeSelect = registerForActivityResult(HandleFileContract()) { it.uri?.let { treeUri -> AppConfig.defaultBookTreeUri = treeUri.toString() - } + localBookTreeSelectListener?.invoke(true) + } ?: localBookTreeSelectListener?.invoke(false) } /** * 设置书籍保存位置 */ - protected fun setBookStorage() { + protected suspend fun setBookStorage() = suspendCoroutine { block -> + AppConfig.defaultBookTreeUri = "" + localBookTreeSelectListener = { + block.resume(it) + } //测试书籍保存位置是否设置 - if (!AppConfig.defaultBookTreeUri.isNullOrBlank()) return + if (!AppConfig.defaultBookTreeUri.isNullOrBlank()) { + block.resume(true) + return@suspendCoroutine + } //测试读写?? val storageHelp = String(assets.open("storageHelp.md").readBytes()) val hint = getString(R.string.select_book_folder) @@ -33,10 +45,10 @@ abstract class BaseImportBookActivity(): VMBas } } noButton { - finish() + block.resume(false) } onCancelled { - finish() + block.resume(false) } } } diff --git a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt index 4e9cbb1db..2eafcce82 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt @@ -58,10 +58,12 @@ class ImportBookActivity : BaseImportBookActivity