Cutout Overlay: Flip color in inverted color mode

Flips the color when the screen is inverted such
that it will end up black again after composition.

Change-Id: I8800c666b60061a58f1345a2609a088a02e82f48
Fixes: 80102202
Test: Enable cutout overlay, enable color inversion, verify overlay is black.
diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
index e347a14..efaf557 100644
--- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
+++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
@@ -135,12 +135,14 @@
     private void setupDecorations() {
         mOverlay = LayoutInflater.from(mContext)
                 .inflate(R.layout.rounded_corners, null);
-        ((ViewGroup)mOverlay).addView(new DisplayCutoutView(mContext, true,
-                this::updateWindowVisibilities));
+        DisplayCutoutView cutoutTop = new DisplayCutoutView(mContext, true,
+                this::updateWindowVisibilities);
+        ((ViewGroup)mOverlay).addView(cutoutTop);
         mBottomOverlay = LayoutInflater.from(mContext)
                 .inflate(R.layout.rounded_corners, null);
-        ((ViewGroup)mBottomOverlay).addView(new DisplayCutoutView(mContext, false,
-                this::updateWindowVisibilities));
+        DisplayCutoutView cutoutBottom = new DisplayCutoutView(mContext, false,
+                this::updateWindowVisibilities);
+        ((ViewGroup)mBottomOverlay).addView(cutoutBottom);
 
         mOverlay.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
         mOverlay.setAlpha(0);
@@ -170,6 +172,8 @@
                 ((ImageView) mOverlay.findViewById(R.id.right)).setImageTintList(tintList);
                 ((ImageView) mBottomOverlay.findViewById(R.id.left)).setImageTintList(tintList);
                 ((ImageView) mBottomOverlay.findViewById(R.id.right)).setImageTintList(tintList);
+                cutoutTop.setColor(tint);
+                cutoutBottom.setColor(tint);
             }
         };
         setting.setListening(true);
@@ -414,6 +418,7 @@
         private final int[] mLocation = new int[2];
         private final boolean mStart;
         private final Runnable mVisibilityChangedListener;
+        private int mColor = Color.BLACK;
 
         public DisplayCutoutView(Context context, boolean start,
                 Runnable visibilityChangedListener) {
@@ -423,6 +428,11 @@
             setId(R.id.display_cutout);
         }
 
+        public void setColor(int color) {
+            mColor = color;
+            invalidate();
+        }
+
         @Override
         protected void onAttachedToWindow() {
             super.onAttachedToWindow();
@@ -443,7 +453,7 @@
             getLocationOnScreen(mLocation);
             canvas.translate(-mLocation[0], -mLocation[1]);
             if (!mBoundingPath.isEmpty()) {
-                mPaint.setColor(Color.BLACK);
+                mPaint.setColor(mColor);
                 mPaint.setStyle(Paint.Style.FILL);
                 mPaint.setAntiAlias(true);
                 canvas.drawPath(mBoundingPath, mPaint);