Skip to content

Instantly share code, notes, and snippets.

@marcin-adamczewski
Last active June 7, 2017 14:16
Show Gist options
  • Save marcin-adamczewski/091a00e38213ce88f5403ec770d0aea1 to your computer and use it in GitHub Desktop.
Save marcin-adamczewski/091a00e38213ce88f5403ec770d0aea1 to your computer and use it in GitHub Desktop.
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();
}
})
favsManager.getFavObservable(postId)
  .subscribe(isFavorite -> favButton.setFavorite(isFavrotie));
favoritesManager.getIsFavoriteObservable(postId)
.subscribe(isFavorite -> fab.setImageDrawable(getResources().getDrawable(isFavorite ?
R.drawable.ic_favorite_black_24dp : R.drawable.ic_favorite_border_black_24dp)))
void onFavoriteButtonClick() {
favoriteButton.setFavorite(favoriteButton.isFavrotie())
makeFavRequest(favoriteButton.isFavrotie())
}
favoritesManager.toggleValue(postId);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment