private void switchToAdvanced(final boolean removeNonFiltering) {
        this.binding.filterBasicAdvanced.setChecked(true);
        if (!isNested) {
            this.binding.filterStorageOptions.setVisibility(View.VISIBLE);
            this.binding.filterStorageOptionsLine.setVisibility(View.VISIBLE);
        }
        this.binding.filterPropsCheckboxes.setVisibility(View.VISIBLE);
        this.binding.filterPropsCheckboxesLine.setVisibility(View.VISIBLE);
        this.binding.filterAdditem.setVisibility(View.VISIBLE);

        // start with the highest index, as we might remove filters which are not actively filtering
        for (int pos = filterListAdapter.getItemCount() - 1; pos >= 0; pos--) {
            final IFilterViewHolder<?> item = filterListAdapter.getItem(pos);
            if (removeNonFiltering && !item.createFilterFromView().isFiltering()) {
                this.filterListAdapter.removeItem(pos);
            }
        }

        //repaint view
        this.filterListAdapter.notifyItemRangeChanged(0, this.filterListAdapter.getItemCount());

        adjustFilterEmptyView();
    }
Show a filter selection using an {@code ExpandableListView}.
main/src/main/java/cgeo/geocaching/filters/gui/GeocacheFilterActivity.java