|
@@ -29,7 +29,10 @@
|
|
|
/*************************************************************************/
|
|
|
|
|
|
#include "java_godot_io_wrapper.h"
|
|
|
+#include "core/array.h"
|
|
|
#include "core/error_list.h"
|
|
|
+#include "core/math/rect2.h"
|
|
|
+#include "core/variant.h"
|
|
|
|
|
|
// JNIEnv is only valid within the thread it belongs to, in a multi threading environment
|
|
|
// we can't cache it.
|
|
@@ -50,6 +53,7 @@ GodotIOJavaWrapper::GodotIOJavaWrapper(JNIEnv *p_env, jobject p_godot_io_instanc
|
|
|
_open_URI = p_env->GetMethodID(cls, "openURI", "(Ljava/lang/String;)I");
|
|
|
_get_cache_dir = p_env->GetMethodID(cls, "getCacheDir", "()Ljava/lang/String;");
|
|
|
_get_data_dir = p_env->GetMethodID(cls, "getDataDir", "()Ljava/lang/String;");
|
|
|
+ _get_display_cutouts = p_env->GetMethodID(cls, "getDisplayCutouts", "()[I"),
|
|
|
_get_locale = p_env->GetMethodID(cls, "getLocale", "()Ljava/lang/String;");
|
|
|
_get_model = p_env->GetMethodID(cls, "getModel", "()Ljava/lang/String;");
|
|
|
_get_screen_DPI = p_env->GetMethodID(cls, "getScreenDPI", "()I");
|
|
@@ -175,6 +179,27 @@ void GodotIOJavaWrapper::get_window_safe_area(int (&p_rect_xywh)[4]) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+Array GodotIOJavaWrapper::get_display_cutouts() {
|
|
|
+ Array result;
|
|
|
+ ERR_FAIL_NULL_V(_get_display_cutouts, result);
|
|
|
+ JNIEnv *env = get_jni_env();
|
|
|
+ ERR_FAIL_NULL_V(env, result);
|
|
|
+ jintArray returnArray = (jintArray)env->CallObjectMethod(godot_io_instance, _get_display_cutouts);
|
|
|
+ jint arrayLength = env->GetArrayLength(returnArray);
|
|
|
+ jint *arrayBody = env->GetIntArrayElements(returnArray, JNI_FALSE);
|
|
|
+ int cutouts = arrayLength / 4;
|
|
|
+ for (int i = 0; i < cutouts; i++) {
|
|
|
+ int x = arrayBody[i * 4];
|
|
|
+ int y = arrayBody[i * 4 + 1];
|
|
|
+ int width = arrayBody[i * 4 + 2];
|
|
|
+ int height = arrayBody[i * 4 + 3];
|
|
|
+ Rect2 cutout(x, y, width, height);
|
|
|
+ result.append(cutout);
|
|
|
+ }
|
|
|
+ env->ReleaseIntArrayElements(returnArray, arrayBody, 0);
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
String GodotIOJavaWrapper::get_unique_id() {
|
|
|
if (_get_unique_id) {
|
|
|
JNIEnv *env = get_jni_env();
|