FlexibleAdapter
FlexibleAdapter copied to clipboard
Probable major bug in private filterItemsAsync() method.
filterItemsAsync()
always checks for a new filter. If filter parameters haven't been changed then filtering will be omitted here:
private synchronized void filterItemsAsync(@NonNull List<T> unfilteredItems) {
// Omitted for brevity
if (hasFilter() && hasNewFilter(mFilterEntity)) { //skip when filter is unchanged
}
}
Steps to reproduce:
Let's take a simple situation where each item has a status field called isSent
.
- Add a few items to the adapter where
isSent = false
- Apply filter where only items with
isSent = false
should be visible - Change status of any single item item to
isSent = true
and the callFlexibleAdapter.filterItems()
- Since the filter itself hasn't changed, the filtering will, simply, be omitted