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

Assign the primaryHost prior to initializing the registered Android plugins.

Address a regression introduced in https://github.com/godotengine/godot/pull/102866.
The proper behavior for Android plugins is to use `getContext` instead of `getActivity`, but since not all plugins follow this pattern, this fix provides backward compat to avoid breaking the plugins that don't.
This commit is contained in:
Fredia Huya-Kouadio
2025-07-03 09:43:24 -07:00
parent efb40c1524
commit bbf22a39c1
3 changed files with 5 additions and 3 deletions

View File

@@ -204,7 +204,7 @@ class Godot private constructor(val context: Context) {
* @throws IllegalArgumentException exception if the specified expansion pack (if any)
* is invalid.
*/
fun initEngine(commandLineParams: List<String>, hostPlugins: Set<GodotPlugin>): Boolean {
fun initEngine(host: GodotHost?, commandLineParams: List<String>, hostPlugins: Set<GodotPlugin> = Collections.emptySet()): Boolean {
if (isNativeInitialized()) {
Log.d(TAG, "Engine already initialized")
return true
@@ -216,6 +216,8 @@ class Godot private constructor(val context: Context) {
beginBenchmarkMeasure("Startup", "Godot::initEngine")
try {
this.primaryHost = host
Log.v(TAG, "Initializing Godot plugin registry")
val runtimePlugins = mutableSetOf<GodotPlugin>(AndroidRuntimePlugin(this))
runtimePlugins.addAll(hostPlugins)

View File

@@ -174,7 +174,7 @@ public class GodotFragment extends Fragment implements IDownloaderClient, GodotH
private void performEngineInitialization() {
try {
if (!godot.initEngine(getCommandLine(), getHostPlugins(godot))) {
if (!godot.initEngine(this, getCommandLine(), getHostPlugins(godot))) {
throw new IllegalStateException("Unable to initialize Godot engine");
}

View File

@@ -321,7 +321,7 @@ open class GodotService : Service() {
Log.d(TAG, "Performing engine initialization")
try {
// Initialize the Godot instance
if (!godot.initEngine(godotHost.commandLine, godotHost.getHostPlugins(godot))) {
if (!godot.initEngine(godotHost, godotHost.commandLine, godotHost.getHostPlugins(godot))) {
throw IllegalStateException("Unable to initialize Godot engine layer")
}