Customize Rounded Corner and punch hole for C10/G10

Screen size : 1440x3120

Test: make and flash, enable debug mode and check visual
Bug: 199468172
Bug: 199467921
Bug: 203593020
Bug: 203592814
Change-Id: I0bc273452756a48608e3a7d08e9d19ee85fdcc6f
diff --git a/cheetah/overlay/frameworks/base/core/res/res/values/config.xml b/cheetah/overlay/frameworks/base/core/res/res/values/config.xml
index 62fe42a..b85ea99 100644
--- a/cheetah/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/cheetah/overlay/frameworks/base/core/res/res/values/config.xml
@@ -44,6 +44,29 @@
          Must be in the range specified by minimum and maximum. -->
     <item name="config_screenBrightnessSettingDefaultFloat" format="float" type="dimen">0.17429718</item>
 
+    <!-- Whether the display cutout region of the main built-in display should be forced to
+        black in software (to avoid aliasing or emulate a cutout that is not physically existent).
+    -->
+    <bool name="config_fillMainBuiltInDisplayCutout">true</bool>
+
+    <!-- Display cutout configuration -->
+    <string translatable="false" name="config_mainBuiltInDisplayCutout">
+        M 676,72
+        a 43,43 0 1 0 86,0
+        a 43,43 0 1 0 -86,0
+        Z
+        @left
+    </string>
+
+    <string translatable="false" name="config_mainBuiltInDisplayCutoutRectApproximation">
+        M 653,0
+        h 145
+        v 130
+        h -145
+        Z
+        @left
+    </string>
+
     <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
       The N entries of this array define N  1 zones as follows:
          Zone 0:        0 <= LUX < array[0]
diff --git a/cheetah/overlay/frameworks/base/core/res/res/values/dimens.xml b/cheetah/overlay/frameworks/base/core/res/res/values/dimens.xml
new file mode 100644
index 0000000..2e602ee
--- /dev/null
+++ b/cheetah/overlay/frameworks/base/core/res/res/values/dimens.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2016, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <!-- Radius of the software rounded corners. -->
+    <dimen name="rounded_corner_radius">50px</dimen>
+    <dimen name="rounded_corner_radius_top">50px</dimen>
+    <dimen name="rounded_corner_radius_bottom">49px</dimen>
+
+    <!-- Height of the status bar.
+         Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
+         -->
+    <dimen name="status_bar_height">28dp</dimen>
+
+    <!-- Adjustment for software rounded corners since corners aren't perfectly round. -->
+    <dimen name="rounded_corner_radius_adjustment">5px</dimen>
+</resources>
diff --git a/cheetah/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_bottom.xml b/cheetah/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_bottom.xml
new file mode 100644
index 0000000..016390f
--- /dev/null
+++ b/cheetah/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_bottom.xml
@@ -0,0 +1,24 @@
+<!--
+    Copyright (C) 2021 The Android Open Source Project
+
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="176px"
+    android:height="176px"
+    android:viewportWidth="176"
+    android:viewportHeight="176">
+
+    <path
+        android:fillColor="#000000"
+        android:pathData="M 176,0 C 115.0238,1.1656496 102.53444,1.6177119 71.39639,3.3840542 55.923895,4.7275334 47.497614,6.018167 41.513855,7.981025 c -4.739091,1.5545684 -10.12658,4.010582 -14.72796,6.912399 -3.88932,2.452765 -6.723047,5.031081 -9.855743,8.228644 -3.872981,3.953175 -5.63514,7.245344 -7.8627801,11.693275 C 6.5442473,39.853268 4.8906853,45.485594 4.2629643,49.251025 2.1107263,62.161384 2.0435492,76.126365 1.3622065,93.833044 0.29590205,121.54408 0.79450819,135.72178 0,176 V 0 Z" />
+</vector>
+
diff --git a/cheetah/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_top.xml b/cheetah/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_top.xml
new file mode 100644
index 0000000..c1ab6e1
--- /dev/null
+++ b/cheetah/overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_top.xml
@@ -0,0 +1,24 @@
+<!--
+    Copyright (C) 2021 The Android Open Source Project
+
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="176px"
+    android:height="176px"
+    android:viewportWidth="176"
+    android:viewportHeight="176">
+
+    <path
+        android:fillColor="#000000"
+        android:pathData="M 176,0 C 115.0238,1.1656496 102.53444,1.6177119 71.39639,3.3840542 55.658931,4.464517 48.371797,5.381139 40.939069,7.5951704 36.159077,9.0190158 30.970656,11.336916 26.369276,14.238733 22.479956,16.691498 19.646229,19.269814 16.513533,22.467377 12.640552,26.420552 10.129621,29.74615 8.1077333,34.291306 5.3988084,40.380905 4.5631294,44.598944 3.760158,49.204306 1.5210754,62.04634 2.0435492,76.126365 1.3622065,93.833044 0.29590205,121.54408 0.79450819,135.72178 0,176 V 0 Z" />
+</vector>
+
diff --git a/cheetah/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/cheetah/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
new file mode 100644
index 0000000..45336e6
--- /dev/null
+++ b/cheetah/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2021, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- Type of a sensor that provides a low-power estimate of the desired display
+         brightness, suitable to listen to while the device is asleep (e.g. during
+         always-on display) -->
+    <string name="doze_brightness_sensor_type" translatable="false">com.google.sensor.binned_brightness</string>
+
+    <!-- Doze: can we assume the pickup sensor includes a proximity check? -->
+    <bool name="doze_pickup_performs_proximity_check">true</bool>
+
+    <!-- Doze: whether the double tap sensor reports 2D touch coordinates -->
+    <bool name="doze_double_tap_reports_touch_coordinates">true</bool>
+
+    <!-- Doze: only register sensors that use prox when device is in certain Display states. This
+     may delay registering sensors when device first shows dozing UI but the
+     Display & Power state hasn't changed to low-power mode yet. -->
+    <bool name="doze_selectively_register_prox">true</bool>
+
+    <!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
+               to brightness values; -1 means keeping the current brightness. -->
+    <integer-array name="config_doze_brightness_sensor_to_brightness">
+        <item>-1</item> <!-- 0: OFF -->
+        <item>5</item> <!-- 1: NIGHT -->
+        <item>5</item> <!-- 2: LOW -->
+        <item>16</item> <!-- 3: HIGH -->
+        <item>16</item> <!-- 4: SUN -->
+    </integer-array>
+
+    <!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
+               to an opacity value for a black scrim that is overlaid in AOD1.
+               Valid range is from 0 (transparent) to 255 (opaque).
+               -1 means keeping the current opacity. -->
+    <integer-array name="config_doze_brightness_sensor_to_scrim_opacity">
+        <item>-1</item> <!-- 0: OFF -->
+        <item>133</item> <!-- 1: NIGHT -->
+        <item>0</item> <!-- 2: LOW -->
+        <item>0</item> <!-- 3: HIGH -->
+        <item>0</item> <!-- 4: SUN -->
+    </integer-array>
+
+    <bool name="config_roundedCornerMultipleRadius">true</bool>
+
+    <!-- Configure 13px of extra protection around the front-facing camera -->
+    <string translatable="false" name="config_frontBuiltInDisplayCutoutProtection">
+        M 661,72
+        a 57,57 0 1 0 114,0
+        a 57,57 0 1 0 -114,0
+        Z
+    </string>
+
+    <!-- Camera 1 is the front camera on barbet -->
+    <string translatable="false" name="config_protectedCameraId">1</string>
+
+    <!-- Comma-separated list of packages to exclude from camera protection. In our case,
+    ignore the gaze detection package -->
+    <string translatable="false" name="config_cameraProtectionExcludedPackages">com.google.android.as</string>
+
+    <bool name="config_enableDisplayCutoutProtection">true</bool>
+</resources>
+
diff --git a/cheetah/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml b/cheetah/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
new file mode 100644
index 0000000..fb6ecc9
--- /dev/null
+++ b/cheetah/overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2021, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+-->
+<resources>
+    <!-- for 20dp of padding at 3.5px/dp at default density -->
+    <dimen name="rounded_corner_content_padding">50px</dimen>
+
+    <!-- the padding on the top of the statusbar (usually 0) -->
+    <dimen name="status_bar_padding_top">1px</dimen>
+
+    <!-- Height of the status bar header bar when on Keyguard (match status_bar_height) -->
+    <dimen name="status_bar_header_height_keyguard">@*android:dimen/status_bar_height</dimen>
+
+    <!-- Padding for the system icons on the keyguard (when no multi user switch is showing).
+    The icons always have a 4dp padding in the container so we only need 26 extra px of padding
+    for the corners -->
+    <dimen name="system_icons_super_container_avatarless_margin_end">26px</dimen>
+
+    <!-- Margin on the right side of the system icon group on Keyguard. -->
+    <dimen name="system_icons_keyguard_padding_end">6.5dp</dimen>
+
+    <!-- A path similar to frameworks/base/core/res/res/values/config.xml
+        config_mainBuiltInDisplayCutout that describes a path larger than the exact path of a display
+        cutout. If present as well as config_enableDisplayCutoutProtection is set to true, then
+        SystemUI will draw this "protection path" instead of the display cutout path that is normally
+        used for anti-aliasing.
+
+        This path will only be drawn when the front-facing camera turns on, otherwise the main
+        DisplayCutout path will be rendered
+    -->
+    <string translatable="false" name="config_frontBuiltInDisplayCutoutProtection">
+        M 665,71
+        a 57,57 0 1 0 114,0 57,57 0 1 0 -114,0
+        Z
+    </string>
+
+    <!-- Camera 1 is the front camera -->
+    <string translatable="false" name="config_protectedCameraId">1</string>
+
+    <bool name="config_enableDisplayCutoutProtection">true</bool>
+
+    <!-- Location on the screen of the center of the physical power button. -->
+    <dimen name="physical_power_button_center_screen_location_y">940px</dimen>
+
+    <!-- Location on the screen of the center of the physical volume up/down buttons. -->
+    <dimen name="physical_volume_up_button_center_screen_location_y">1320px</dimen>
+    <dimen name="physical_volume_down_button_center_screen_location_y">1520px</dimen>
+
+    <!-- Padding for the lock icon on the keyguard. In pixels - should not scale with display size. -->
+    <dimen name="lock_icon_padding">68px</dimen>
+
+    <!-- Alpha in duration in ms for the auth ripple to become fully vislble. If set to 0, it is immediately visible. -->
+    <integer name="auth_ripple_alpha_in_duration">0</integer>
+</resources>
+