package br.com.dgimenes.nasapic.control.fragment;
import android.view.View;
import java.util.List;
import br.com.dgimenes.nasapic.control.ErrorMessage;
import br.com.dgimenes.nasapic.model.SpacePic;
import br.com.dgimenes.nasapic.service.EventsLogger;
import br.com.dgimenes.nasapic.service.interactor.OnFinishListener;
import br.com.dgimenes.nasapic.service.interactor.SpacePicInteractor;
public class BestPicturesFragment extends RecentPicturesFragment {
@Override
protected void loadFeed() {
synchronized (loadingFeed) {
if (!loadingFeed) {
loadingFeed = true;
}
}
SpacePicInteractor spacePicInteractor = new SpacePicInteractor(getActivity());
spacePicInteractor.getBest(nextPageToLoad, new OnFinishListener<List<SpacePic>>() {
@Override
public void onSuccess(List<SpacePic> loadedPics) {
spacePics.addAll(loadedPics);
recyclerViewAdapter.notifyDataSetChanged();
if (recyclerView.getVisibility() == View.GONE) {
recyclerView.setVisibility(View.VISIBLE);
}
listLoadingIndicator.setVisibility(View.GONE);
nextPageToLoad++;
EventsLogger.logEvent("Best pictures loaded");
releaseLoadingFeed();
}
@Override
public void onError(Throwable throwable) {
ErrorMessage error = ErrorMessage.LOADING_BEST_PICS;
EventsLogger.logError(error, throwable);
error(getResources().getString(error.userMessageRes));
releaseLoadingFeed();
}
private void releaseLoadingFeed() {
synchronized (loadingFeed) {
loadingFeed = false;
setupInfiniteScroll();
}
}
});
}
}