Skip to content

Instantly share code, notes, and snippets.

@gandharva
Created June 22, 2016 13:54
Show Gist options
  • Save gandharva/e3fd0d2fbbb98823e448ae6875f6eef3 to your computer and use it in GitHub Desktop.
Save gandharva/e3fd0d2fbbb98823e448ae6875f6eef3 to your computer and use it in GitHub Desktop.
retrofitService.getAccessToken()
/* AuthenticationResponse is the return type of retrofitService.getAccessToken()
* Observable<ResponseBody> is the return type of retrofitService.getRecords(), I'm using retrofit response body here
*/
.flatMap(new Func1<AuthenticationResponse, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(AuthenticationResponse authenticationResponse) {
String accessToken = authenticationResponse.getData().getAccessToken();
String refreshToken = authenticationResponse.getData().getRefreshToken();
Authentication.saveDetails(accessToken, refreshToken);
return retrofitService.getRecords();
}
})
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<ResponseBody>() {
@Override
public void onCompleted() {
//TODO
}
@Override
public void onError(Throwable e) {
//TODO
}
@Override
public void onNext(ResponseBody responseBody) {
//TODO
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment