private void replaceCacheListFromSearch() {
        if (search != null) {
            runOnUiThread(() -> {


                // The database search was moved into the UI call intentionally. If this is done before the runOnUIThread,
                // then we have 2 sets of caches in memory. This can lead to OOM for huge cache lists.
                final Set<Geocache> cachesFromSearchResult = search.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB);
                final LastPositionHelper lph = new LastPositionHelper(this);
                adapter.setList(cachesFromSearchResult);
                updateGui();
                lph.setLastListPosition();
            });
        }
    }
Loads the caches and fills the adapter according to {@link #search} content.
<br>
If {@link #search} is {@code null}, this does nothing.
main/src/main/java/cgeo/geocaching/CacheListActivity.java