Започвам с Rx с RxAndroid и искам да изброя името на потребителя на GitHub чрез неговия API с Retrofit. Всяка заявка за API носи 100 потребители, след като обработя всички потребители, искам да получа следващите 100, но не мога да осъзная как да направя това. Някой може ли да ми помогне?
Къде са някои фрагменти от моя код
Интерфейсът за преоборудване
interface GitHubService {
@GET("/users")
List<User> users(@Query("since") int since);
}
Потребителският клас
class User {
private Integer id;
private String login;
public String getLogin() {
return login;
}
public Integer getId() {
return id;
}
}
И методът onCreate на моята дейност
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("User-Agent", "Retrofit-Sample-App");
request.addHeader("Accept", "application/json");
}
};
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("https://api.github.com")
.setRequestInterceptor(requestInterceptor)
.build();
GitHubService mWebService = restAdapter.create(GitHubService.class);
mWebService.users().flatMap(new Func1<List<User>, Observable<User>>() {
@Override public Observable<User> call(List<User> users) {
return Observable.from(users);
}
}).flatMap(new Func1<User, Observable<String>>(){
@Override public Observable<String> call(User user) {
return Observable.just(user.getId() + ": " + user.getLogin());
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onCompleted() {
Log.i("TEST", "EXIT");
}
@Override
public void onError(Throwable e) {
Log.i("TEST", e.getLocalizedMessage());
}
@Override
public void onNext(String s) {
Log.i("TEST", s);
}
});
}