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 call FlexibleAdapter.filterItems()
- Since the filter itself hasn't changed, the filtering will, simply, be omitted
filterItemsAsync()always checks for a new filter. If filter parameters haven't been changed then filtering will be omitted here:Steps to reproduce:
Let's take a simple situation where each item has a status field called
isSent.isSent = falseisSent = falseshould be visibleisSent = trueand the callFlexibleAdapter.filterItems()