summaryrefslogtreecommitdiffstats
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotEditor.kt6
-rw-r--r--platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotXRGame.kt13
-rw-r--r--platform/android/java_godot_lib_jni.cpp11
3 files changed, 19 insertions, 11 deletions
diff --git a/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotEditor.kt b/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotEditor.kt
index 9f0440e87d..328ff9a3bd 100644
--- a/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotEditor.kt
+++ b/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotEditor.kt
@@ -45,15 +45,13 @@ open class GodotEditor : BaseGodotEditor() {
internal val XR_RUN_GAME_INFO = EditorWindowInfo(GodotXRGame::class.java, 1667, ":GodotXRGame")
- internal const val USE_ANCHOR_API_PERMISSION = "com.oculus.permission.USE_ANCHOR_API"
internal const val USE_SCENE_PERMISSION = "com.oculus.permission.USE_SCENE"
}
override fun getExcludedPermissions(): MutableSet<String> {
val excludedPermissions = super.getExcludedPermissions()
- // The USE_ANCHOR_API and USE_SCENE permissions are requested when the "xr/openxr/enabled"
- // project setting is enabled.
- excludedPermissions.add(USE_ANCHOR_API_PERMISSION)
+ // The USE_SCENE permission is requested when the "xr/openxr/enabled" project setting
+ // is enabled.
excludedPermissions.add(USE_SCENE_PERMISSION)
return excludedPermissions
}
diff --git a/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotXRGame.kt b/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotXRGame.kt
index d71fbb53f2..5db2879aad 100644
--- a/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotXRGame.kt
+++ b/platform/android/java/editor/src/meta/java/org/godotengine/editor/GodotXRGame.kt
@@ -31,7 +31,6 @@
package org.godotengine.editor
import org.godotengine.godot.GodotLib
-import org.godotengine.godot.utils.PermissionsUtil
import org.godotengine.godot.xr.XRMode
/**
@@ -62,8 +61,16 @@ open class GodotXRGame: GodotGame() {
val openxrEnabled = GodotLib.getGlobal("xr/openxr/enabled").toBoolean()
if (openxrEnabled) {
- permissionsToEnable.add(USE_ANCHOR_API_PERMISSION)
- permissionsToEnable.add(USE_SCENE_PERMISSION)
+ // We only request permissions when the `automatically_request_runtime_permissions`
+ // project setting is enabled.
+ // If the project setting is not defined, we fall-back to the default behavior which is
+ // to automatically request permissions.
+ val automaticallyRequestPermissionsSetting = GodotLib.getGlobal("xr/openxr/extensions/automatically_request_runtime_permissions")
+ val automaticPermissionsRequestEnabled = automaticallyRequestPermissionsSetting.isNullOrEmpty() ||
+ automaticallyRequestPermissionsSetting.toBoolean()
+ if (automaticPermissionsRequestEnabled) {
+ permissionsToEnable.add(USE_SCENE_PERMISSION)
+ }
}
return permissionsToEnable
diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp
index 390677df22..6086f67a1e 100644
--- a/platform/android/java_godot_lib_jni.cpp
+++ b/platform/android/java_godot_lib_jni.cpp
@@ -472,19 +472,22 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_focusout(JNIEnv *env,
JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv *env, jclass clazz, jstring path) {
String js = jstring_to_string(path, env);
- return env->NewStringUTF(GLOBAL_GET(js).operator String().utf8().get_data());
+ Variant setting_with_override = GLOBAL_GET(js);
+ String setting_value = (setting_with_override.get_type() == Variant::NIL) ? "" : setting_with_override;
+ return env->NewStringUTF(setting_value.utf8().get_data());
}
JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getEditorSetting(JNIEnv *env, jclass clazz, jstring p_setting_key) {
- String editor_setting = "";
+ String editor_setting_value = "";
#ifdef TOOLS_ENABLED
String godot_setting_key = jstring_to_string(p_setting_key, env);
- editor_setting = EDITOR_GET(godot_setting_key).operator String();
+ Variant editor_setting = EDITOR_GET(godot_setting_key);
+ editor_setting_value = (editor_setting.get_type() == Variant::NIL) ? "" : editor_setting;
#else
WARN_PRINT("Access to the Editor Settings in only available on Editor builds");
#endif
- return env->NewStringUTF(editor_setting.utf8().get_data());
+ return env->NewStringUTF(editor_setting_value.utf8().get_data());
}
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_callobject(JNIEnv *env, jclass clazz, jlong ID, jstring method, jobjectArray params) {