public void selectPersistableFolder(final PersistableFolder folder) {

        final ImmutableTriple<String, String, String> folderInfo = getInternationalizedFolderInfoStrings(folder.getFolder());

        //create the message;
        final String folderData = activity.getString(R.string.contentstorage_selectfolder_dialog_msg_folderdata,
                folder.toUserDisplayableName(), folder.toUserDisplayableValue(), folderInfo.left, folderInfo.middle, folderInfo.right);
        final String defaultFolder = activity.getString(R.string.contentstorage_selectfolder_dialog_msg_defaultfolder, folder.getDefaultFolder().toUserDisplayableString(true, false));

        final AlertDialog.Builder dialog = Dialogs.newBuilder(activity);
        dialog
                .setTitle(activity.getString(R.string.contentstorage_selectfolder_dialog_title, folder.toUserDisplayableName()))
                .setMessage(folderData + (folder.isUserDefined() ? "\n\n" + defaultFolder : ""))
                .setPositiveButton(R.string.persistablefolder_pickfolder, (d, p) -> {
                    d.dismiss();
                    selectFolderInternal(SelectAction.SELECT_FOLDER_PERSISTED, folder, null, CopyChoice.ASK_IF_DIFFERENT);
                })
                .setNegativeButton(android.R.string.cancel, (d, p) -> {
                    d.dismiss();
                    finalizePersistableFolderSelection(false, folder, null, SelectAction.SELECT_FOLDER_PERSISTED);
                });

        //only allow default selection if folder is currently NOT at default
        if (folder.isUserDefined()) {
            dialog.setNeutralButton(R.string.persistablefolder_usedefault, (d, p) -> {
                d.dismiss();
                continuePersistableFolderSelectionCheckFoldersAreEqual(folder, null, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION, CopyChoice.ASK_IF_DIFFERENT, SelectAction.SELECT_FOLDER_PERSISTED);
            });
        }

        dialog.create().show();
    }
Starts user selection of a new Location for the given persisted folder.
Persisted folder handling is a bit more complex and involved e.g. optional copying from previous location and provides a default-option to user
if a callback for action {@link SelectAction#SELECT_FOLDER_PERSISTED} is registered, it will be called after selection has finished

@param folder folder to request a new place from user
main/src/main/java/cgeo/geocaching/storage/ContentStorageActivityHelper.java