mirror of
https://github.com/godotengine/godot.git
synced 2025-04-01 00:41:35 +08:00
Merge pull request #100607 from syntaxerror247/fix-filepicker
Fix Android native file picker
This commit is contained in:
commit
89001f91d2
@ -144,14 +144,10 @@ internal class FilePicker {
|
||||
}
|
||||
// ACTION_OPEN_DOCUMENT_TREE does not support intent type
|
||||
if (fileMode != FILE_MODE_OPEN_DIR) {
|
||||
intent.type = "*/*"
|
||||
if (filters.isNotEmpty()) {
|
||||
val resolvedFilters = filters.map { resolveMimeType(it) }.distinct()
|
||||
if (resolvedFilters.size == 1) {
|
||||
intent.type = resolvedFilters[0]
|
||||
} else {
|
||||
intent.putExtra(Intent.EXTRA_MIME_TYPES, resolvedFilters.toTypedArray())
|
||||
}
|
||||
val resolvedFilters = filters.map { resolveMimeType(it) }.distinct()
|
||||
intent.type = resolvedFilters.firstOrNull { it != "application/octet-stream" } ?: "*/*"
|
||||
if (resolvedFilters.size > 1) {
|
||||
intent.putExtra(Intent.EXTRA_MIME_TYPES, resolvedFilters.toTypedArray())
|
||||
}
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE)
|
||||
}
|
||||
|
@ -329,7 +329,7 @@ Error GodotJavaWrapper::show_file_picker(const String &p_current_directory, cons
|
||||
jint j_mode = p_mode;
|
||||
jobjectArray j_filters = env->NewObjectArray(p_filters.size(), env->FindClass("java/lang/String"), nullptr);
|
||||
for (int i = 0; i < p_filters.size(); ++i) {
|
||||
jstring j_filter = env->NewStringUTF(p_filters[i].utf8().get_data());
|
||||
jstring j_filter = env->NewStringUTF(p_filters[i].get_slice(";", 0).utf8().get_data());
|
||||
env->SetObjectArrayElement(j_filters, i, j_filter);
|
||||
env->DeleteLocalRef(j_filter);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user