From d01f9942fb77088d6f7f88505e1140e2009fd9f2 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sat, 24 Jun 2023 07:29:43 +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 --- .../legado/app/ui/login/SourceLoginDialog.kt | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt b/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt index 42fb8c82d..0af5e8491 100644 --- a/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt +++ b/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt @@ -15,6 +15,7 @@ import io.legado.app.data.entities.rule.RowUi import io.legado.app.databinding.DialogLoginBinding import io.legado.app.databinding.ItemFilletTextBinding import io.legado.app.databinding.ItemSourceEditBinding +import io.legado.app.help.coroutine.Coroutine import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.about.AppLogDialog @@ -77,22 +78,24 @@ class SourceLoginDialog : BaseDialogFragment(R.layout.dialog_login, true) { it.textView.text = rowUi.name it.textView.setPadding(16.dpToPx()) it.root.onClick { - if (rowUi.action.isAbsUrl()) { - context?.openUrl(rowUi.action!!) - } else { - // JavaScript - rowUi.action?.let { buttonFunctionJS -> - kotlin.runCatching { - source.getLoginJs()?.let { loginJS -> - source.evalJS("$loginJS\n$buttonFunctionJS") { - put("result", getLoginData(loginUi)) + Coroutine.async { + if (rowUi.action.isAbsUrl()) { + context?.openUrl(rowUi.action!!) + } else { + // JavaScript + rowUi.action?.let { buttonFunctionJS -> + kotlin.runCatching { + source.getLoginJs()?.let { loginJS -> + source.evalJS("$loginJS\n$buttonFunctionJS") { + put("result", getLoginData(loginUi)) + } } + }.onFailure { e -> + AppLog.put( + "LoginUI Button ${rowUi.name} JavaScript error", + e + ) } - }.onFailure { e -> - AppLog.put( - "LoginUI Button ${rowUi.name} JavaScript error", - e - ) } } }