From 24687a44039ce35896503110b0642b5f27102d97 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:01:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20#5726?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/book/toc/rule/TxtTocRuleActivity.kt | 25 ++++++++++--------- .../app/ui/book/toc/rule/TxtTocRuleDialog.kt | 10 ++------ .../app/ui/dict/rule/DictRuleActivity.kt | 16 +++--------- .../app/ui/replace/ReplaceRuleActivity.kt | 20 ++++++--------- .../ui/rss/source/manage/RssSourceActivity.kt | 16 +++--------- 5 files changed, 28 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt b/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt index 6c27fb84b..d759b761d 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt @@ -29,13 +29,11 @@ import io.legado.app.utils.ACache import io.legado.app.utils.GSON import io.legado.app.utils.isAbsUrl import io.legado.app.utils.launch -import io.legado.app.utils.readText import io.legado.app.utils.sendToClip import io.legado.app.utils.setEdgeEffectColor import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showHelp import io.legado.app.utils.splitNotBlank -import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.flow.catch @@ -49,8 +47,8 @@ class TxtTocRuleActivity : VMBaseActivity() + override val binding by viewBinding(ActivityTxtTocRuleBinding::inflate) private val adapter: TxtTocRuleAdapter by lazy { TxtTocRuleAdapter(this, this) } @@ -60,12 +58,8 @@ class TxtTocRuleActivity : VMBaseActivity + showDialogFragment(ImportTxtTocRuleDialog(uri.toString())) } } private val exportResult = registerForActivityResult(HandleFileContract()) { @@ -136,6 +130,7 @@ class TxtTocRuleActivity : VMBaseActivity showImportDialog() R.id.menu_import_qr -> qrCodeResult.launch() R.id.menu_import_default -> viewModel.importDefault() @@ -245,8 +240,14 @@ class TxtTocRuleActivity : VMBaseActivity viewModel.enableSelection(*adapter.selection.toTypedArray()) - R.id.menu_disable_selection -> viewModel.disableSelection(*adapter.selection.toTypedArray()) + R.id.menu_enable_selection -> viewModel.enableSelection( + *adapter.selection.toTypedArray() + ) + + R.id.menu_disable_selection -> viewModel.disableSelection( + *adapter.selection.toTypedArray() + ) + R.id.menu_export_selection -> exportResult.launch { mode = HandleFileContract.EXPORT fileData = HandleFileContract.FileData( 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 dd31a7aac..4a44d23ad 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 @@ -35,12 +35,10 @@ import io.legado.app.utils.ACache import io.legado.app.utils.applyTint import io.legado.app.utils.isAbsUrl import io.legado.app.utils.launch -import io.legado.app.utils.readText import io.legado.app.utils.setLayout import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showHelp import io.legado.app.utils.splitNotBlank -import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.flow.catch @@ -72,12 +70,8 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex), showDialogFragment(ImportTxtTocRuleDialog(it)) } private val importDoc = registerForActivityResult(HandleFileContract()) { - kotlin.runCatching { - it.uri?.readText(requireContext())?.let { - showDialogFragment(ImportTxtTocRuleDialog(it)) - } - }.onFailure { - toastOnUi("readTextError:${it.localizedMessage}") + it.uri?.let { uri -> + showDialogFragment(ImportTxtTocRuleDialog(uri.toString())) } } diff --git a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt index 2f28f19ca..a9f73d6a9 100644 --- a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt @@ -30,13 +30,11 @@ import io.legado.app.utils.ACache import io.legado.app.utils.GSON import io.legado.app.utils.isAbsUrl import io.legado.app.utils.launch -import io.legado.app.utils.readText import io.legado.app.utils.sendToClip import io.legado.app.utils.setEdgeEffectColor import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showHelp import io.legado.app.utils.splitNotBlank -import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.flow.catch @@ -54,19 +52,11 @@ class DictRuleActivity : VMBaseActivity + showDialogFragment(ImportDictRuleDialog(uri.toString())) } } private val exportResult = registerForActivityResult(HandleFileContract()) { diff --git a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt index e5e9b66a7..9e40a580e 100644 --- a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt @@ -39,13 +39,11 @@ import io.legado.app.utils.GSON import io.legado.app.utils.applyTint import io.legado.app.utils.isAbsUrl import io.legado.app.utils.launch -import io.legado.app.utils.readText import io.legado.app.utils.sendToClip import io.legado.app.utils.setEdgeEffectColor import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showHelp import io.legado.app.utils.splitNotBlank -import io.legado.app.utils.toastOnUi import io.legado.app.utils.transaction import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.IO @@ -77,9 +75,7 @@ class ReplaceRuleActivity : VMBaseActivity + showDialogFragment(ImportReplaceRuleDialog(uri.toString())) } } private val exportResult = registerForActivityResult(HandleFileContract()) { @@ -201,6 +191,7 @@ class ReplaceRuleActivity : VMBaseActivity { appDb.replaceRuleDao.flowSearch("%$searchKey%") } @@ -231,6 +222,7 @@ class ReplaceRuleActivity : VMBaseActivity editActivity.launch(ReplaceEditActivity.startIntent(this)) + R.id.menu_group_manage -> showDialogFragment() R.id.menu_del_selection -> viewModel.delSelection(adapter.selection) R.id.menu_import_onLine -> showImportDialog() @@ -238,11 +230,13 @@ class ReplaceRuleActivity : VMBaseActivity qrCodeResult.launch() R.id.menu_help -> showHelp("replaceRuleHelp") R.id.menu_group_null -> { searchView.setQuery(getString(R.string.no_group), true) } + else -> if (item.groupId == R.id.replace_group) { searchView.setQuery("group:${item.title}", true) } diff --git a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt index 47a50011e..c36f9eed8 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt @@ -34,7 +34,6 @@ import io.legado.app.utils.applyTint import io.legado.app.utils.dpToPx import io.legado.app.utils.isAbsUrl import io.legado.app.utils.launch -import io.legado.app.utils.readText import io.legado.app.utils.sendToClip import io.legado.app.utils.setEdgeEffectColor import io.legado.app.utils.share @@ -42,7 +41,6 @@ import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showHelp import io.legado.app.utils.splitNotBlank import io.legado.app.utils.startActivity -import io.legado.app.utils.toastOnUi import io.legado.app.utils.transaction import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.IO @@ -73,19 +71,11 @@ class RssSourceActivity : VMBaseActivity + showDialogFragment(ImportRssSourceDialog(uri.toString())) } } private val exportResult = registerForActivityResult(HandleFileContract()) {