reset fix

This commit is contained in:
Gavriil Sitnikov 2016-07-05 19:10:46 +03:00
parent 3a5428f956
commit 54801f62f2
1 changed files with 12 additions and 9 deletions

View File

@ -78,12 +78,12 @@ public class LoadingMoreList<TItem, TReference> extends ObservableCollection<TIt
}
})
.observeOn(loaderScheduler)
.doOnNext(this::onItemsLoaded)
.doOnNext(loadedItems -> onItemsLoaded(loadedItems, false))
.replay(1)
.refCount();
if (initialItems != null) {
onItemsLoaded(initialItems);
onItemsLoaded(initialItems, false);
}
}
@ -117,13 +117,17 @@ public class LoadingMoreList<TItem, TReference> extends ObservableCollection<TIt
this.removeDuplicates = removeDuplicates;
}
private void onItemsLoaded(@NonNull final LoadedItems<TItem, TReference> loadedItems) {
private void onItemsLoaded(@NonNull final LoadedItems<TItem, TReference> loadedItems, final boolean reset) {
moreItemsReference = loadedItems.getReference();
final List<TItem> 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<TItem, TReference> extends ObservableCollection<TIt
moreItemsCount.onNext(LoadedItems.UNKNOWN_ITEMS_COUNT);
}
public void reset(@NonNull final Collection<TItem> initialItems) {
innerList.set(initialItems);
moreItemsCount.onNext(LoadedItems.UNKNOWN_ITEMS_COUNT);
public void reset(@NonNull final LoadedItems<TItem, TReference> initialItems) {
onItemsLoaded(initialItems, true);
}
private static class LoadMoreException extends Exception {