Merge "DO NOT MERGE: Make CarUi alert dialog titles span multiple lines" into qt-car-dev
diff --git a/car-ui-lib/res/layout/car_ui_alert_dialog_title_with_subtitle.xml b/car-ui-lib/res/layout/car_ui_alert_dialog_title_with_subtitle.xml
index 3412610..f8d73c3 100644
--- a/car-ui-lib/res/layout/car_ui_alert_dialog_title_with_subtitle.xml
+++ b/car-ui-lib/res/layout/car_ui_alert_dialog_title_with_subtitle.xml
@@ -34,11 +34,9 @@
         style="@style/Widget.CarUi.AlertDialog.TitleContainer">
         <TextView
             android:id="@+id/car_ui_alert_title"
-            android:singleLine="true"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:textAlignment="viewStart"
-            style="?android:attr/windowTitleStyle" />
+            android:textAppearance="@style/TextAppearance.CarUi.AlertDialog.Title" />
 
         <TextView
             android:layout_width="match_parent"
diff --git a/car-ui-lib/res/values/dimens.xml b/car-ui-lib/res/values/dimens.xml
index a24a484..22f174d 100644
--- a/car-ui-lib/res/values/dimens.xml
+++ b/car-ui-lib/res/values/dimens.xml
@@ -39,6 +39,9 @@
     <dimen name="car_ui_body1_size">32sp</dimen>
     <dimen name="car_ui_body2_size">28sp</dimen>
     <dimen name="car_ui_body3_size">24sp</dimen>
+    <dimen name="car_ui_sub1_size">22sp</dimen>
+    <dimen name="car_ui_sub2_size">20sp</dimen>
+    <dimen name="car_ui_sub3_size">18sp</dimen>
 
     <!-- Tabs -->
 
diff --git a/car-ui-lib/res/values/styles.xml b/car-ui-lib/res/values/styles.xml
index b763c71..77dd80c 100644
--- a/car-ui-lib/res/values/styles.xml
+++ b/car-ui-lib/res/values/styles.xml
@@ -250,6 +250,18 @@
         <item name="android:textSize">@dimen/car_ui_body3_size</item>
     </style>
 
+    <style name="TextAppearance.CarUi.Sub1">
+        <item name="android:textSize">@dimen/car_ui_sub1_size</item>
+    </style>
+
+    <style name="TextAppearance.CarUi.Sub2">
+        <item name="android:textSize">@dimen/car_ui_sub2_size</item>
+    </style>
+
+    <style name="TextAppearance.CarUi.Sub3">
+        <item name="android:textSize">@dimen/car_ui_sub3_size</item>
+    </style>
+
     <style name="TextAppearance.CarUi.PreferenceCategoryTitle">
         <item name="android:fontFamily">@string/car_ui_preference_category_title_font_family</item>
         <item name="android:textColor">@color/car_ui_preference_category_title_text_color</item>
@@ -271,9 +283,8 @@
         <item name="android:textSize">@dimen/car_ui_preference_edit_text_dialog_message_text_size</item>
     </style>
 
-    <style name="TextAppearance.CarUi.AlertDialog.Subtitle" parent="android:TextAppearance.DeviceDefault">
-        <item name="android:textAlignment">viewStart</item>
-    </style>
+    <style name="TextAppearance.CarUi.AlertDialog.Title" parent="TextAppearance.CarUi.Body3"/>
+    <style name="TextAppearance.CarUi.AlertDialog.Subtitle" parent="TextAppearance.CarUi.Sub3"/>
 
     <style name="TextAppearance.CarUi.Widget" parent="android:TextAppearance.DeviceDefault.Widget">
         <item name="android:textAlignment">viewStart</item>
diff --git a/car-ui-lib/tests/apitest/current.xml b/car-ui-lib/tests/apitest/current.xml
index a37858e..b4ef872 100644
--- a/car-ui-lib/tests/apitest/current.xml
+++ b/car-ui-lib/tests/apitest/current.xml
@@ -127,6 +127,9 @@
   <public type="dimen" name="car_ui_scrollbar_separator_margin"/>
   <public type="dimen" name="car_ui_scrollbar_thumb_radius"/>
   <public type="dimen" name="car_ui_scrollbar_thumb_width"/>
+  <public type="dimen" name="car_ui_sub1_size"/>
+  <public type="dimen" name="car_ui_sub2_size"/>
+  <public type="dimen" name="car_ui_sub3_size"/>
   <public type="dimen" name="car_ui_toolbar_bottom_inset"/>
   <public type="dimen" name="car_ui_toolbar_bottom_view_height"/>
   <public type="dimen" name="car_ui_toolbar_end_inset"/>
@@ -224,6 +227,7 @@
   <public type="style" name="PreferenceFragmentList.CarUi"/>
   <public type="style" name="TextAppearance.CarUi"/>
   <public type="style" name="TextAppearance.CarUi.AlertDialog.Subtitle"/>
+  <public type="style" name="TextAppearance.CarUi.AlertDialog.Title"/>
   <public type="style" name="TextAppearance.CarUi.Body1"/>
   <public type="style" name="TextAppearance.CarUi.Body2"/>
   <public type="style" name="TextAppearance.CarUi.Body3"/>
@@ -234,6 +238,9 @@
   <public type="style" name="TextAppearance.CarUi.PreferenceEditTextDialogMessage"/>
   <public type="style" name="TextAppearance.CarUi.PreferenceSummary"/>
   <public type="style" name="TextAppearance.CarUi.PreferenceTitle"/>
+  <public type="style" name="TextAppearance.CarUi.Sub1"/>
+  <public type="style" name="TextAppearance.CarUi.Sub2"/>
+  <public type="style" name="TextAppearance.CarUi.Sub3"/>
   <public type="style" name="TextAppearance.CarUi.Widget"/>
   <public type="style" name="TextAppearance.CarUi.Widget.Toolbar"/>
   <public type="style" name="TextAppearance.CarUi.Widget.Toolbar.Tab"/>
diff --git a/car-ui-lib/tests/paintbooth/res/values/strings.xml b/car-ui-lib/tests/paintbooth/res/values/strings.xml
index feef714..470b416 100644
--- a/car-ui-lib/tests/paintbooth/res/values/strings.xml
+++ b/car-ui-lib/tests/paintbooth/res/values/strings.xml
@@ -248,6 +248,9 @@
   <!-- Button that shows a dialog with a subtitle and icon [CHAR_LIMIT=50]-->
   <string name="dialog_show_subtitle_and_icon">Show Dialog with title, subtitle, and icon</string>
 
+  <!-- Button that shows a dialog with a long title, subtitle and icon [CHAR_LIMIT=500]-->
+  <string name="dialog_show_long_subtitle_and_icon">Show Dialog with a long title, subtitle, and icon</string>
+
   <!-- Text to show Dialog with single choice items-->
   <string name="dialog_show_single_choice">Show with single choice items</string>
 
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java
index d85d74f..c9760ec 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/dialogs/DialogsActivity.java
@@ -78,6 +78,8 @@
                 v -> showDialogWithSubtitle()));
         mButtons.add(Pair.create(R.string.dialog_show_subtitle_and_icon,
                 v -> showDialogWithSubtitleAndIcon()));
+        mButtons.add(Pair.create(R.string.dialog_show_long_subtitle_and_icon,
+                v -> showDialogWithLongSubtitleAndIcon()));
         mButtons.add(Pair.create(R.string.dialog_show_single_choice,
                 v -> showDialogWithSingleChoiceItems()));
         mButtons.add(Pair.create(R.string.dialog_show_permission_dialog,
@@ -201,6 +203,17 @@
                 .show();
     }
 
+    private void showDialogWithLongSubtitleAndIcon() {
+        new AlertDialogBuilder(this)
+                .setTitle("This is a very long title. It should likely span across "
+                            + "multiple lines or something. It shouldn't get cut off.")
+                .setSubtitle("This is a very long subtitle. It should likely span across "
+                        + "multiple lines or something. It shouldn't get cut off.")
+                .setMessage("My Message!")
+                .setIcon(R.drawable.ic_tracklist)
+                .show();
+    }
+
     private void showPermissionDialog() {
         if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
             Toast.makeText(this, "Permission already granted. Remove CAMERA permission from "