diff options
| author | George L. Albany <Megacake1234@gmail.com> | 2024-11-06 11:06:08 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-06 11:06:08 +0000 |
| commit | e7894c2c4efdd51049a21af4892005381fe57cd6 (patch) | |
| tree | 849c2d29b6fb90100f31de20340d5f0ef4238edf /platform/android/java_godot_wrapper.cpp | |
| parent | d14f2a31558686f00c4f351ea659918576711a7a (diff) | |
| parent | b8b8a7127e3040582c5937fd2dff4c99e94a3b57 (diff) | |
| download | redot-engine-e7894c2c4efdd51049a21af4892005381fe57cd6.tar.gz | |
Merge pull request #843 from Spartan322/merge/87318a2
Merge commit godotengine/godot@87318a2
Diffstat (limited to 'platform/android/java_godot_wrapper.cpp')
| -rw-r--r-- | platform/android/java_godot_wrapper.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/platform/android/java_godot_wrapper.cpp b/platform/android/java_godot_wrapper.cpp index da11c6a5d3..615e1ca897 100644 --- a/platform/android/java_godot_wrapper.cpp +++ b/platform/android/java_godot_wrapper.cpp @@ -66,6 +66,7 @@ GodotJavaWrapper::GodotJavaWrapper(JNIEnv *p_env, jobject p_activity, jobject p_ _alert = p_env->GetMethodID(godot_class, "alert", "(Ljava/lang/String;Ljava/lang/String;)V"); _is_dark_mode_supported = p_env->GetMethodID(godot_class, "isDarkModeSupported", "()Z"); _is_dark_mode = p_env->GetMethodID(godot_class, "isDarkMode", "()Z"); + _get_accent_color = p_env->GetMethodID(godot_class, "getAccentColor", "()I"); _get_clipboard = p_env->GetMethodID(godot_class, "getClipboard", "()Ljava/lang/String;"); _set_clipboard = p_env->GetMethodID(godot_class, "setClipboard", "(Ljava/lang/String;)V"); _has_clipboard = p_env->GetMethodID(godot_class, "hasClipboard", "()Z"); @@ -216,6 +217,23 @@ bool GodotJavaWrapper::is_dark_mode() { } } +Color GodotJavaWrapper::get_accent_color() { + if (_get_accent_color) { + JNIEnv *env = get_jni_env(); + ERR_FAIL_NULL_V(env, Color(0, 0, 0, 0)); + int accent_color = env->CallIntMethod(godot_instance, _get_accent_color); + + // Convert ARGB to RGBA. + int alpha = (accent_color >> 24) & 0xFF; + int red = (accent_color >> 16) & 0xFF; + int green = (accent_color >> 8) & 0xFF; + int blue = accent_color & 0xFF; + return Color(red / 255.0f, green / 255.0f, blue / 255.0f, alpha / 255.0f); + } else { + return Color(0, 0, 0, 0); + } +} + bool GodotJavaWrapper::has_get_clipboard() { return _get_clipboard != nullptr; } |
