package com.tenclouds.loadingadaptersample; import com.android.annotations.Nullable; import com.tenclouds.infiniterecyclerview.ItemsLoader; import java.util.ArrayList; import java.util.List; import io.magicthegathering.javasdk.api.CardAPI; import io.magicthegathering.javasdk.resource.Card; public class SearchCardsLoader implements ItemsLoader<Card> { private static final int PAGE_SIZE = 20; private int pageNo = 1; private final String searchQuery; private ShowErrorInterface showErrorInterface; public SearchCardsLoader(@Nullable String searchQuery, ShowErrorInterface showErrorInterface) { this.searchQuery = searchQuery; this.showErrorInterface = showErrorInterface; } @Override public List<Card> getNewItems() { ArrayList<String> filter = new ArrayList<>(); filter.add("pageSize=" + PAGE_SIZE); filter.add("page=" + pageNo); if (searchQuery != null && !searchQuery.isEmpty()) { filter.add("name=" + searchQuery); } try { List<Card> cardsPage = CardAPI.getAllCards(filter); ++pageNo; return cardsPage; } catch (Exception e){ e.printStackTrace(); showErrorInterface.showError(e.getLocalizedMessage()); return null; } } public interface ShowErrorInterface { void showError(String errorText); } }