private void initializeStorageOptions() {

        //handling of "save" button
        binding.filterStorageSave.setOnClickListener(v -> {
            final String filterName = GeocacheFilter.getPurifiedFilterName(binding.filterStorageName.getText().toString());
            SimpleDialog.of(this).setTitle(R.string.cache_filter_storage_save_title)
                    .input(new SimpleDialog.InputOptions().setInitialValue(filterName).setHint(getString(R.string.cache_filter_storage_save_title)), newName -> {
                        final GeocacheFilter filter = getFilterFromView();
                        if (GeocacheFilter.Storage.existsAndDiffers(newName, filter)) {
                            SimpleDialog.of(this).setTitle(R.string.cache_filter_storage_save_confirm_title).setMessage(R.string.cache_filter_storage_save_confirm_message, newName).confirm(
                                    () -> saveAs(newName));
                        } else {
                            saveAs(newName);
                        }
                    });
        });
        ViewUtils.setTooltip(binding.filterStorageSave, TextParam.id(R.string.cache_filter_storage_save_title));

        //handling of "load/delete" button
        binding.filterStorageManage.setOnClickListener(v -> {
            final List<GeocacheFilter> filters = new ArrayList<>(GeocacheFilter.Storage.getStoredFilters());

            if (filters.isEmpty()) {
                SimpleDialog.of(this).setTitle(R.string.cache_filter_storage_load_delete_title).setMessage(R.string.cache_filter_storage_load_delete_nofilter_message).show();
            } else {
                final SimpleDialog.ItemSelectModel<GeocacheFilter> model = FilterUtils.getGroupedFilterList(filters);
                model
                    .setItemActionIconMapper((f) -> ImageParam.id(R.drawable.ic_menu_delete))
                    .setItemActionListener((f) -> {
                        //DELETE action was tapped for a filter
                        model.getDialog().dismiss();
                        SimpleDialog.of(this).setTitle(R.string.cache_filter_storage_delete_title)
                                .setMessage(R.string.cache_filter_storage_delete_message)
                                .confirm(() -> {
                                    GeocacheFilter.Storage.delete(f);
                                    //if currently shown view was just deleted -> then delete it in view as well
                                    if (f.getName().contentEquals(binding.filterStorageName.getText())) {
                                        binding.filterStorageName.setText("");
                                    }
                                });
                    });

                SimpleDialog.of(this).setTitle(R.string.cache_filter_storage_load_delete_title)
                                .selectSingle(model, (f) -> fillViewFromFilter(f.toConfig(), isAdvancedView()));
            }
        });
        ViewUtils.setTooltip(binding.filterStorageManage, TextParam.id(R.string.cache_filter_storage_load_delete_title));

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