[MEP] renew the sim confirm dialog UI

- renew the sim confirm dialog

Bug: 199902896
Test: build pass and local UI test
Change-Id: Icb00b3fc32066e21d22cbeca1fdf50e5d7dbef20
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 99b62a3..95f6a27 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -659,12 +659,12 @@
         <activity android:name=".network.telephony.ToggleSubscriptionDialogActivity"
                   android:exported="false"
                   android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
-                  android:theme="@style/Theme.AlertDialog"/>
+                  android:theme="@style/Theme.AlertDialog.SimConfirmDialog"/>
 
         <activity android:name=".network.telephony.DeleteEuiccSubscriptionDialogActivity"
                   android:exported="false"
                   android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
-                  android:theme="@style/Theme.AlertDialog"/>
+                  android:theme="@style/Theme.AlertDialog.SimConfirmDialog"/>
 
         <activity
             android:name="Settings$TetherSettingsActivity"
@@ -4230,14 +4230,14 @@
             android:exported="false"
             android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
             android:launchMode="singleInstance"
-            android:theme="@style/Theme.AlertDialog"/>
+            android:theme="@style/Theme.AlertDialog.SimConfirmDialog"/>
 
         <activity
             android:name=".sim.DsdsDialogActivity"
             android:exported="false"
             android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
             android:launchMode="singleInstance"
-            android:theme="@style/Theme.AlertDialog"/>
+            android:theme="@style/Theme.AlertDialog.SimConfirmDialog"/>
 
         <service android:name=".sim.SimNotificationService"
                  android:permission="android.permission.BIND_JOB_SERVICE" />
diff --git a/res/drawable/sim_confirm_dialog_btn_outline.xml b/res/drawable/sim_confirm_dialog_btn_outline.xml
new file mode 100644
index 0000000..5722f8c
--- /dev/null
+++ b/res/drawable/sim_confirm_dialog_btn_outline.xml
@@ -0,0 +1,41 @@
+<?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.
+  -->
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+       android:insetTop="16dp"
+       android:insetBottom="24dp">
+    <ripple android:color="?android:attr/colorControlHighlight">
+        <item android:id="@android:id/mask">
+            <shape android:shape="rectangle">
+                <solid android:color="@android:color/white"/>
+                <corners android:radius="24dp"/>
+            </shape>
+        </item>
+        <item>
+            <shape android:shape="rectangle">
+                <corners android:radius="24dp"/>
+                <solid android:color="@android:color/transparent"/>
+                <stroke android:color="?androidprv:attr/colorAccentPrimaryVariant"
+                        android:width="1dp" />
+                <padding android:left="16dp"
+                         android:top="8dp"
+                         android:right="16dp"
+                         android:bottom="8dp"/>
+            </shape>
+        </item>
+    </ripple>
+</inset>
diff --git a/res/drawable/sim_confirm_dialog_rounded_bg.xml b/res/drawable/sim_confirm_dialog_rounded_bg.xml
new file mode 100644
index 0000000..ab7e392
--- /dev/null
+++ b/res/drawable/sim_confirm_dialog_rounded_bg.xml
@@ -0,0 +1,30 @@
+<?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.
+-->
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+    android:insetLeft="24dp"
+    android:insetRight="24dp">
+    <shape xmlns:android="http://schemas.android.com/apk/res/android"
+           android:shape="rectangle">
+        <solid android:color="@color/settingslib_state_on_color"/>
+        <corners
+            android:bottomLeftRadius="8dp"
+            android:topLeftRadius="8dp"
+            android:bottomRightRadius="8dp"
+            android:topRightRadius="8dp"
+            />
+    </shape>
+</inset>
diff --git a/res/layout/sim_confirm_dialog_item_multiple_enabled_profiles_supported.xml b/res/layout/sim_confirm_dialog_item_multiple_enabled_profiles_supported.xml
new file mode 100644
index 0000000..003cdbf
--- /dev/null
+++ b/res/layout/sim_confirm_dialog_item_multiple_enabled_profiles_supported.xml
@@ -0,0 +1,30 @@
+<?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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/title"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?attr/listPreferredItemHeightSmall"
+    style="?attr/materialAlertDialogBodyTextStyle"
+    android:gravity="center"
+    android:paddingTop="?attr/listPreferredItemPaddingStart"
+    android:paddingBottom="?attr/listPreferredItemPaddingEnd"
+    android:paddingLeft="?attr/listPreferredItemPaddingLeft"
+    android:paddingRight="?attr/listPreferredItemPaddingRight"
+    android:background="@drawable/sim_confirm_dialog_rounded_bg"
+    android:textAppearance="@style/TextAppearance.SimConfirmDialogList"
+    />
diff --git a/res/layout/sim_confirm_dialog_multiple_enabled_profiles_supported.xml b/res/layout/sim_confirm_dialog_multiple_enabled_profiles_supported.xml
index 4404482..610bf3d 100644
--- a/res/layout/sim_confirm_dialog_multiple_enabled_profiles_supported.xml
+++ b/res/layout/sim_confirm_dialog_multiple_enabled_profiles_supported.xml
@@ -16,42 +16,49 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical"
-    style="@style/Theme.Material3.DayNight.Dialog.Alert">
+    android:orientation="vertical">
         <TextView
             android:id="@+id/msg"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
+            android:layout_height="wrap_content"
+            android:paddingEnd="24dp"
+            android:paddingTop="16dp"
+            android:paddingStart="24dp"
+            android:gravity="center"
+            android:textAppearance="@style/TextAppearance.DialogMessage"/>
         <ListView
             android:id="@+id/carrier_list"
-            android:layout_width="wrap_content"
+            android:layout_gravity="center"
+            android:paddingTop="16dp"
+            android:dividerHeight="1dp"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"/>
 
         <LinearLayout
+            android:id="@+id/info_outline_layout"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:minWidth="56dp"
             android:gravity="start|top"
             android:orientation="horizontal"
-            android:paddingEnd="12dp"
+            android:paddingEnd="24dp"
             android:paddingTop="16dp"
-            android:paddingBottom="4dp"
+            android:paddingStart="24dp"
+            android:layout_marginBottom="16dp"
             android:baselineAligned="true">
                 <ImageView
                     android:src="@drawable/ic_info_outline_24dp"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:tint="?android:attr/textColorTertiary"/>
-
                 <TextView
                     android:id="@+id/info_outline"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:paddingTop="16dp"
-                    android:paddingBottom="8dp"
+                    android:paddingLeft="16dp"
                     android:text="@string/sim_action_switch_sub_dialog_info_outline_for_turning_off"
-                    android:textColor="?android:attr/textColorSecondary" />
+                    android:textColor="?android:attr/textColorSecondary"
+                    android:textAppearance="@style/TextAppearance.DialogMessage"/>
         </LinearLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/sim_confirm_dialog_title_multiple_enabled_profiles_supported.xml b/res/layout/sim_confirm_dialog_title_multiple_enabled_profiles_supported.xml
new file mode 100644
index 0000000..f43303f
--- /dev/null
+++ b/res/layout/sim_confirm_dialog_title_multiple_enabled_profiles_supported.xml
@@ -0,0 +1,25 @@
+<?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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/title"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingEnd="24dp"
+    android:paddingTop="16dp"
+    android:paddingLeft="24dp"
+    android:gravity="center"
+    style="?android:attr/textAppearanceLarge"/>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
index 87159b8..a388855 100644
--- a/res/values-night/styles.xml
+++ b/res/values-night/styles.xml
@@ -16,9 +16,18 @@
 -->
 
 <resources>
+    <style name="Widget.ActionBar.Base" parent="@android:style/Widget.DeviceDefault.ActionBar.Solid">
+        <item name="android:background">?android:attr/colorPrimaryDark</item>
+    </style>
 
-<style name="Widget.ActionBar.Base" parent="@android:style/Widget.DeviceDefault.ActionBar.Solid">
-  <item name="android:background">?android:attr/colorPrimaryDark</item>
-</style>
+    <style name="TextAppearance.SimConfirmDialogList" parent="@style/TextAppearance.DialogMessage">
+      <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+      <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+    </style>
 
+    <style name="TextAppearance.SimConfirmDialogList.Summary">
+        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+    </style>
 </resources>
\ No newline at end of file
diff --git a/res/values-night/themes.xml b/res/values-night/themes.xml
index 946cd91..4564827 100644
--- a/res/values-night/themes.xml
+++ b/res/values-night/themes.xml
@@ -34,6 +34,12 @@
         <item name="android:colorBackground">@*android:color/surface_dark</item>
     </style>
 
+    <style name="Theme.AlertDialog.Base.Material3" parent="Theme.MaterialComponents.DayNight.Dialog.Alert">
+        <item name="colorPrimary">@*android:color/primary_device_default_settings</item>
+        <item name="colorAccent">@*android:color/accent_device_default_dark</item>
+        <item name="android:colorBackground">@*android:color/surface_dark</item>
+    </style>
+
     <!-- Material theme for the pages containing TabLayout and ViewPager -->
     <style name="Theme.TabTheme" parent="@style/Theme.MaterialComponents.DayNight">
         <item name="colorPrimary">@*android:color/edge_effect_device_default_dark</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 49f2d27..806f004 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12961,7 +12961,7 @@
     <!-- Status message indicating the device is in the process of disconnecting from one mobile network and immediately connecting to another. [CHAR_LIMIT=NONE] -->
     <string name="sim_action_enabling_sim_without_carrier_name">Connecting to network&#8230;</string>
     <!-- Text of progress dialog indicating the subscription switch is in progress. [CHAR_LIMIT=NONE] -->
-    <string name="sim_action_switch_sub_dialog_progress">Switching to <xliff:g id="carrier_name" example="Google Fi">%1$s</xliff:g></string>
+    <string name="sim_action_switch_sub_dialog_progress">Switching to <xliff:g id="carrier_name" example="Google Fi">%1$s</xliff:g> for calls and messages&#8230;</string>
     <!-- Title of error message indicating that the device could not disconnect from one mobile network and immediately connect to another. [CHAR_LIMIT=NONE] -->
     <string name="sim_action_enable_sim_fail_title">Can\u2019t switch carrier</string>
     <!-- Body text of error message indicating the device could not disconnect from one mobile network and immediately connect to another, due to an unspecified issue. [CHAR_LIMIT=NONE] -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 8402dec..395a3bc 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -926,4 +926,25 @@
            parent="@*android:style/TextAppearance.DeviceDefault">
         <item name="android:textColor">?android:attr/textColorSecondary</item>
     </style>
+
+    <style name="TextAppearance.SimConfirmDialogList" parent="@style/TextAppearance.DialogMessage"/>
+
+    <style name="TextAppearance.SimConfirmDialogList.Summary">
+        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
+    </style>
+
+    <style name="SimConfirmDialog.OutlineButton" parent="@android:style/Widget.Material.Button">
+        <item name="android:layout_marginStart">8dp</item>
+        <item name="android:layout_height">36dp</item>
+        <item name="android:minWidth">0dp</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:lineHeight">20sp</item>
+        <item name="android:fontFamily">@*android:string/config_bodyFontFamilyMedium</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:background">@drawable/sim_confirm_dialog_btn_outline</item>
+    </style>
+
+    <style name="SimConfirmDialog.ButtonBarStyle" parent="@android:style/Widget.Material.ButtonBar">
+        <item name="android:paddingEnd">8dp</item>
+    </style>
 </resources>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 7c5c111..d73e157 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -151,6 +151,13 @@
         <item name="buttonBarButtonStyle">@*android:style/Widget.DeviceDefault.Button.ButtonBar.AlertDialog</item>
     </style>
 
+
+    <style name="Theme.AlertDialog.SimConfirmDialog">
+        <item name="buttonBarStyle">@style/SimConfirmDialog.ButtonBarStyle</item>
+        <item name="buttonBarButtonStyle">@style/SimConfirmDialog.OutlineButton</item>
+        <item name="android:textAllCaps">false</item>
+    </style>
+
     <style name="Theme.ConfirmDeviceCredentials" parent="Theme.SubSettings">
         <item name="confirmDeviceCredentialsSideMargin">@dimen/confirm_credentials_side_margin</item>
         <item name="confirmDeviceCredentialsTopMargin">@dimen/confirm_credentials_top_margin</item>
diff --git a/src/com/android/settings/network/telephony/ConfirmDialogFragment.java b/src/com/android/settings/network/telephony/ConfirmDialogFragment.java
index bad981a..6352180 100644
--- a/src/com/android/settings/network/telephony/ConfirmDialogFragment.java
+++ b/src/com/android/settings/network/telephony/ConfirmDialogFragment.java
@@ -112,11 +112,9 @@
         ArrayList<String> list = getArguments().getStringArrayList(ARG_LIST);
 
         Log.i(TAG, "Showing dialog with title =" + title);
-        AlertDialog.Builder builder =
-                new AlertDialog.Builder(getContext())
-                        .setTitle(title)
-                        .setPositiveButton(posBtnString, this)
-                        .setNegativeButton(negBtnString, this);
+        AlertDialog.Builder builder = new AlertDialog.Builder(getContext())
+                .setPositiveButton(posBtnString, this)
+                .setNegativeButton(negBtnString, this);
 
         if (list != null && !list.isEmpty()) {
             Log.i(TAG, "list =" + list.toString());
@@ -124,13 +122,22 @@
             View content = LayoutInflater.from(getContext()).inflate(
                     R.layout.sim_confirm_dialog_multiple_enabled_profiles_supported, null);
 
+            if (!TextUtils.isEmpty(title)) {
+                View titleView = LayoutInflater.from(getContext()).inflate(
+                        R.layout.sim_confirm_dialog_title_multiple_enabled_profiles_supported,
+                        null);
+                TextView titleTextView = titleView.findViewById(R.id.title);
+                titleTextView.setText(title);
+                builder.setCustomTitle(titleTextView);
+            }
             TextView dialogMessage = content.findViewById(R.id.msg);
             if (!TextUtils.isEmpty(message) && dialogMessage != null) {
                 dialogMessage.setText(message);
             }
 
             final ArrayAdapter<String> arrayAdapterItems = new ArrayAdapter<String>(
-                    getContext(), android.R.layout.select_dialog_item, list);
+                    getContext(),
+                    R.layout.sim_confirm_dialog_item_multiple_enabled_profiles_supported, list);
             final ListView lvItems = content.findViewById(R.id.carrier_list);
             if (lvItems != null) {
                 lvItems.setAdapter(arrayAdapterItems);
@@ -153,6 +160,9 @@
             }
             builder.setView(content);
         } else {
+            if (!TextUtils.isEmpty(title)) {
+                builder.setTitle(title);
+            }
             if (!TextUtils.isEmpty(message)) {
                 builder.setMessage(message);
             }