Horis 3 лет назад
Родитель
Сommit
16fc1e49d6
1 измененных файлов с 22 добавлено и 2 удалено
  1. 22 2
      app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleDialog.kt

+ 22 - 2
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