diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/LoadingMoreList.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/LoadingMoreList.java index df113fc..15ee58f 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/LoadingMoreList.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/LoadingMoreList.java @@ -78,12 +78,12 @@ public class LoadingMoreList extends ObservableCollection onItemsLoaded(loadedItems, false)) .replay(1) .refCount(); if (initialItems != null) { - onItemsLoaded(initialItems); + onItemsLoaded(initialItems, false); } } @@ -117,13 +117,17 @@ public class LoadingMoreList extends ObservableCollection loadedItems) { + private void onItemsLoaded(@NonNull final LoadedItems loadedItems, final boolean reset) { moreItemsReference = loadedItems.getReference(); final List items = new ArrayList<>(loadedItems.getItems()); - if (removeDuplicates) { - removeDuplicatesFromList(items); + if (!reset) { + if (removeDuplicates) { + removeDuplicatesFromList(items); + } + innerList.addAll(items); + } else { + innerList.set(items); } - innerList.addAll(items); moreItemsCount.onNext(loadedItems.getMoreItemsCount()); } @@ -181,9 +185,8 @@ public class LoadingMoreList extends ObservableCollection initialItems) { - innerList.set(initialItems); - moreItemsCount.onNext(LoadedItems.UNKNOWN_ITEMS_COUNT); + public void reset(@NonNull final LoadedItems initialItems) { + onItemsLoaded(initialItems, true); } private static class LoadMoreException extends Exception {