ThemePicker: Many UI / layout consistency fixes & improvements

paddings were not equal, text alignment was also all over the place and more...
make this app look less horrible and way more consistent

also add icon & font cards to the lockscreen tab as they also affect it

Change-Id: I4bfbb22651f7bdf163868b97f74a66f705e764cc
diff --git a/res/layout/font_preview_card.xml b/res/layout/font_preview_card.xml
index aa5c276..17b4ea8 100644
--- a/res/layout/font_preview_card.xml
+++ b/res/layout/font_preview_card.xml
@@ -28,6 +28,7 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/preview_theme_content_max_height"
         android:layout_marginTop="@dimen/preview_theme_content_margin"
+        android:layout_marginBottom="@dimen/preview_theme_content_margin"
         android:clipChildren="false"
         android:importantForAccessibility="noHideDescendants">
 
diff --git a/res/layout/font_section_view.xml b/res/layout/font_section_view.xml
index 9119b48..fde5b1e 100644
--- a/res/layout/font_section_view.xml
+++ b/res/layout/font_section_view.xml
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <com.android.customization.picker.font.FontSectionView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:paddingBottom="@dimen/section_bottom_padding"
-    android:paddingHorizontal="@dimen/section_horizontal_padding"
+    android:layout_height="wrap_content"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:background="?selectableItemBackground"
+    android:clickable="true"
+    android:paddingVertical="@dimen/option_section_vertical_padding"
+    android:paddingHorizontal="@dimen/section_horizontal_padding"
+    android:orientation="horizontal">
 
     <LinearLayout
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:layout_gravity="center_vertical"
+        android:layout_gravity="center"
         android:orientation="vertical">
 
         <TextView
@@ -32,7 +34,7 @@
         android:layout_width="@dimen/option_tile_width"
         android:layout_height="@dimen/option_tile_width"
         android:scaleType="center"
-        android:background="@drawable/option_border_color">
+        android:background="@drawable/picker_section_icon_background">
         <TextView
             android:id="@+id/thumbnail_text"
             android:layout_width="wrap_content"
diff --git a/res/layout/grid_section_view.xml b/res/layout/grid_section_view.xml
index fe31228..78ec7ac 100644
--- a/res/layout/grid_section_view.xml
+++ b/res/layout/grid_section_view.xml
@@ -16,11 +16,11 @@
 -->
 <com.android.customization.picker.grid.ui.view.GridSectionView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_width="match_parent"
     android:background="?selectableItemBackground"
     android:clickable="true"
-    android:paddingBottom="@dimen/section_bottom_padding"
+    android:paddingVertical="@dimen/option_section_vertical_padding"
     android:paddingHorizontal="@dimen/section_horizontal_padding"
     android:orientation="horizontal">
 
@@ -28,7 +28,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:layout_gravity="center_vertical"
+        android:layout_gravity="center"
         android:orientation="vertical">
 
         <TextView
@@ -44,14 +44,26 @@
             style="@style/SectionSubtitleTextStyle"/>
     </LinearLayout>
 
-    <ImageView
-        android:id="@+id/grid_section_tile"
+    <LinearLayout
         android:layout_width="@dimen/option_tile_width"
         android:layout_height="@dimen/option_tile_width"
-        android:scaleType="center"
-        android:src="@drawable/ic_grid_24px"
-        android:tint="@color/system_on_surface"
+        android:orientation="horizontal"
         android:background="@drawable/picker_section_icon_background"
-        android:contentDescription="@string/gird_picker_entry_content_description" />
+        android:contentDescription="@string/gird_picker_entry_content_description"
+        android:importantForAccessibility="noHideDescendants"
+        android:gravity="center"
+        android:divider="@drawable/horizontal_divider_14dp"
+        android:layout_gravity="center"
+        android:showDividers="middle">
 
-</com.android.customization.picker.grid.ui.view.GridSectionView>
\ No newline at end of file
+        <ImageView
+            android:id="@+id/grid_section_tile"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:scaleType="center"
+            android:src="@drawable/ic_grid_24px"
+            android:tint="@color/system_on_surface" />
+
+    </LinearLayout>
+
+</com.android.customization.picker.grid.ui.view.GridSectionView>
diff --git a/res/layout/icon_preview_card.xml b/res/layout/icon_preview_card.xml
index 9c0183f..c6c05ba 100644
--- a/res/layout/icon_preview_card.xml
+++ b/res/layout/icon_preview_card.xml
@@ -25,6 +25,7 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/preview_theme_content_max_height"
         android:layout_marginTop="@dimen/preview_theme_content_margin"
+        android:layout_marginBottom="@dimen/preview_theme_content_margin"
         android:clipChildren="false"
         android:importantForAccessibility="noHideDescendants">
 
diff --git a/res/layout/icon_section_view.xml b/res/layout/icon_section_view.xml
index fce7c64..be162e5 100644
--- a/res/layout/icon_section_view.xml
+++ b/res/layout/icon_section_view.xml
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <com.android.customization.picker.iconpack.IconPackSectionView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:paddingBottom="@dimen/section_bottom_padding"
-    android:paddingHorizontal="@dimen/section_horizontal_padding"
+    android:layout_height="wrap_content"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:background="?selectableItemBackground"
+    android:clickable="true"
+    android:paddingVertical="@dimen/option_section_vertical_padding"
+    android:paddingHorizontal="@dimen/section_horizontal_padding"
+    android:orientation="horizontal">
 
     <LinearLayout
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:layout_gravity="center_vertical"
+        android:layout_gravity="center"
         android:orientation="vertical">
 
         <TextView
@@ -27,11 +29,24 @@
             style="@style/SectionSubtitleTextStyle"/>
     </LinearLayout>
 
-    <ImageView
-        android:id="@+id/icon_section_tile"
+    <LinearLayout
         android:layout_width="@dimen/option_tile_width"
         android:layout_height="@dimen/option_tile_width"
-        android:scaleType="center"
-        android:background="@drawable/option_border_color" />
+        android:orientation="horizontal"
+        android:background="@drawable/picker_section_icon_background"
+        android:importantForAccessibility="noHideDescendants"
+        android:gravity="center"
+        android:divider="@drawable/horizontal_divider_14dp"
+        android:layout_gravity="center"
+        android:showDividers="middle">
+
+        <ImageView
+            android:id="@+id/icon_section_tile"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:scaleType="center"
+            android:tint="@color/system_on_surface" />
+
+    </LinearLayout>
 
 </com.android.customization.picker.iconpack.IconPackSectionView>
diff --git a/res/layout/icon_shape_preview_card.xml b/res/layout/icon_shape_preview_card.xml
index 7c70ec3..9d5cd39 100644
--- a/res/layout/icon_shape_preview_card.xml
+++ b/res/layout/icon_shape_preview_card.xml
@@ -25,6 +25,7 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/preview_theme_content_max_height"
         android:layout_marginTop="@dimen/preview_theme_content_margin"
+        android:layout_marginBottom="@dimen/preview_theme_content_margin"
         android:clipChildren="false"
         android:importantForAccessibility="noHideDescendants">
 
diff --git a/res/layout/icon_shape_section_view.xml b/res/layout/icon_shape_section_view.xml
index 0fceac5..9d37dec 100644
--- a/res/layout/icon_shape_section_view.xml
+++ b/res/layout/icon_shape_section_view.xml
@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <com.android.customization.picker.iconshape.IconShapeSectionView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:paddingBottom="@dimen/section_bottom_padding"
-    android:paddingHorizontal="@dimen/section_horizontal_padding"
+    android:layout_height="wrap_content"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:background="?selectableItemBackground"
+    android:clickable="true"
+    android:paddingVertical="@dimen/option_section_vertical_padding"
+    android:paddingHorizontal="@dimen/section_horizontal_padding"
+    android:orientation="horizontal">
 
     <LinearLayout
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:layout_gravity="center_vertical"
+        android:layout_gravity="center"
         android:orientation="vertical">
 
         <TextView
@@ -34,7 +36,7 @@
         android:layout_gravity="center_horizontal"
         android:paddingHorizontal="@dimen/option_tile_padding_horizontal"
         android:paddingVertical="@dimen/option_tile_padding_vertical"
-        android:background="@drawable/option_border_color">
+        android:background="@drawable/picker_section_icon_background">
         <ImageView
             android:id="@+id/icon_section_tile"
             android:layout_width="wrap_content"
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 910eb7e..50b1c3b 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -191,4 +191,8 @@
     <dimen name="floating_sheet_clock_style_option_size">82dp</dimen>
     <dimen name="floating_sheet_clock_style_thumbnail_margin">12dp</dimen>
     <dimen name="customization_option_entry_shortcut_icon_size">20dp</dimen>
+
+    <!-- preview page -->
+    <dimen name="preview_page_top_margin">16dp</dimen>
+    <dimen name="preview_page_bottom_margin">16dp</dimen>
 </resources>
diff --git a/src/com/android/customization/module/DefaultCustomizationSections.java b/src/com/android/customization/module/DefaultCustomizationSections.java
index d7bc42e..9195e4a 100644
--- a/src/com/android/customization/module/DefaultCustomizationSections.java
+++ b/src/com/android/customization/module/DefaultCustomizationSections.java
@@ -188,6 +188,16 @@
                                         .get(KeyguardQuickAffordancePickerViewModel.class),
                                 lifecycleOwner));
 
+                // Icon pack selection section.
+                sectionControllers.add(new IconPackSectionController(
+                        IconPackManager.getInstance(activity, new OverlayManagerCompat(activity)),
+                        sectionNavigationController));
+
+                // Font selection section.
+                sectionControllers.add(new FontSectionController(
+                        FontManager.getInstance(activity, new OverlayManagerCompat(activity)),
+                        sectionNavigationController));
+
                 // Notifications section.
                 sectionControllers.add(
                         new NotificationSectionController(