1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-07 12:30:27 +00:00

Only request OpenXR permissions for a XR game running off the Android editor when the xr/openxr/extensions/automatically_request_runtime_permissions project setting is enabled

This commit is contained in:
Fredia Huya-Kouadio
2024-09-08 13:34:23 -07:00
parent 5675c76461
commit 3ff95ef12a
3 changed files with 19 additions and 11 deletions

View File

@@ -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
}

View File

@@ -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