Skip to content

Commit 89001f9

Browse files
committed
Merge pull request #100607 from syntaxerror247/fix-filepicker
Fix Android native file picker
2 parents 151e7fc + 9deee00 commit 89001f9

File tree

2 files changed

+5
-9
lines changed

2 files changed

+5
-9
lines changed

platform/android/java/lib/src/org/godotengine/godot/io/FilePicker.kt

+4-8
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,10 @@ internal class FilePicker {
144144
}
145145
// ACTION_OPEN_DOCUMENT_TREE does not support intent type
146146
if (fileMode != FILE_MODE_OPEN_DIR) {
147-
intent.type = "*/*"
148-
if (filters.isNotEmpty()) {
149-
val resolvedFilters = filters.map { resolveMimeType(it) }.distinct()
150-
if (resolvedFilters.size == 1) {
151-
intent.type = resolvedFilters[0]
152-
} else {
153-
intent.putExtra(Intent.EXTRA_MIME_TYPES, resolvedFilters.toTypedArray())
154-
}
147+
val resolvedFilters = filters.map { resolveMimeType(it) }.distinct()
148+
intent.type = resolvedFilters.firstOrNull { it != "application/octet-stream" } ?: "*/*"
149+
if (resolvedFilters.size > 1) {
150+
intent.putExtra(Intent.EXTRA_MIME_TYPES, resolvedFilters.toTypedArray())
155151
}
156152
intent.addCategory(Intent.CATEGORY_OPENABLE)
157153
}

platform/android/java_godot_wrapper.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ Error GodotJavaWrapper::show_file_picker(const String &p_current_directory, cons
329329
jint j_mode = p_mode;
330330
jobjectArray j_filters = env->NewObjectArray(p_filters.size(), env->FindClass("java/lang/String"), nullptr);
331331
for (int i = 0; i < p_filters.size(); ++i) {
332-
jstring j_filter = env->NewStringUTF(p_filters[i].utf8().get_data());
332+
jstring j_filter = env->NewStringUTF(p_filters[i].get_slice(";", 0).utf8().get_data());
333333
env->SetObjectArrayElement(j_filters, i, j_filter);
334334
env->DeleteLocalRef(j_filter);
335335
}

0 commit comments

Comments
 (0)