package com.alorma.github.sdk.services.search; import com.alorma.github.sdk.bean.dto.response.search.ReposSearch; import core.repositories.Repo; import java.util.List; import retrofit.Callback; import retrofit.RestAdapter; import retrofit.client.Response; public class RepoSearchClient extends GithubSearchClient<ReposSearch, List<Repo>> { public RepoSearchClient(String query) { super(query); } public RepoSearchClient(String query, int page) { super(query, page); } @Override protected ApiSubscriber getApiObservable(RestAdapter restAdapter) { return new ApiSubscriber() { @Override protected void call(RestAdapter restAdapter) { SearchClient searchClient = restAdapter.create(SearchClient.class); if (getPage() == 0) { searchClient.repos(query, new SearchReposCallback(this)); } else { searchClient.repos(query, getPage(), new SearchReposCallback(this)); } } }; } private class SearchReposCallback extends SearchCallback { public SearchReposCallback(Callback<List<Repo>> callback) { super(callback); } @Override public void success(ReposSearch reposSearch, Response response) { callback.success(reposSearch.items, response); } } }