From f60bfae8863a1ddb2fe8f4938466763b95007f30 Mon Sep 17 00:00:00 2001 From: Yunfan Chen Date: Tue, 15 Dec 2020 14:21:07 +0900 Subject: [PATCH] Support tappable elements on left/right sides This is to let window provide tappable elements on left or right side. This is useful when there's a task bar. The task bar needs to provide tappable elements insets on the side where the bar is, and it may not be the top or bottom side. Bug: 172289399 Test: atest InsetsStateTest Test: go/wm-smoke Change-Id: I5bc8d010f4ad212acb779265aff1d2622f5e2da4 --- core/java/android/view/InsetsState.java | 26 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/core/java/android/view/InsetsState.java b/core/java/android/view/InsetsState.java index 41b2fb4d20975..b66dd29e02eff 100644 --- a/core/java/android/view/InsetsState.java +++ b/core/java/android/view/InsetsState.java @@ -116,20 +116,22 @@ public class InsetsState implements Parcelable { public static final int ITYPE_LEFT_MANDATORY_GESTURES = 9; public static final int ITYPE_RIGHT_MANDATORY_GESTURES = 10; - public static final int ITYPE_TOP_TAPPABLE_ELEMENT = 11; - public static final int ITYPE_BOTTOM_TAPPABLE_ELEMENT = 12; + public static final int ITYPE_LEFT_TAPPABLE_ELEMENT = 11; + public static final int ITYPE_TOP_TAPPABLE_ELEMENT = 12; + public static final int ITYPE_RIGHT_TAPPABLE_ELEMENT = 13; + public static final int ITYPE_BOTTOM_TAPPABLE_ELEMENT = 14; - public static final int ITYPE_LEFT_DISPLAY_CUTOUT = 13; - public static final int ITYPE_TOP_DISPLAY_CUTOUT = 14; - public static final int ITYPE_RIGHT_DISPLAY_CUTOUT = 15; - public static final int ITYPE_BOTTOM_DISPLAY_CUTOUT = 16; + public static final int ITYPE_LEFT_DISPLAY_CUTOUT = 15; + public static final int ITYPE_TOP_DISPLAY_CUTOUT = 16; + public static final int ITYPE_RIGHT_DISPLAY_CUTOUT = 17; + public static final int ITYPE_BOTTOM_DISPLAY_CUTOUT = 18; /** Input method window. */ - public static final int ITYPE_IME = 17; + public static final int ITYPE_IME = 19; /** Additional system decorations inset type. */ - public static final int ITYPE_CLIMATE_BAR = 18; - public static final int ITYPE_EXTRA_NAVIGATION_BAR = 19; + public static final int ITYPE_CLIMATE_BAR = 20; + public static final int ITYPE_EXTRA_NAVIGATION_BAR = 21; static final int LAST_TYPE = ITYPE_EXTRA_NAVIGATION_BAR; public static final int SIZE = LAST_TYPE + 1; @@ -542,7 +544,9 @@ public class InsetsState implements Parcelable { case ITYPE_LEFT_GESTURES: case ITYPE_RIGHT_GESTURES: return Type.SYSTEM_GESTURES; + case ITYPE_LEFT_TAPPABLE_ELEMENT: case ITYPE_TOP_TAPPABLE_ELEMENT: + case ITYPE_RIGHT_TAPPABLE_ELEMENT: case ITYPE_BOTTOM_TAPPABLE_ELEMENT: return Type.TAPPABLE_ELEMENT; case ITYPE_LEFT_DISPLAY_CUTOUT: @@ -615,8 +619,12 @@ public class InsetsState implements Parcelable { return "ITYPE_LEFT_MANDATORY_GESTURES"; case ITYPE_RIGHT_MANDATORY_GESTURES: return "ITYPE_RIGHT_MANDATORY_GESTURES"; + case ITYPE_LEFT_TAPPABLE_ELEMENT: + return "ITYPE_LEFT_TAPPABLE_ELEMENT"; case ITYPE_TOP_TAPPABLE_ELEMENT: return "ITYPE_TOP_TAPPABLE_ELEMENT"; + case ITYPE_RIGHT_TAPPABLE_ELEMENT: + return "ITYPE_RIGHT_TAPPABLE_ELEMENT"; case ITYPE_BOTTOM_TAPPABLE_ELEMENT: return "ITYPE_BOTTOM_TAPPABLE_ELEMENT"; case ITYPE_LEFT_DISPLAY_CUTOUT: