The problem is that the global variable "responseDogs" is being returned as null at the end of method, but is populated inside onResponse method!?
Code:
public class DogREST {
private List<Dog> responseDogs;
//...
public List<Dog> retrieveDogsFromREST() {
final DogService dogService = DogService.serviceDog;
dogService.getDogs(AuthRequest.createAuthJsonString()).enqueue(new Callback<DogList>() {
@Override
public void onResponse(Call<DogList> call, Response<DogList> response) {
if (response.isSuccessful()) {
responseDogs = response.body().getDogs();
Log.d("DogRESTSuccessful", "" + response.body().getDogs());
Log.d("dogsReceived - >", "" + responseDogs);
} else {
Log.d("DogRESTNSuccessful", "- statusCode" + response.code());
}
}
@Override
public void onFailure(Call<DogList> call, Throwable t) {
//...
}
});
Log.d("onRetrieveDR", ""+ responseDogs);
return reponseDogs;
}
}
Note ->> "Log.d("DogRESTSuccessful", "" + response.body().getDogs())" and "Log.d("dogsReceived - >", "" + responseDogs)" shows populated responseDogs...
but retrieveDogsFromREST is returning null list, and so does "Log.d("onRetrieveDR", ""+ responseDogs)"
Maybe I'm writing wrong logic? IDK