Android: Add method to set root window color at runtime

This commit is contained in:
Anish Mishra 2025-08-10 19:57:02 +05:30
parent a3b42d85d2
commit 0ad232423d
8 changed files with 50 additions and 10 deletions

View file

@ -85,6 +85,7 @@ GodotJavaWrapper::GodotJavaWrapper(JNIEnv *p_env, jobject p_godot_instance) {
_verify_apk = p_env->GetMethodID(godot_class, "nativeVerifyApk", "(Ljava/lang/String;)I");
_enable_immersive_mode = p_env->GetMethodID(godot_class, "nativeEnableImmersiveMode", "(Z)V");
_is_in_immersive_mode = p_env->GetMethodID(godot_class, "isInImmersiveMode", "()Z");
_set_window_color = p_env->GetMethodID(godot_class, "setWindowColor", "(Ljava/lang/String;)V");
_on_editor_workspace_selected = p_env->GetMethodID(godot_class, "nativeOnEditorWorkspaceSelected", "(Ljava/lang/String;)V");
_get_activity = p_env->GetMethodID(godot_class, "getActivity", "()Landroid/app/Activity;");
}
@ -587,6 +588,16 @@ bool GodotJavaWrapper::is_in_immersive_mode() {
}
}
void GodotJavaWrapper::set_window_color(const Color &p_color) {
if (_set_window_color) {
JNIEnv *env = get_jni_env();
ERR_FAIL_NULL(env);
String color = "#" + p_color.to_html(false);
jstring jStrColor = env->NewStringUTF(color.utf8().get_data());
env->CallVoidMethod(godot_instance, _set_window_color, jStrColor);
}
}
void GodotJavaWrapper::on_editor_workspace_selected(const String &p_workspace) {
if (_on_editor_workspace_selected) {
JNIEnv *env = get_jni_env();