You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
Merge pull request #60551 from madmiraal/implement-3466
Add a method for obtaining display cutouts on Android
This commit is contained in:
@@ -38,6 +38,7 @@ import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.AssetManager;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
@@ -51,6 +52,7 @@ import android.view.DisplayCutout;
|
||||
import android.view.WindowInsets;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
// Wrapper for native library
|
||||
@@ -260,6 +262,25 @@ public class GodotIO {
|
||||
return result;
|
||||
}
|
||||
|
||||
public int[] getDisplayCutouts() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P)
|
||||
return new int[0];
|
||||
DisplayCutout cutout = activity.getWindow().getDecorView().getRootWindowInsets().getDisplayCutout();
|
||||
if (cutout == null)
|
||||
return new int[0];
|
||||
List<Rect> rects = cutout.getBoundingRects();
|
||||
int cutouts = rects.size();
|
||||
int[] result = new int[cutouts * 4];
|
||||
int index = 0;
|
||||
for (Rect rect : rects) {
|
||||
result[index++] = rect.left;
|
||||
result[index++] = rect.top;
|
||||
result[index++] = rect.width();
|
||||
result[index++] = rect.height();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void showKeyboard(String p_existing_text, boolean p_multiline, int p_max_input_length, int p_cursor_start, int p_cursor_end) {
|
||||
if (edit != null)
|
||||
edit.showKeyboard(p_existing_text, p_multiline, p_max_input_length, p_cursor_start, p_cursor_end);
|
||||
|
||||
Reference in New Issue
Block a user