|
@@ -72,8 +72,9 @@ class SourceLoginDialog : BaseDialogFragment(R.layout.dialog_login, true) {
|
|
|
// JavaScript
|
|
// JavaScript
|
|
|
rowUi.action?.let {
|
|
rowUi.action?.let {
|
|
|
kotlin.runCatching {
|
|
kotlin.runCatching {
|
|
|
- saveLoginData(source, loginUi)
|
|
|
|
|
- source.evalJS(it)
|
|
|
|
|
|
|
+ source.evalJS(it) {
|
|
|
|
|
+ put("result", getLoginData(loginUi))
|
|
|
|
|
+ }
|
|
|
}.onFailure {
|
|
}.onFailure {
|
|
|
AppLog.put("LoginUI Button ${rowUi.name} JavaScript error", it)
|
|
AppLog.put("LoginUI Button ${rowUi.name} JavaScript error", it)
|
|
|
}
|
|
}
|
|
@@ -104,9 +105,9 @@ class SourceLoginDialog : BaseDialogFragment(R.layout.dialog_login, true) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private fun getLoginData(loginUi: List<RowUi>): HashMap<String, String> {
|
|
|
|
|
|
|
+ private fun getLoginData(loginUi: List<RowUi>?): HashMap<String, String> {
|
|
|
val loginData = hashMapOf<String, String>()
|
|
val loginData = hashMapOf<String, String>()
|
|
|
- loginUi.forEachIndexed { index, rowUi ->
|
|
|
|
|
|
|
+ loginUi?.forEachIndexed { index, rowUi ->
|
|
|
when (rowUi.type) {
|
|
when (rowUi.type) {
|
|
|
"text", "password" -> {
|
|
"text", "password" -> {
|
|
|
val rowView = binding.root.findViewById<View>(index)
|
|
val rowView = binding.root.findViewById<View>(index)
|
|
@@ -119,15 +120,6 @@ class SourceLoginDialog : BaseDialogFragment(R.layout.dialog_login, true) {
|
|
|
return loginData
|
|
return loginData
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private fun saveLoginData(source: BaseSource, loginUi: List<RowUi>) {
|
|
|
|
|
- val loginData = getLoginData(loginUi)
|
|
|
|
|
- if (loginData.isEmpty()) {
|
|
|
|
|
- source.removeLoginInfo()
|
|
|
|
|
- } else {
|
|
|
|
|
- source.putLoginInfo(GSON.toJson(loginData))
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
private fun login(source: BaseSource, loginData: HashMap<String, String>) {
|
|
private fun login(source: BaseSource, loginData: HashMap<String, String>) {
|
|
|
launch(IO) {
|
|
launch(IO) {
|
|
|
if (loginData.isEmpty()) {
|
|
if (loginData.isEmpty()) {
|