Add new "keyboardTheme" <case> predicator

Bug: 17318036
Change-Id: Ief386c84969d8646fb5cfe2050a2f59a7db16c88
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index c756f8c..254ef8c 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -207,7 +207,13 @@
     </declare-styleable>
 
     <declare-styleable name="Keyboard">
-        <attr name="themeId" format="integer" />
+        <attr name="themeId" format="enum">
+            <!-- This should be aligned with KeyboardTheme.THEME_ID_*. -->
+            <enum name="ICS" value="0" />
+            <enum name="KLP" value="2" />
+            <enum name="LXXLight" value="3" />
+            <enum name="LXXDark" value="4" />
+        </attr>
         <!-- Touch position correction -->
         <attr name="touchPositionCorrectionData" format="reference" />
         <!-- Keyboard top, bottom, left, right edges paddings, in propotion of keyboard height. -->
@@ -427,6 +433,13 @@
             <enum name="emojiCategory5" value="15" />
             <enum name="emojiCategory6" value="16" />
         </attr>
+        <!-- This should be aligned with Keyboard.themeId and KeyboardTheme.THEME_ID_* -->
+        <attr name="keyboardTheme" format="enum|string">
+            <enum name="ICS" value="0" />
+            <enum name="KLP" value="2" />
+            <enum name="LXXLight" value="3" />
+            <enum name="LXXDark" value="4" />
+        </attr>
         <!-- This should be aligned with KeyboardId.MODE_* -->
         <attr name="mode" format="enum|string">
             <enum name="text" value="0" />
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 051489e..a9c7294 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -33,8 +33,8 @@
         name="Keyboard.ICS"
         parent="Keyboard"
     >
-        <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
-        <item name="themeId">2</item>
+        <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
+        <item name="themeId">ICS</item>
     </style>
     <style
         name="KeyboardView.ICS"
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
index a853ed9..da5e27f 100644
--- a/java/res/values/themes-klp.xml
+++ b/java/res/values/themes-klp.xml
@@ -33,8 +33,8 @@
         name="Keyboard.KLP"
         parent="Keyboard"
     >
-        <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
-        <item name="themeId">0</item>
+        <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
+        <item name="themeId">KLP</item>
     </style>
     <style
         name="KeyboardView.KLP"
diff --git a/java/res/values/themes-lxx-dark.xml b/java/res/values/themes-lxx-dark.xml
index 2aaee13..c49436c 100644
--- a/java/res/values/themes-lxx-dark.xml
+++ b/java/res/values/themes-lxx-dark.xml
@@ -33,8 +33,8 @@
         name="Keyboard.LXX_Dark"
         parent="Keyboard"
     >
-        <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
-        <item name="themeId">4</item>
+        <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
+        <item name="themeId">LXXDark</item>
     </style>
     <style
         name="KeyboardView.LXX_Dark"
diff --git a/java/res/values/themes-lxx-light.xml b/java/res/values/themes-lxx-light.xml
index e7a6f58..6f0fb71 100644
--- a/java/res/values/themes-lxx-light.xml
+++ b/java/res/values/themes-lxx-light.xml
@@ -33,8 +33,8 @@
         name="Keyboard.LXX_Light"
         parent="Keyboard"
     >
-        <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
-        <item name="themeId">3</item>
+        <!-- This should be aligned with KeyboardTheme.THEME_ID_* -->
+        <item name="themeId">LXXLight</item>
     </style>
     <style
         name="KeyboardView.LXX_Light"
diff --git a/java/res/xml-sw600dp/key_styles_enter.xml b/java/res/xml-sw600dp/key_styles_enter.xml
index c20523b..0227d81 100644
--- a/java/res/xml-sw600dp/key_styles_enter.xml
+++ b/java/res/xml-sw600dp/key_styles_enter.xml
@@ -224,12 +224,24 @@
         </case>
         <case
             latin:imeAction="actionCustomLabel"
+            latin:keyboardTheme="ICS|KLP"
         >
             <key-style
                 latin:styleName="enterKeyStyle"
                 latin:keySpec="dummy_label|!code/key_enter"
                 latin:keyLabelFlags="fromCustomActionLabel"
-                latin:backgroundType="customAction"
+                latin:backgroundType="action"
+                latin:parentStyle="defaultEnterKeyStyle" />
+        </case>
+        <case
+            latin:imeAction="actionCustomLabel"
+            latin:keyboardTheme="LXXLight|LXXDark"
+        >
+            <key-style
+                latin:styleName="enterKeyStyle"
+                latin:keySpec="dummy_label|!code/key_enter"
+                latin:keyLabelFlags="fromCustomActionLabel"
+                latin:backgroundType="functional"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
         <!-- imeAction is either actionNone or actionUnspecified. -->
diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml
index 55dab78..7aea1ce 100644
--- a/java/res/xml/key_styles_enter.xml
+++ b/java/res/xml/key_styles_enter.xml
@@ -393,12 +393,24 @@
         </case>
         <case
             latin:imeAction="actionCustomLabel"
+            latin:keyboardTheme="ICS|KLP"
         >
             <key-style
                 latin:styleName="enterKeyStyle"
                 latin:keySpec="dummy_label|!code/key_enter"
                 latin:keyLabelFlags="fromCustomActionLabel"
-                latin:backgroundType="customAction"
+                latin:backgroundType="action"
+                latin:parentStyle="defaultEnterKeyStyle" />
+        </case>
+        <case
+            latin:imeAction="actionCustomLabel"
+            latin:keyboardTheme="LXXLight|LXXDark"
+        >
+            <key-style
+                latin:styleName="enterKeyStyle"
+                latin:keySpec="dummy_label|!code/key_enter"
+                latin:keyLabelFlags="fromCustomActionLabel"
+                latin:backgroundType="functional"
                 latin:parentStyle="defaultEnterKeyStyle" />
         </case>
         <!-- imeAction is either actionNone or actionUnspecified. -->