From 2e3cd8fcd5e32a32a349c89bd84d8d91c8417c60 Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Tue, 7 Jun 2016 11:59:22 +0300 Subject: [PATCH] requesting optimized --- .../components/listing/ItemsProvider.java | 32 +++---------------- 1 file changed, 4 insertions(+), 28 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 8386da4..89a914a 100644 --- a/src/main/java/ru/touchin/roboswag/components/listing/ItemsProvider.java +++ b/src/main/java/ru/touchin/roboswag/components/listing/ItemsProvider.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.List; import rx.Observable; -import rx.internal.util.RxRingBuffer; import rx.subjects.PublishSubject; /** @@ -51,34 +50,11 @@ public abstract class ItemsProvider { @SuppressWarnings("unchecked") public Observable> loadRange(final int first, final int last) { - final List>> itemsRequests = new ArrayList<>(); - - int index = first; - while (index <= last) { - final List> limitedPageRequests = new ArrayList<>(); - final int maxIndex = index + RxRingBuffer.SIZE - 1; - while (index <= Math.min(last, maxIndex)) { - limitedPageRequests.add(loadItem(index)); - index++; - } - itemsRequests.add(Observable.combineLatest(limitedPageRequests, args -> { - final List resultPart = new ArrayList<>(args.length); - for (final Object item : args) { - if (item != null) { - resultPart.add((T) item); - } - } - return resultPart; - })); + final List> itemsRequests = new ArrayList<>(); + for (int i = first; i <= last; i++) { + itemsRequests.add(loadItem(i)); } - - return Observable.combineLatest(itemsRequests, args -> { - final List result = new ArrayList<>(); - for (final Object resultPart : args) { - result.addAll((List) resultPart); - } - return result; - }); + return Observable.concatEager(itemsRequests).toList(); } @NonNull