У меня есть служебный класс, используемый для получения токена с помощью вызова Retrofit. Я пытаюсь прослушать обратные вызовы методов этого класса в его активности.
В классе:
class TokenUtils() {
interface IGetTokenListener {
fun onTokenRetreived(response: Boolean)
}
internal var callback: IGetTokenListener? = null
fun registerIGetTokenListener(callback: IGetTokenListener) {
this.callback = callback
}
private fun getToken() {
val requestCall: Call<Token> = apiClass.getToken()
requestCall.enqueue(object : Callback<Token> {
override fun onFailure(call: Call<Token>, t: Throwable) {
}
override fun onResponse(call: Call<Token>, response: Response<Token>) {
if (response.isSuccessful) {
callback?.onTokenRetrieved(true)
}
}
})
}
Я пытаюсь прослушать обратный вызов с экземпляром этого класса в упражнении:
class MainActivity : AppCompatActivity() {
var tokenUtils = TokenUtils()
private fun getToken(requestBody) {
tokenUtils.registerIGetTokenListener(object:TokenUtils.IGetTokenListener{
override fun onTokenRetrieved(response: Boolean) {
if (response){
AppLog.i(TAG, "onTokenRetrieved() - Token retrieved successfully")
} else{
AppLog.i(TAG, "onTokenRetrieved() - Token retrieval failed")
}
}
})
tokenUtils.getToken()
}
А вот классвыполнение вызова:
interface ApiClass {
@POST("url")
fun getToken(
@Body body: TokenRequest
): Call<Token>
}
Как я уже написал, обратные вызовы для IGetTokenListener не запускаются. Где мне нужно установить их так, чтобы они срабатывали при возврате вызова API в объекте TokenUtils?