Limit the maximum number of themes
am: feb02d4b94

Change-Id: I546ecb3a325080e2f175b7fbb8817b7b5bd9f0b1
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 0c7f502..f3f0e86 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -58,7 +58,7 @@
     <dimen name="theme_option_font_text_size">16dp</dimen>
     <dimen name="theme_option_title_font_text_size">12sp</dimen>
 
-    <dimen name="option_tile_margin_horizontal">2dp</dimen>
+    <dimen name="option_tile_margin_horizontal">6dp</dimen>
     <dimen name="theme_option_label_margin">4dp</dimen>
 
     <dimen name="preview_card_padding">20dp</dimen>
diff --git a/src/com/android/customization/model/theme/DefaultThemeProvider.java b/src/com/android/customization/model/theme/DefaultThemeProvider.java
index d7c250f..87b5b4a 100644
--- a/src/com/android/customization/model/theme/DefaultThemeProvider.java
+++ b/src/com/android/customization/model/theme/DefaultThemeProvider.java
@@ -94,6 +94,9 @@
     private static final String THEME_TITLE_FIELD = "_theme_title";
     private static final String THEME_ID_FIELD = "_theme_id";
 
+    // Maximum number of themes allowed (including default, pre-bundled and custom)
+    private static final int MAX_TOTAL_THEMES = 10;
+
     private final OverlayThemeExtractor mOverlayProvider;
     private List<ThemeBundle> mThemes;
     private final CustomizationPreferences mCustomizationPreferences;
@@ -403,9 +406,11 @@
             }
         }
 
-        // Add an empty one at the end.
-        mThemes.add(new CustomTheme(CustomTheme.newId(), mContext.getString(
-                R.string.custom_theme_title, customThemesCount + 1), new HashMap<>(), null));
+        if (mThemes.size() < MAX_TOTAL_THEMES) {
+            // Add an empty one at the end.
+            mThemes.add(new CustomTheme(CustomTheme.newId(), mContext.getString(
+                    R.string.custom_theme_title, customThemesCount + 1), new HashMap<>(), null));
+        }
 
     }