package com.alorma.github.sdk.services.search; import com.alorma.github.sdk.bean.dto.response.search.IssuesSearch; import core.issues.Issue; import java.util.List; import retrofit.Callback; import retrofit.RestAdapter; import retrofit.client.Response; public class IssuesSearchClient extends GithubSearchClient<IssuesSearch, List<Issue>> { public IssuesSearchClient(String query) { super(query); } public IssuesSearchClient(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.issues(query, new SearchIssuesCallback(this)); } else { searchClient.issues(query, getPage(), new SearchIssuesCallback(this)); } } }; } private class SearchIssuesCallback extends SearchCallback { public SearchIssuesCallback(Callback<List<Issue>> callback) { super(callback); } @Override public void success(IssuesSearch issuesSearch, Response response) { callback.success(issuesSearch.items, response); } } }