Как получить правильный ответ от модифицированного httpRequest?
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val api = ApiConnection()
button_checkIfThisAccountExit_mainActivity.setOnClickListener {
api.loginRequest(editText_login_activityMain.text.toString(), editText_password_mainActivity.text.toString())
Log.v("parser", "result: " + api.data.size)
}
}
}
class ApiConnection {
var baseApiURl = "http://localhost"
var data = arrayListOf<User>()
fun connectApi(): ApiService {
Log.v("parser", "connectApi")
val retrofit = Retrofit.Builder()
.baseUrl(baseApiURl)
.addConverterFactory(GsonConverterFactory.create())
.build()
return retrofit.create(ApiService::class.java)
}
fun loginRequest(login: String, password: String): ArrayList<User>{
Log.v("parser", "loginRequest")
val service = connectApi()
val call = service.login(login, password)
call.enqueue(object: Callback<UserResponse> {
override fun onFailure(call: Call<UserResponse>?, t: Throwable?) {
Log.v("retrofit", "call failed")
}
override fun onResponse(call: Call<UserResponse>?, response: Response<UserResponse>?) {
data.add(
User(
response!!.body()!!.idUser,
response!!.body()!!.login,
response!!.body()!!.password,
response!!.body()!!.name,
response!!.body()!!.surname,
response!!.body()!!.lastLogin
)
)
}
})
return data
}
}
Когда я нажимаю кнопку в первый раз, я получаю результат из списка как 0, но когда я делаю это снова, это работает нормально, и я получаю результат как: 1 (я имею в виду размер списка)