Merge "Add support for LiveWallpaper options" into ub-launcher3-qt-r1-dev
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 49570ab..622cd90 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -15,6 +15,8 @@
      limitations under the License.
 -->
 <resources>
+
+    <!-- Main themes -->
     <style name="CustomizationTheme" parent="@android:style/Theme.DeviceDefault.Settings">
         <item name="colorPrimary">?android:colorPrimary</item>
 
@@ -30,6 +32,7 @@
         <item name="actionButtonStyle">?android:actionButtonStyle</item>
         <item name="actionMenuTextColor">?android:actionMenuTextColor</item>
     </style>
+
     <style name="CustomizationTheme.NoActionBar">
         <item name="android:windowActionBar">false</item>
         <item name="android:windowNoTitle">true</item>
@@ -37,6 +40,7 @@
         <item name="android:windowDrawsSystemBarBackgrounds">true</item>
     </style>
 
+    <!-- Bottom nav -->
     <style name="BottomNavStyle">
         <item name="itemIconTint">@color/bottom_nav_item_color</item>
         <item name="itemTextColor">@color/bottom_nav_item_color</item>
@@ -50,6 +54,7 @@
         <item name="android:textSize">@dimen/bottom_navbar_font_text_size</item>
     </style>
 
+    <!-- Common components and widgets -->
     <style name="HeaderTextAppearance" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
         <item name="android:textFontWeight">400</item>
     </style>
@@ -58,13 +63,14 @@
 
     <style name="ActionSecondaryButton" parent="android:Widget.DeviceDefault.Button.Borderless.Colored"/>
 
+    <!-- Option tiles -->
     <style name="OptionTitleTextAppearance" parent="HeaderTextAppearance">
         <item name="android:textColor">@color/option_title_color</item>
         <item name="android:textAlignment">center</item>
         <item name="android:textSize">@dimen/theme_option_title_font_text_size</item>
     </style>
 
-
+    <!-- Preview cards -->
     <style name="PreviewCard" parent="CardView">
         <item name="cardCornerRadius">?android:dialogCornerRadius</item>
         <item name="android:clipChildren">true</item>
@@ -99,6 +105,7 @@
         <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault</item>
     </style>
 
+    <!-- Custom theme editor -->
     <style name="EditLabelStyle">
         <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault</item>
         <item name="android:textColor">@color/material_white_100</item>
diff --git a/src/com/android/customization/model/ResourceConstants.java b/src/com/android/customization/model/ResourceConstants.java
index d8c32ff..0b1dec2 100644
--- a/src/com/android/customization/model/ResourceConstants.java
+++ b/src/com/android/customization/model/ResourceConstants.java
@@ -84,7 +84,8 @@
             "ic_qs_flashlight",
             "ic_qs_auto_rotate",
             "ic_qs_airplane",
-            "ic_signal_cellular_3_4_bar"
+            "ic_signal_cellular_3_4_bar",
+            "ic_battery_80_24dp"
     };
 
     ArrayList<String> sTargetPackages = new ArrayList<>();
diff --git a/src/com/android/customization/picker/theme/ThemePreviewPage.java b/src/com/android/customization/picker/theme/ThemePreviewPage.java
index 224a8f8..47282eb 100644
--- a/src/com/android/customization/picker/theme/ThemePreviewPage.java
+++ b/src/com/android/customization/picker/theme/ThemePreviewPage.java
@@ -82,7 +82,7 @@
          * Maps which icon from ResourceConstants#ICONS_FOR_PREVIEW to use for each icon in the
          * top bar (fake "status bar") of the cover page.
          */
-        private static final int [] sTopBarIconToPreviewIcon = new int [] { 0, 6, 2 };
+        private static final int [] sTopBarIconToPreviewIcon = new int [] { 0, 6, 7 };
 
         private final Typeface mHeadlineFont;
         private final List<Drawable> mIcons;
@@ -194,9 +194,14 @@
             ViewGroup iconsContainer = card.findViewById(R.id.theme_preview_top_bar_icons);
 
             for (int i = 0; i < iconsContainer.getChildCount(); i++) {
-                ((ImageView) iconsContainer.getChildAt(i))
-                        .setImageDrawable(mIcons.get(sTopBarIconToPreviewIcon[i]).getConstantState()
-                                .newDrawable().mutate());
+                int iconIndex = sTopBarIconToPreviewIcon[i];
+                if (iconIndex < mIcons.size()) {
+                    ((ImageView) iconsContainer.getChildAt(i))
+                            .setImageDrawable(mIcons.get(iconIndex).getConstantState()
+                                    .newDrawable().mutate());
+                } else {
+                    iconsContainer.getChildAt(i).setVisibility(View.GONE);
+                }
             }
 
             ViewGroup body = card.findViewById(R.id.theme_preview_card_body_container);