Я использую Fuel для отправки и получения запросов от API.
Однако я не могу показать сообщения Toast или AlertDialogs, если запрос не был успешным.
Пример кода:
private fun validatePassword(): Boolean {
var minPasswordLength = 0
val password = findViewById<EditText>(R.id.input_password_register).text.toString()
val password_repeat: String = findViewById<EditText>(R.id.input_password_repeat_register).text.toString()
"/auth/password.json".httpGet().responseString { request, response, result ->
//do something with response
request.header(mapOf("Content-Type" to "application/json"))
Log.println(Log.ASSERT, "password_Curl", request.cUrlString())
when (result) {
is Result.Failure -> {
val data = response.data.toString(Charsets.UTF_8)
Log.println(Log.ASSERT, "Response_Password_Fail", data)
val jelement = JsonParser().parse(data)
val jobject = jelement.asJsonObject
Toast.makeText(this, jobject.get("Error").asString, Toast.LENGTH_SHORT).show()
}
is Result.Success -> {
val data = response.data.toString(Charsets.UTF_8)
Log.println(Log.ASSERT, "Response_Passwd_Succes", data)
val jelement = JsonParser().parse(data)
val jobject = jelement.asJsonObject
minPasswordLength = jobject.get("minimal_length").asInt
}
}
}
return password.length >= minPasswordLength && password.equals(password_repeat)
}
Я попытался запустить команду makeText на UIThread, используя:
runOnUiThread{Toast.makeText(this, jobject.get("Error").asString, Toast.LENGTH_SHORT).show()}
Это тоже не сработало.
Однако я получаю код во время отладки:
Спасибо за помощь!Приветствия.
ОБНОВЛЕНИЕ: Во время отладки я заметил, что minPasswordLength остается 0, хотя "minimal_length" из API имеет значение 8. Так что, возможно, это проблема Threading