From 8a14678b992380c49f17a7bdafecf2610a74b5ec Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Tue, 24 May 2016 15:06:10 +0300 Subject: [PATCH] static fixes --- .../components/listing/ItemsProvider.java | 1 + .../adapters/AbstractItemsAdapter.java | 1 + .../adapters/ObservableCollectionAdapter.java | 52 ++++++++++++++++--- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/components/listing/ItemsProvider.java b/src/main/java/ru/touchin/roboswag/components/listing/ItemsProvider.java index 3a68b45..8386da4 100644 --- a/src/main/java/ru/touchin/roboswag/components/listing/ItemsProvider.java +++ b/src/main/java/ru/touchin/roboswag/components/listing/ItemsProvider.java @@ -33,6 +33,7 @@ import rx.subjects.PublishSubject; * Created by Gavriil Sitnikov on 07/12/2015. * TODO: fill description */ +@SuppressWarnings("CPD-START") public abstract class ItemsProvider { private final PublishSubject> listChangesSubject = PublishSubject.create(); diff --git a/src/main/java/ru/touchin/roboswag/components/listing/adapters/AbstractItemsAdapter.java b/src/main/java/ru/touchin/roboswag/components/listing/adapters/AbstractItemsAdapter.java index 49f27fd..7f34596 100644 --- a/src/main/java/ru/touchin/roboswag/components/listing/adapters/AbstractItemsAdapter.java +++ b/src/main/java/ru/touchin/roboswag/components/listing/adapters/AbstractItemsAdapter.java @@ -42,6 +42,7 @@ import rx.functions.Actions; * Created by Gavriil Sitnikov on 20/11/2015. * TODO: fill description */ +@SuppressWarnings("CPD-START") public abstract class AbstractItemsAdapter extends RecyclerView.Adapter { diff --git a/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java b/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java index 88810b5..a426f92 100644 --- a/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java +++ b/src/main/java/ru/touchin/roboswag/components/listing/adapters/ObservableCollectionAdapter.java @@ -22,11 +22,13 @@ package ru.touchin.roboswag.components.listing.adapters; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; +import android.view.View; import android.view.ViewGroup; import java.util.List; import ru.touchin.roboswag.components.R; +import ru.touchin.roboswag.components.navigation.UiBindable; import ru.touchin.roboswag.components.utils.UiUtils; import ru.touchin.roboswag.core.log.Lc; import ru.touchin.roboswag.core.observables.collections.Change; @@ -34,20 +36,21 @@ import ru.touchin.roboswag.core.observables.collections.ObservableCollection; import ru.touchin.roboswag.core.observables.collections.ObservableList; import ru.touchin.roboswag.core.utils.ShouldNotHappenException; import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; import rx.functions.Actions; /** * Created by Gavriil Sitnikov on 20/11/2015. * TODO: fill description */ -public abstract class ObservableCollectionAdapter +public abstract class ObservableCollectionAdapter extends RecyclerView.Adapter { private static final int PRE_LOADING_COUNT = 10; private static final int LOADED_ITEM_TYPE = R.id.LOADED_ITEM_TYPE; + @NonNull + private final UiBindable uiBindable; @Nullable private OnItemClickListener onItemClickListener; @Nullable @@ -55,6 +58,16 @@ public abstract class ObservableCollectionAdapter onItemClickListener.onItemClicked(item, position), getItemClickDelay()); } @@ -161,4 +173,28 @@ public abstract class ObservableCollectionAdapter observableCollection, + final int position) { + if (preLoadingSubscription != null) { + preLoadingSubscription.unsubscribe(); + } + preLoadingSubscription = uiBindable + .untilStop(observableCollection + .loadRange(Math.max(0, position - PRE_LOADING_COUNT), position + PRE_LOADING_COUNT) + .first()) + .subscribe(Actions.empty(), Actions.empty()); + } + + } + }