private void reevaluateTextFilterVisibility() {
        final String filter = model.getFilterTerm();
        final BiFunction<Object, ItemGroup<Object, Object>, String> textFilterMapper = model.getTextFilterMapper();
        final boolean allVisible = StringUtils.isBlank(filter) || textFilterMapper == null;
        for (ListItem item : listAdapter.getOriginalItems()) {
            if (item.type != ListItemType.ITEM || allVisible) {
                item.isVisibleByFilter = true;
            } else {
                final String rawText = textFilterMapper.apply(item.value, item.itemGroup);
                item.isVisibleByFilter = rawText != null && rawText.toLowerCase(Locale.US).contains(filter.trim().toLowerCase(Locale.US));
            }
        }
    }
This view displays and maintains a list of simple view items, mainly for (single or multiple)
item selection lists. It provides special support for grouping, filtering and "select all" for such
lists.
main/src/main/java/cgeo/geocaching/ui/SimpleItemListView.java