Skip to content

Instantly share code, notes, and snippets.

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);
}
});
BehaviorSubject<String> emailSubject = BehaviorSubject.create();
BehaviorSubject<String> passwordSubject = BehaviorSubject.create();
PublishSubject<Void> loginClickSubject = PublishSubject.create();
Observable<LoginRequest> loginObservable = lastCredentialsObservable
.sample(loginClickSubject);
Observable<LoginRequest> loginObservable = loginClickSubject
.flatMap(new Func1<Void, Observable<LoginRequest>>() {
@Override
public Observable<LoginRequest> call(Void ignore) {
return lastCredentialsObservable;
}
});
Observable<LoginRequest> loginObservable = loginClickSubject
.withLatestFrom(lastCredentialsObservable, new Func2<Void, LoginRequest, LoginRequest>() {
@Override
public LoginRequest call(Void ignore, LoginRequest credentials) {
return credentials;
}
});
swagger: "2.0"
info:
version: 1.0.0
title: Zumba's API
description: Documentation about Zumba's API.
contact:
name: Zumba Engineering Team
email: engineering@zumba.com
url: https://tech.zumba.com
host: apiv3.zumba.com
@marcin-adamczewski
marcin-adamczewski / clicks.java
Last active June 7, 2017 14:16
Medium Article
RxView.clicks(fab)
.throttleFirst(1, TimeUnit.SECONDS) // prevents crazy clicks
.observeOn(AndroidSchedulers.mainThread())
.switchMap(ignore -> favoritesManager.addOrRemoveFromFavs(postId)) // toggle cache state and make API request
.subscribe(responseOrError -> {
if (responseOrError.isError()) {
Toast.makeText(PostDetailsActivity.this, "API error", Toast.LENGTH_SHORT).show();
}
})
RxView.clicks(favButton)
.throttleFirst(1, TimeUnit.SECONDS) //Prevents from crazy clicks
.switchMap(ignore -> favoritesManager.addOrRemoveFromFavs(postId))//Toggle cache state and make API request
.subscribe(responseOrError -> {
if (responseOrError.isError()) {
Toast.makeText(PostDetailsActivity.this, "API error", Toast.LENGTH_SHORT).show();
}
})
void onFavoriteButtonClick() {
favoriteButton.setFavorite(!favoriteButton.isFavorite()) // toggle state
makeFavRequest(favoriteButton.isFavorite())
}
favsManager.getIsFavoriteObservable(postId)
.subscribe(isFavorite -> favButton.setFavorite(isFavorite));