Skip to content

Probable major bug in private filterItemsAsync() method. #759

@mecoFarid

Description

@mecoFarid

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.

  1. Add a few items to the adapter where isSent = false
  2. Apply filter where only items with isSent = false should be visible
  3. Change status of any single item item to isSent = true and the call FlexibleAdapter.filterItems()
  4. Since the filter itself hasn't changed, the filtering will, simply, be omitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions