This commit is contained in:
Horis
2023-06-24 07:29:43 +08:00
parent a4cbe8539a
commit d01f9942fb
@@ -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()) { Coroutine.async {
context?.openUrl(rowUi.action!!) if (rowUi.action.isAbsUrl()) {
} else { context?.openUrl(rowUi.action!!)
// JavaScript } else {
rowUi.action?.let { buttonFunctionJS -> // JavaScript
kotlin.runCatching { rowUi.action?.let { buttonFunctionJS ->
source.getLoginJs()?.let { loginJS -> kotlin.runCatching {
source.evalJS("$loginJS\n$buttonFunctionJS") { source.getLoginJs()?.let { loginJS ->
put("result", getLoginData(loginUi)) 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
)
} }
} }
} }