Skip to content

Instantly share code, notes, and snippets.

View EfeBudak's full-sized avatar
learn->work->learn->work

Efe Budak EfeBudak

learn->work->learn->work
View GitHub Profile
@EfeBudak
EfeBudak / Activity.java
Created May 30, 2017 08:35
Android Pagination with MVP
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mPresenter = new Presenter(
fragment,
SchedulerProvider.getInstance(),
Repository.getInstance(
LocalDataSource.getInstance(),
@EfeBudak
EfeBudak / Presenter.java getPage()
Created May 30, 2017 08:33
Android Pagination with MVP
private void getPage() {
mCompositeDisposable.add(mRepository.getPage(mCurrentPage)
.observeOn(mSchedulerProvider.ui())
.subscribeOn(mSchedulerProvider.io())
.subscribeWith(new DisposableSingleObserver<Products>(){
@Override
public void onSuccess( @io.reactivex.annotations.NonNull Products products) {
mView.setRefreshing(false);
mView.refreshPageItems(products.getProducts());
@EfeBudak
EfeBudak / Fragment.java
Created May 30, 2017 08:31
Android Pagination with MVP
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleItemCount = recyclerView.getLayoutManager().getChildCount();
int totalItemCount = recyclerView.getLayoutManager().getItemCount();
int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
if (!mSwipeRefreshLayout.isRefreshing() && !mEndOfList) {
if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount - Constants.PAGINATION_MARGIN
@EfeBudak
EfeBudak / Presenter.java
Last active May 30, 2017 08:30
Android Pagination with MVP
@Override
public void onLoadNextPage() {
mCurrentPage++;
mView.setRefreshing(true);
getPage();
}
@Override
public void onRefresh() {
mCurrentPage = 0;
mView.setRefreshing(true);