Skip to content

Instantly share code, notes, and snippets.

Observable<LoginRequest> loginObservable = loginClickSubject
.withLatestFrom(lastCredentialsObservable, new Func2<Void, LoginRequest, LoginRequest>() {
@Override
public LoginRequest call(Void ignore, LoginRequest credentials) {
return credentials;
}
});
Observable<LoginRequest> loginObservable = loginClickSubject
.flatMap(new Func1<Void, Observable<LoginRequest>>() {
@Override
public Observable<LoginRequest> call(Void ignore) {
return lastCredentialsObservable;
}
});
Observable<LoginRequest> loginObservable = lastCredentialsObservable
.sample(loginClickSubject);
BehaviorSubject<String> emailSubject = BehaviorSubject.create();
BehaviorSubject<String> passwordSubject = BehaviorSubject.create();
PublishSubject<Void> loginClickSubject = PublishSubject.create();
final Observable<LoginRequest> lastCredentialsObservable = Observable.combineLatest(
emailSubject,
passwordSubject,
new Func2<String, String, LoginRequest>() {
@Override
public LoginRequest call(String email, String password) {
return new LoginRequest(email, password);
}
});