1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-10 13:00:37 +00:00

Android Editor: Disable nomedia file creation for Android 11 (api level 30)

Fixes https://github.com/godotengine/godot/issues/106479
Fixes https://github.com/godotengine/godot/issues/105399
This commit is contained in:
Anish Mishra
2025-05-25 21:17:30 +05:30
parent a89f083ffa
commit 08f13a030d
2 changed files with 25 additions and 17 deletions

View File

@@ -1069,6 +1069,9 @@ void EditorFileSystem::scan() {
if (first_scan) { if (first_scan) {
_first_scan_filesystem(); _first_scan_filesystem();
#ifdef ANDROID_ENABLED #ifdef ANDROID_ENABLED
// Android 11 has some issues with nomedia files, so it's disabled there. See GH-106479 and GH-105399 for details.
String sdk_version = OS::get_singleton()->get_version().get_slicec('.', 0);
if (sdk_version != "30") {
const String nomedia_file_path = ProjectSettings::get_singleton()->get_resource_path().path_join(".nomedia"); const String nomedia_file_path = ProjectSettings::get_singleton()->get_resource_path().path_join(".nomedia");
if (!FileAccess::exists(nomedia_file_path)) { if (!FileAccess::exists(nomedia_file_path)) {
// Create a .nomedia file to hide assets from media apps on Android. // Create a .nomedia file to hide assets from media apps on Android.
@@ -1080,6 +1083,7 @@ void EditorFileSystem::scan() {
f->close(); f->close();
} }
} }
}
#endif #endif
} }

View File

@@ -739,6 +739,9 @@ void ProjectDialog::ok_pressed() {
hide(); hide();
if (mode == MODE_NEW || mode == MODE_IMPORT || mode == MODE_INSTALL) { if (mode == MODE_NEW || mode == MODE_IMPORT || mode == MODE_INSTALL) {
#ifdef ANDROID_ENABLED #ifdef ANDROID_ENABLED
// Android 11 has some issues with nomedia files, so it's disabled there. See GH-106479, GH-105399 for details.
String sdk_version = OS::get_singleton()->get_version().get_slicec('.', 0);
if (sdk_version != "30") {
// Create a .nomedia file to hide assets from media apps on Android. // Create a .nomedia file to hide assets from media apps on Android.
const String nomedia_file_path = path.path_join(".nomedia"); const String nomedia_file_path = path.path_join(".nomedia");
Ref<FileAccess> f2 = FileAccess::open(nomedia_file_path, FileAccess::WRITE); Ref<FileAccess> f2 = FileAccess::open(nomedia_file_path, FileAccess::WRITE);
@@ -748,6 +751,7 @@ void ProjectDialog::ok_pressed() {
} else { } else {
f2->close(); f2->close();
} }
}
#endif #endif
emit_signal(SNAME("project_created"), path, edit_check_box->is_pressed()); emit_signal(SNAME("project_created"), path, edit_check_box->is_pressed());
} else if (mode == MODE_DUPLICATE) { } else if (mode == MODE_DUPLICATE) {