Horis 3 tahun lalu
induk
melakukan
220cf1db88
1 mengubah file dengan 17 tambahan dan 14 penghapusan
  1. 17 14
      app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt

+ 17 - 14
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.DialogLoginBinding
 import io.legado.app.databinding.ItemFilletTextBinding
 import io.legado.app.databinding.ItemFilletTextBinding
 import io.legado.app.databinding.ItemSourceEditBinding
 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.dialogs.alert
 import io.legado.app.lib.theme.primaryColor
 import io.legado.app.lib.theme.primaryColor
 import io.legado.app.ui.about.AppLogDialog
 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.text = rowUi.name
                     it.textView.setPadding(16.dpToPx())
                     it.textView.setPadding(16.dpToPx())
                     it.root.onClick {
                     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
-                                    )
                                 }
                                 }
                             }
                             }
                         }
                         }