From 5c8479fa7deff9c38dc9523e00f76457b5e32218 Mon Sep 17 00:00:00 2001 From: Anish Mishra Date: Sat, 2 Aug 2025 12:23:20 +0530 Subject: [PATCH] Remove godot boot splash --- .github/workflows/build.yml | 3 +- godot_only/GodotApp.java | 92 +++++++++++++++++++++++++++++++++++++ project.godot | 3 +- 3 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 godot_only/GodotApp.java diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 66bbf9f..5eb6cac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -123,11 +123,12 @@ jobs: touch android/build/.gdignore echo "${GODOT_VERSION}.${GODOT_RELEASE}" > android/.build_version - - name: Add splash animation file + - name: Add splash_anim.xml and modified GodotApp.java file run: | cd vectortouch mkdir -p android/build/res/drawable cp godot_only/splash_anim.xml android/build/res/drawable/splash_anim.xml + cp godot_only/GodotApp.java android/build/src/com/godot/game/GodotApp.java - name: Export debug project env: diff --git a/godot_only/GodotApp.java b/godot_only/GodotApp.java new file mode 100644 index 0000000..5899eeb --- /dev/null +++ b/godot_only/GodotApp.java @@ -0,0 +1,92 @@ +/**************************************************************************/ +/* GodotApp.java */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +package com.godot.game; + +import org.godotengine.godot.Godot; +import org.godotengine.godot.GodotActivity; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; + +import androidx.activity.EdgeToEdge; +import androidx.core.splashscreen.SplashScreen; + +/** + * Template activity for Godot Android builds. + * Feel free to extend and modify this class for your custom logic. + */ +public class GodotApp extends GodotActivity { + private boolean isAppReady = false; + static { + // .NET libraries. + if (BuildConfig.FLAVOR.equals("mono")) { + try { + Log.v("GODOT", "Loading System.Security.Cryptography.Native.Android library"); + System.loadLibrary("System.Security.Cryptography.Native.Android"); + } catch (UnsatisfiedLinkError e) { + Log.e("GODOT", "Unable to load System.Security.Cryptography.Native.Android library"); + } + } + } + + private final Runnable updateImmersiveAndEdgeToEdgeModes = () -> { + Godot godot = getGodot(); + if (godot != null) { + godot.enableImmersiveMode(godot.isInImmersiveMode(), true); + godot.enableEdgeToEdge(godot.isInEdgeToEdgeMode(), true); + } + }; + + @Override + public void onCreate(Bundle savedInstanceState) { + SplashScreen splashScreen = SplashScreen.installSplashScreen(this); + EdgeToEdge.enable(this); + super.onCreate(savedInstanceState); + splashScreen.setKeepOnScreenCondition(() -> !isAppReady); + } + + @Override + public void onResume() { + super.onResume(); + updateImmersiveAndEdgeToEdgeModes.run(); + } + + @Override + public void onGodotMainLoopStarted() { + super.onGodotMainLoopStarted(); + runOnUiThread(updateImmersiveAndEdgeToEdgeModes); + new Handler(Looper.getMainLooper()).postDelayed(() -> { + isAppReady = true; + }, 300); + } +} diff --git a/project.godot b/project.godot index 6a19f75..8b69829 100644 --- a/project.godot +++ b/project.godot @@ -18,8 +18,7 @@ config/use_custom_user_dir=true config/features=PackedStringArray("4.5") run/low_processor_mode=true boot_splash/bg_color=Color(0.101960786, 0.101960786, 0.101960786, 1) -boot_splash/fullsize=false -boot_splash/image="uid://bt124msoa30ho" +boot_splash/show_image=false config/icon="uid://bt124msoa30ho" [audio]