From 3206e28c8d527516b1456d618be1436ec7953c0b Mon Sep 17 00:00:00 2001 From: Fredia Huya-Kouadio Date: Tue, 18 Nov 2025 10:41:23 -0800 Subject: [PATCH] Ensure that the Android editor properly passes hybrid data when switching mode --- platform/android/java/app/config.gradle | 2 +- .../java/org/godotengine/editor/BaseGodotEditor.kt | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index 38f7da285f10..e3bd47549c2d 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -17,7 +17,7 @@ ext.versions = [ splashscreenVersion: '1.0.1', // 'openxrLoaderVersion' should be set to XR_CURRENT_API_VERSION, see 'thirdparty/openxr' openxrLoaderVersion: '1.1.53', - openxrVendorsVersion: '4.2.0-stable', + openxrVendorsVersion: '4.2.1-stable', junitVersion : '1.3.0', espressoCoreVersion: '3.7.0', kotlinTestVersion : '1.3.11', diff --git a/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt b/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt index e4d49e23bbaf..bd335a40822d 100644 --- a/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt +++ b/platform/android/java/editor/src/main/java/org/godotengine/editor/BaseGodotEditor.kt @@ -270,10 +270,11 @@ abstract class BaseGodotEditor : GodotActivity(), GameMenuFragment.GameMenuListe newIntent.putExtra(EXTRA_NEW_LAUNCH, false) godot?.runOnRenderThread { - // Look for the scene and xr-mode arguments + // Look for the scene, XR-mode, and hybrid data arguments. var scene = "" var xrMode = XR_MODE_DEFAULT var path = "" + var base64HybridData = "" if (params.isNotEmpty()) { val sceneIndex = params.indexOf(SCENE_ARG) if (sceneIndex != -1 && sceneIndex + 1 < params.size) { @@ -289,9 +290,14 @@ abstract class BaseGodotEditor : GodotActivity(), GameMenuFragment.GameMenuListe if (pathIndex != -1 && pathIndex + 1 < params.size) { path = params[pathIndex + 1] } + + val hybridDataIndex = params.indexOf(HYBRID_DATA_ARG) + if (hybridDataIndex != -1 && hybridDataIndex + 1 < params.size) { + base64HybridData = params[hybridDataIndex + 1] + } } - val sceneArgs = mutableSetOf(XR_MODE_ARG, xrMode).apply { + val sceneArgs = mutableSetOf(XR_MODE_ARG, xrMode, HYBRID_DATA_ARG, base64HybridData).apply { if (path.isNotEmpty() && scene.isEmpty()) { add(PATH_ARG) add(path)