#include "SDL_internal.h"
#include "../SDL_dialog.h"
#include "../../core/android/SDL_android.h"
void SDL_SYS_ShowFileDialogWithProperties(SDL_FileDialogType type, SDL_DialogFileCallback callback, void *userdata, SDL_PropertiesID props)
{
SDL_DialogFileFilter *filters = SDL_GetPointerProperty(props, SDL_PROP_FILE_DIALOG_FILTERS_POINTER, NULL);
int nfilters = (int) SDL_GetNumberProperty(props, SDL_PROP_FILE_DIALOG_NFILTERS_NUMBER, 0);
bool allow_many = SDL_GetBooleanProperty(props, SDL_PROP_FILE_DIALOG_MANY_BOOLEAN, false);
bool is_save;
if (SDL_GetHint(SDL_HINT_FILE_DIALOG_DRIVER) != NULL) {
SDL_SetError("File dialog driver unsupported (don't set SDL_HINT_FILE_DIALOG_DRIVER)");
callback(userdata, NULL, -1);
return;
}
switch (type) {
case SDL_FILEDIALOG_OPENFILE:
is_save = false;
break;
case SDL_FILEDIALOG_SAVEFILE:
is_save = true;
break;
case SDL_FILEDIALOG_OPENFOLDER:
SDL_Unsupported();
callback(userdata, NULL, -1);
return;
};
if (!Android_JNI_OpenFileDialog(callback, userdata, filters, nfilters, is_save, allow_many)) {
callback(userdata, NULL, -1);
}
}