@@ -64,6 +64,7 @@ GodotJavaWrapper::GodotJavaWrapper(JNIEnv *p_env, jobject p_activity, jobject p_
6464 _alert = p_env->GetMethodID (godot_class, " alert" , " (Ljava/lang/String;Ljava/lang/String;)V" );
6565 _is_dark_mode_supported = p_env->GetMethodID (godot_class, " isDarkModeSupported" , " ()Z" );
6666 _is_dark_mode = p_env->GetMethodID (godot_class, " isDarkMode" , " ()Z" );
67+ _get_accent_color = p_env->GetMethodID (godot_class, " getAccentColor" , " ()I" );
6768 _get_clipboard = p_env->GetMethodID (godot_class, " getClipboard" , " ()Ljava/lang/String;" );
6869 _set_clipboard = p_env->GetMethodID (godot_class, " setClipboard" , " (Ljava/lang/String;)V" );
6970 _has_clipboard = p_env->GetMethodID (godot_class, " hasClipboard" , " ()Z" );
@@ -214,6 +215,23 @@ bool GodotJavaWrapper::is_dark_mode() {
214215 }
215216}
216217
218+ Color GodotJavaWrapper::get_accent_color () {
219+ if (_get_accent_color) {
220+ JNIEnv *env = get_jni_env ();
221+ ERR_FAIL_NULL_V (env, Color (0 , 0 , 0 , 0 ));
222+ int accent_color = env->CallIntMethod (godot_instance, _get_accent_color);
223+
224+ // Convert ARGB to RGBA.
225+ int alpha = (accent_color >> 24 ) & 0xFF ;
226+ int red = (accent_color >> 16 ) & 0xFF ;
227+ int green = (accent_color >> 8 ) & 0xFF ;
228+ int blue = accent_color & 0xFF ;
229+ return Color (red / 255 .0f , green / 255 .0f , blue / 255 .0f , alpha / 255 .0f );
230+ } else {
231+ return Color (0 , 0 , 0 , 0 );
232+ }
233+ }
234+
217235bool GodotJavaWrapper::has_get_clipboard () {
218236 return _get_clipboard != nullptr ;
219237}
0 commit comments