Я пытаюсь сделать 2 последовательных вызова в сеть, где второй имеет в качестве параметра результат первого. Я пытаюсь сделать это, используя MVVM и Transformations.switchMap, я получаю исключение "java.lang.IllegalArgumentException: невозможно создать адаптер вызова для класса com.rdev.image.obj.FlickrResultSize". Кто-нибудь знает, как это сделать?
public LiveData<ArrayList<String>> getValuesAPI(String url) {
LiveData<ArrayList<String>> ids = AbsentLiveData.create();
LiveData<ArrayList<String>> urls = AbsentLiveData.create();
final MutableLiveData<ArrayList<String>> updatedResult = new MediatorLiveData<>();
//This method waits until it has the data to process
ids = Transformations.switchMap(getValues(url), apiResponse-> {
ArrayList<String> listaIds = new ArrayList<>();
if(apiResponse.isSuccessful()) {
if (apiResponse.body != null) {
FlickrPhotos flickrPhotos = new FlickrPhotos();
flickrPhotos = apiResponse.body.getPhotos();
FlickrResultSize flickrResultSizes = new FlickrResultSize();
for(int i=0;i<flickrPhotos.getPhoto().size();i++){
String id = flickrPhotos.getPhoto().get(i).getId();
String link = Utils.createURL(2,id);
flickrResultSizes = getPhotos(link); -----------I want to call this, but I can't
Timber.d("depois do getPhotos");
listaIds.add(id);
}
updatedResult.postValue(listaIds);
}
}
});
return ids;
}
// вызов сети
public FlickrResultSize getPhotos(String link){
return mMainApiHelper.getPhotos(link);
}