Merge "Tint keyguard icons" into pi-dev
diff --git a/api/current.txt b/api/current.txt
index 7bdff3f..01117c9 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -46575,6 +46575,7 @@
   }
 
   public final class DisplayCutout {
+    ctor public DisplayCutout(android.graphics.Rect, android.graphics.Region);
     method public android.graphics.Region getBounds();
     method public int getSafeInsetBottom();
     method public int getSafeInsetLeft();
diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java
index f5b7068..bb16afd 100644
--- a/core/java/android/view/DisplayCutout.java
+++ b/core/java/android/view/DisplayCutout.java
@@ -89,7 +89,21 @@
 
     private final Rect mSafeInsets;
     private final Region mBounds;
-    private final Size mFrameSize;
+    private final Size mFrameSize;  // TODO: move frameSize, calculateRelativeTo, etc. into WM.
+
+    /**
+     * Creates a DisplayCutout instance.
+     *
+     * @param safeInsets the insets from each edge which avoid the display cutout as returned by
+     *                   {@link #getSafeInsetTop()} etc.
+     * @param bounds the bounds of the display cutout as returned by {@link #getBounds()}.
+     */
+    // TODO(b/73953958): @VisibleForTesting(visibility = PRIVATE)
+    public DisplayCutout(Rect safeInsets, Region bounds) {
+        this(safeInsets != null ? new Rect(safeInsets) : ZERO_RECT,
+                bounds != null ? Region.obtain(bounds) : Region.obtain(),
+                null /* frameSize */);
+    }
 
     /**
      * Creates a DisplayCutout instance.
@@ -114,28 +128,28 @@
         return mSafeInsets.equals(ZERO_RECT);
     }
 
-    /** Returns the inset from the top which avoids the display cutout. */
+    /** Returns the inset from the top which avoids the display cutout in pixels. */
     public int getSafeInsetTop() {
         return mSafeInsets.top;
     }
 
-    /** Returns the inset from the bottom which avoids the display cutout. */
+    /** Returns the inset from the bottom which avoids the display cutout in pixels. */
     public int getSafeInsetBottom() {
         return mSafeInsets.bottom;
     }
 
-    /** Returns the inset from the left which avoids the display cutout. */
+    /** Returns the inset from the left which avoids the display cutout in pixels. */
     public int getSafeInsetLeft() {
         return mSafeInsets.left;
     }
 
-    /** Returns the inset from the right which avoids the display cutout. */
+    /** Returns the inset from the right which avoids the display cutout in pixels. */
     public int getSafeInsetRight() {
         return mSafeInsets.right;
     }
 
     /**
-     * Returns the safe insets in a rect.
+     * Returns the safe insets in a rect in pixel units.
      *
      * @return a rect which is set to the safe insets.
      * @hide
@@ -148,7 +162,7 @@
      * Returns the bounding region of the cutout.
      *
      * @return the bounding region of the cutout. Coordinates are relative
-     *         to the top-left corner of the content view.
+     *         to the top-left corner of the content view and in pixel units.
      */
     public Region getBounds() {
         return Region.obtain(mBounds);
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index 57e3c75..a1f184d 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -5379,6 +5379,46 @@
     // OS: P
     SETTINGS_TV_WIFI_ADD_KNOWN_CATEGORY = 1331;
 
+    // ACTION: DND Settings > What to block > full screen intents
+    //   SUBTYPE: false is allowed, true is blocked
+    // CATEGORY: SETTINGS
+    // OS: 6.0
+    ACTION_ZEN_BLOCK_FULL_SCREEN_INTENTS = 1332;
+
+    // ACTION: DND Settings > What to block
+    //   SUBTYPE: false is allowed, true is blocked
+    // OS: P
+    ACTION_ZEN_BLOCK_LIGHT = 1333;
+
+    // ACTION: DND Settings > What to block
+    //   SUBTYPE: false is allowed, true is blocked
+    // OS: P
+    ACTION_ZEN_BLOCK_PEEK = 1334;
+
+    // ACTION: DND Settings > What to block
+    //   SUBTYPE: false is allowed, true is blocked
+    // OS: P
+    ACTION_ZEN_BLOCK_STATUS = 1335;
+
+    // ACTION: DND Settings > What to block
+    //   SUBTYPE: false is allowed, true is blocked
+    // OS: P
+    ACTION_ZEN_BLOCK_BADGE = 1336;
+
+    // ACTION: DND Settings > What to block
+    //   SUBTYPE: false is allowed, true is blocked
+    // OS: P
+    ACTION_ZEN_BLOCK_AMBIENT = 1337;
+
+    // ACTION: DND Settings > What to block
+    //   SUBTYPE: false is allowed, true is blocked
+    // OS: P
+    ACTION_ZEN_BLOCK_NOTIFICATION_LIST = 1338;
+
+    // OPEN: DND Settings > What to block
+    // OS: P
+    ZEN_WHAT_TO_BLOCK = 1339;
+
     // ---- End P Constants, all P constants go above this line ----
     // Add new aosp constants above this line.
     // END OF AOSP CONSTANTS