diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java index b6adee9501a6d..66a9c6c01ca40 100644 --- a/core/java/android/view/DisplayCutout.java +++ b/core/java/android/view/DisplayCutout.java @@ -51,6 +51,7 @@ public final class DisplayCutout { private static final String TAG = "DisplayCutout"; private static final String BOTTOM_MARKER = "@bottom"; private static final String DP_MARKER = "@dp"; + private static final String RIGHT_MARKER = "@right"; /** * Category for overlays that allow emulating a display cutout on devices that don't have @@ -373,6 +374,13 @@ public final class DisplayCutout { } } spec = spec.trim(); + final float offsetX; + if (spec.endsWith(RIGHT_MARKER)) { + offsetX = displayWidth; + spec = spec.substring(0, spec.length() - RIGHT_MARKER.length()).trim(); + } else { + offsetX = displayWidth / 2f; + } final boolean inDp = spec.endsWith(DP_MARKER); if (inDp) { spec = spec.substring(0, spec.length() - DP_MARKER.length()); @@ -397,7 +405,7 @@ public final class DisplayCutout { if (inDp) { m.postScale(density, density); } - m.postTranslate(displayWidth / 2f, 0); + m.postTranslate(offsetX, 0); p.transform(m); if (bottomSpec != null) { diff --git a/packages/overlays/DisplayCutoutEmulationCornerOverlay/Android.mk b/packages/overlays/DisplayCutoutEmulationCornerOverlay/Android.mk new file mode 100644 index 0000000000000..74c43b40616fe --- /dev/null +++ b/packages/overlays/DisplayCutoutEmulationCornerOverlay/Android.mk @@ -0,0 +1,14 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_RRO_THEME := DisplayCutoutEmulationCorner +LOCAL_CERTIFICATE := platform + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res + +LOCAL_PACKAGE_NAME := DisplayCutoutEmulationCornerOverlay +LOCAL_SDK_VERSION := current + +include $(BUILD_RRO_PACKAGE) diff --git a/packages/overlays/DisplayCutoutEmulationCornerOverlay/AndroidManifest.xml b/packages/overlays/DisplayCutoutEmulationCornerOverlay/AndroidManifest.xml new file mode 100644 index 0000000000000..5f7f7c9bd3e43 --- /dev/null +++ b/packages/overlays/DisplayCutoutEmulationCornerOverlay/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + diff --git a/packages/overlays/DisplayCutoutEmulationCornerOverlay/res/values/config.xml b/packages/overlays/DisplayCutoutEmulationCornerOverlay/res/values/config.xml new file mode 100644 index 0000000000000..80d8066959afe --- /dev/null +++ b/packages/overlays/DisplayCutoutEmulationCornerOverlay/res/values/config.xml @@ -0,0 +1,55 @@ + + + + + + + M 0,0 + L -48, 0 + C -48,48 -48,48 0,48 + Z + @dp + @right + + + + true + + + 48dp + 28dp + + 48dp + + 176dp + + + + diff --git a/packages/overlays/DisplayCutoutEmulationCornerOverlay/res/values/strings.xml b/packages/overlays/DisplayCutoutEmulationCornerOverlay/res/values/strings.xml new file mode 100644 index 0000000000000..754ba722d081a --- /dev/null +++ b/packages/overlays/DisplayCutoutEmulationCornerOverlay/res/values/strings.xml @@ -0,0 +1,22 @@ + + + + + Corner display cutout + + +