public static void deleteOfflineData(final Activity activity) {
        // collect downloaded data
        final List<Pair<Integer, String>> offlineItems = new ArrayList<>();

        for (ContentStorage.FileInformation fi : ContentStorage.get().list(PersistableFolder.OFFLINE_MAPS)) {
            if (!fi.isDirectory && StringUtils.endsWithIgnoreCase(fi.name, FileUtils.MAP_FILE_EXTENSION)) {
                offlineItems.add(new Pair<>(DOWNLOAD_TYPE_ALL_MAPS.id, fi.name));
            }
        }
        for (Download.DownloadTypeDescriptor type : Download.DownloadType.getOfflineMapThemeTypes()) {
            for (CompanionFileUtils.DownloadedFileData offlineItem : CompanionFileUtils.availableOfflineMaps(type.type)) {
                offlineItems.add(new Pair<>(DOWNLOAD_TYPE_ALL_THEMES.id, offlineItem.localFile));
            }
        }
        for (ContentStorage.FileInformation fi : ContentStorage.get().list(PersistableFolder.BACKGROUND_MAPS)) {
            if (!fi.isDirectory && StringUtils.endsWithIgnoreCase(fi.name, FileUtils.BACKGROUND_MAP_FILE_EXTENSION)) {
                offlineItems.add(new Pair<>(DOWNLOADTYPE_MAP_OPENANDROMAPS_BACKGROUNDS.id, fi.name));
            }
        }
        for (CompanionFileUtils.DownloadedFileData offlineItem : CompanionFileUtils.availableOfflineMaps(DOWNLOADTYPE_BROUTER_TILES)) {
            offlineItems.add(new Pair<>(DOWNLOADTYPE_BROUTER_TILES.id, offlineItem.localFile));
        }
        for (CompanionFileUtils.DownloadedFileData offlineItem : CompanionFileUtils.availableOfflineMaps(DOWNLOADTYPE_HILLSHADING_TILES)) {
            offlineItems.add(new Pair<>(DOWNLOADTYPE_HILLSHADING_TILES.id, offlineItem.localFile));
        }
        RemoteModelManager.getInstance().getDownloadedModels(TranslateRemoteModel.class).addOnSuccessListener(remoteModels -> {
            for (TranslateRemoteModel model : remoteModels) {
                if (!model.getLanguage().equalsIgnoreCase(OfflineTranslateUtils.LANGUAGE_UNDELETABLE)) {
                    offlineItems.add(new Pair<>(DOWNLOADTYPE_LANGUAGE_MODEL.id, model.getLanguage()));
                }
            }
            showDialog(activity, offlineItems);
        }).addOnFailureListener(e -> showDialog(activity, offlineItems));
    }
list offline data (only those types downloadable using the downloader)
and offer to remove it
main/src/main/java/cgeo/geocaching/downloader/DownloaderUtils.java