Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fun actions() = Observable.merge<ListAction>(
- recyclerView.scrollEvents()
- // filter when we do a scroll up
- .filter { it.dy > 0 }
- // filter when recyclerView is currently loading
- .filter { !isLoading }
- // filter threshold
- .filter {
- val layoutManager = it.view.layoutManager as StaggeredGridLayoutManager
- val visibleItemCount = recyclerView.childCount
- val totalItemCount = layoutManager.itemCount
- val firstVisibleItem = layoutManager.findFirstVisibleItemPositions(null).first()
- totalItemCount - visibleItemCount <= firstVisibleItem + GiphyListFragment.VISIBLE_THRESHOLD
- }
- .map { ListAction.LoadMore(adapter.list.size) }
- .doOnNext { isLoading = true },
- swipeRefreshLayout.refreshes().map { ListAction.Refresh() },
- giphyViewItem.itemClick().map { ListAction.OnItemClick(it) }
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement