You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Clean up the XR export logic
Remove the XR export logic from the legacy build system: - On Android, Godot 4 export requires the use of Android plugins which are not supported by the legacy build system - Provides added flexibility for configuring the Android manifest for XR specific capabilities.
This commit is contained in:
@@ -276,17 +276,39 @@ String _get_xr_features_tag(const Ref<EditorExportPreset> &p_preset) {
|
||||
return manifest_xr_features;
|
||||
}
|
||||
|
||||
String _get_activity_tag(const Ref<EditorExportPreset> &p_preset) {
|
||||
String _get_activity_tag(const Ref<EditorExportPreset> &p_preset, bool p_uses_xr) {
|
||||
String orientation = _get_android_orientation_label(DisplayServer::ScreenOrientation(int(GLOBAL_GET("display/window/handheld/orientation"))));
|
||||
String manifest_activity_text = vformat(
|
||||
" <activity android:name=\"com.godot.game.GodotApp\" "
|
||||
"tools:replace=\"android:screenOrientation,android:excludeFromRecents,android:resizeableActivity\" "
|
||||
"tools:node=\"mergeOnlyAttributes\" "
|
||||
"android:excludeFromRecents=\"%s\" "
|
||||
"android:screenOrientation=\"%s\" "
|
||||
"android:resizeableActivity=\"%s\">\n",
|
||||
bool_to_string(p_preset->get("package/exclude_from_recents")),
|
||||
orientation,
|
||||
bool_to_string(bool(GLOBAL_GET("display/window/size/resizable"))));
|
||||
|
||||
if (p_uses_xr) {
|
||||
manifest_activity_text += " <intent-filter>\n"
|
||||
" <action android:name=\"android.intent.action.MAIN\" />\n"
|
||||
" <category android:name=\"android.intent.category.LAUNCHER\" />\n"
|
||||
"\n"
|
||||
" <!-- Enable access to OpenXR on Oculus mobile devices, no-op on other Android\n"
|
||||
" platforms. -->\n"
|
||||
" <category android:name=\"com.oculus.intent.category.VR\" />\n"
|
||||
"\n"
|
||||
" <!-- OpenXR category tag to indicate the activity starts in an immersive OpenXR mode. \n"
|
||||
" See https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#android-runtime-category. -->\n"
|
||||
" <category android:name=\"org.khronos.openxr.intent.category.IMMERSIVE_HMD\" />\n"
|
||||
" </intent-filter>\n";
|
||||
} else {
|
||||
manifest_activity_text += " <intent-filter>\n"
|
||||
" <action android:name=\"android.intent.action.MAIN\" />\n"
|
||||
" <category android:name=\"android.intent.category.LAUNCHER\" />\n"
|
||||
" </intent-filter>\n";
|
||||
}
|
||||
|
||||
manifest_activity_text += " </activity>\n";
|
||||
return manifest_activity_text;
|
||||
}
|
||||
@@ -307,9 +329,7 @@ String _get_application_tag(const Ref<EditorExportPreset> &p_preset, bool p_has_
|
||||
" android:hasFragileUserData=\"%s\"\n"
|
||||
" android:requestLegacyExternalStorage=\"%s\"\n"
|
||||
" tools:replace=\"android:allowBackup,android:appCategory,android:isGame,android:hasFragileUserData,android:requestLegacyExternalStorage\"\n"
|
||||
" tools:ignore=\"GoogleAppIndexingWarning\">\n\n"
|
||||
" <meta-data tools:node=\"remove\" android:name=\"xr_hand_tracking_version_name\" />\n"
|
||||
" <meta-data tools:node=\"remove\" android:name=\"xr_hand_tracking_metadata_name\" />\n",
|
||||
" tools:ignore=\"GoogleAppIndexingWarning\">\n\n",
|
||||
bool_to_string(p_preset->get("user_data_backup/allow")),
|
||||
_get_app_category_label(app_category_index),
|
||||
bool_to_string(is_game),
|
||||
@@ -327,7 +347,7 @@ String _get_application_tag(const Ref<EditorExportPreset> &p_preset, bool p_has_
|
||||
manifest_application_text += " <meta-data tools:node=\"replace\" android:name=\"com.oculus.handtracking.version\" android:value=\"V2.0\" />\n";
|
||||
}
|
||||
}
|
||||
manifest_application_text += _get_activity_tag(p_preset);
|
||||
manifest_application_text += _get_activity_tag(p_preset, uses_xr);
|
||||
manifest_application_text += " </application>\n";
|
||||
return manifest_application_text;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user