From f2c75441c560e3976e10e16ca946dd49482fc002 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Tue, 21 Feb 2023 18:03:06 +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 --- .../app/ui/book/toc/rule/TxtTocRuleDialog.kt | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleDialog.kt b/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleDialog.kt index 7d709e716..ceceb4f71 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleDialog.kt @@ -24,6 +24,8 @@ import io.legado.app.lib.theme.backgroundColor import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadBook import io.legado.app.ui.association.ImportTxtTocRuleDialog +import io.legado.app.ui.document.HandleFileContract +import io.legado.app.ui.qrcode.QrCodeResult import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.ui.widget.recycler.ItemTouchCallback import io.legado.app.ui.widget.recycler.VerticalDivider @@ -52,6 +54,19 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex), private val adapter by lazy { TocRegexAdapter(requireContext()) } var selectedName: String? = null private var durRegex: String? = null + private val qrCodeResult = registerForActivityResult(QrCodeResult()) { + it ?: return@registerForActivityResult + showDialogFragment(ImportTxtTocRuleDialog(it)) + } + private val importDoc = registerForActivityResult(HandleFileContract()) { + kotlin.runCatching { + it.uri?.readText(requireContext())?.let { + showDialogFragment(ImportTxtTocRuleDialog(it)) + } + }.onFailure { + toastOnUi("readTextError:${it.localizedMessage}") + } + } override fun onStart() { super.onStart() @@ -118,8 +133,13 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex), override fun onMenuItemClick(item: MenuItem?): Boolean { when (item?.itemId) { R.id.menu_add -> showDialogFragment(TxtTocRuleEditDialog()) - R.id.menu_default -> viewModel.importDefault() - R.id.menu_import -> showImportDialog() + R.id.menu_import_local -> importDoc.launch { + mode = HandleFileContract.FILE + allowExtensions = arrayOf("txt", "json") + } + R.id.menu_import_onLine -> showImportDialog() + R.id.menu_import_qr -> qrCodeResult.launch() + R.id.menu_import_default -> viewModel.importDefault() R.id.menu_split_long_chapter -> { ReadBook.book?.setSplitLongChapter(!item.isChecked) item.isChecked = !item.isChecked