Use string attribute for icon name

Change-Id: I336acf33c7e6bc993b9da9b17ec689975fa8127d
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 4ec1843..c78013f 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -209,20 +209,21 @@
         <attr name="verticalGap" format="dimension|fraction" />
         <!-- More keys keyboard layout template -->
         <attr name="moreKeysTemplate" format="reference" />
-        <!-- Icon set for key top and key preview. -->
+        <!-- Icon set for key top and key preview.
+             These should be aligned with KeyboardIconsSet.NAMES_AND_ATTR_IDS[] -->
         <attr name="iconShiftKey" format="reference" />
         <attr name="iconDeleteKey" format="reference" />
         <attr name="iconSettingsKey" format="reference" />
         <attr name="iconSpaceKey" format="reference" />
-        <attr name="iconReturnKey" format="reference" />
+        <attr name="iconEnterKey" format="reference" />
         <attr name="iconSearchKey" format="reference" />
         <attr name="iconTabKey" format="reference" />
         <attr name="iconShortcutKey" format="reference" />
         <attr name="iconShortcutForLabel" format="reference" />
         <attr name="iconSpaceKeyForNumberLayout" format="reference" />
         <attr name="iconShiftKeyShifted" format="reference" />
-        <attr name="iconDisabledShortcutKey" format="reference" />
-        <attr name="iconPreviewTabKey" format="reference" />
+        <attr name="iconShortcutKeyDisabled" format="reference" />
+        <attr name="iconTabKeyPreview" format="reference" />
         <attr name="iconLanguageSwitchKey" format="reference" />
         <attr name="iconZwnjKey" format="reference" />
         <attr name="iconZwjKey" format="reference" />
@@ -301,37 +302,11 @@
             <flag name="disableAdditionalMoreKeys" value="0x80000000" />
         </attr>
         <!-- The icon to display on the key instead of the label. -->
-        <!-- TODO: Use string format !icon/name. -->
-        <attr name="keyIcon" format="enum">
-            <!-- This should be aligned with the KeyboardIconsSet.ICON_* -->
-            <enum name="iconUndefined" value="0" />
-            <enum name="iconShiftKey" value="1" />
-            <enum name="iconDeleteKey" value="2" />
-            <enum name="iconSettingsKey" value="3" />
-            <enum name="iconSpaceKey" value="4" />
-            <enum name="iconReturnKey" value="5" />
-            <enum name="iconSearchKey" value="6" />
-            <enum name="iconTabKey" value="7" />
-            <enum name="iconShortcutKey" value="8" />
-            <enum name="iconShortcutForLabel" value="9" />
-            <enum name="iconSpaceKeyForNumberLayout" value="10" />
-            <enum name="iconShiftKeyShifted" value="11" />
-            <enum name="iconLanguageSwitchKey" value="14" />
-            <enum name="iconZwnjKey" value="15" />
-            <enum name="iconZwjKey" value="16" />
-        </attr>
+        <attr name="keyIcon" format="string" />
         <!-- The icon for disabled key -->
-        <!-- TODO: Use string format !icon/name. -->
-        <attr name="keyIconDisabled" format="enum">
-            <!-- This should be aligned with the KeyboardIconsSet.ICON_* -->
-            <enum name="iconDisabledShortcutKey" value="12" />
-        </attr>
+        <attr name="keyIconDisabled" format="string" />
         <!-- The icon to show in the popup preview. -->
-        <!-- TODO: Use string format !icon/name. -->
-        <attr name="keyIconPreview" format="enum">
-            <!-- This should be aligned with the KeyboardIconsSet.ICON_* -->
-            <enum name="iconPreviewTabKey" value="13" />
-        </attr>
+        <attr name="keyIconPreview" format="string" />
         <!-- The key style to specify a set of key attributes defined by <key_style/> -->
         <attr name="keyStyle" format="string" />
         <!-- Visual insets -->
diff --git a/java/res/values/keyboard-icons-black.xml b/java/res/values/keyboard-icons-black.xml
index 1ff597a..e9c5733 100644
--- a/java/res/values/keyboard-icons-black.xml
+++ b/java/res/values/keyboard-icons-black.xml
@@ -25,15 +25,15 @@
         <item name="iconDeleteKey">@drawable/sym_bkeyboard_delete</item>
         <item name="iconSettingsKey">@drawable/sym_bkeyboard_settings</item>
         <item name="iconSpaceKey">@drawable/sym_bkeyboard_space</item>
-        <item name="iconReturnKey">@drawable/sym_bkeyboard_return</item>
+        <item name="iconEnterKey">@drawable/sym_bkeyboard_return</item>
         <item name="iconSearchKey">@drawable/sym_bkeyboard_search</item>
         <item name="iconTabKey">@drawable/sym_bkeyboard_tab</item>
         <item name="iconShortcutKey">@drawable/sym_bkeyboard_mic</item>
         <item name="iconShortcutForLabel">@drawable/sym_bkeyboard_label_mic</item>
         <item name="iconSpaceKeyForNumberLayout">@drawable/sym_bkeyboard_space</item>
         <item name="iconShiftKeyShifted">@drawable/sym_bkeyboard_shift_locked</item>
-        <item name="iconDisabledShortcutKey">@drawable/sym_bkeyboard_voice_off</item>
-        <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
+        <item name="iconShortcutKeyDisabled">@drawable/sym_bkeyboard_voice_off</item>
+        <item name="iconTabKeyPreview">@drawable/sym_keyboard_feedback_tab</item>
         <!-- TODO: Needs dedicated black theme globe icon -->
         <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch</item>
         <!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons -->
diff --git a/java/res/values/keyboard-icons-ics.xml b/java/res/values/keyboard-icons-ics.xml
index 0774d57..8eba196 100644
--- a/java/res/values/keyboard-icons-ics.xml
+++ b/java/res/values/keyboard-icons-ics.xml
@@ -24,15 +24,15 @@
         <item name="iconDeleteKey">@drawable/sym_keyboard_delete_holo</item>
         <item name="iconSettingsKey">@drawable/sym_keyboard_settings_holo</item>
         <item name="iconSpaceKey">@null</item>
-        <item name="iconReturnKey">@drawable/sym_keyboard_return_holo</item>
+        <item name="iconEnterKey">@drawable/sym_keyboard_return_holo</item>
         <item name="iconSearchKey">@drawable/sym_keyboard_search_holo</item>
         <item name="iconTabKey">@drawable/sym_keyboard_tab_holo</item>
         <item name="iconShortcutKey">@drawable/sym_keyboard_voice_holo</item>
         <item name="iconShortcutForLabel">@drawable/sym_keyboard_label_mic_holo</item>
         <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space_holo</item>
         <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked_holo</item>
-        <item name="iconDisabledShortcutKey">@drawable/sym_keyboard_voice_off_holo</item>
-        <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
+        <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_holo</item>
+        <item name="iconTabKeyPreview">@drawable/sym_keyboard_feedback_tab</item>
         <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch</item>
         <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item>
         <item name="iconZwjKey">@drawable/sym_keyboard_zwj_holo</item>
diff --git a/java/res/values/keyboard-icons-white.xml b/java/res/values/keyboard-icons-white.xml
index 5798786..e520998 100644
--- a/java/res/values/keyboard-icons-white.xml
+++ b/java/res/values/keyboard-icons-white.xml
@@ -21,7 +21,7 @@
         <item name="iconDeleteKey">@drawable/sym_keyboard_delete</item>
         <item name="iconSettingsKey">@drawable/sym_keyboard_settings</item>
         <item name="iconSpaceKey">@drawable/sym_keyboard_space</item>
-        <item name="iconReturnKey">@drawable/sym_keyboard_return</item>
+        <item name="iconEnterKey">@drawable/sym_keyboard_return</item>ZZ
         <item name="iconSearchKey">@drawable/sym_keyboard_search</item>
         <item name="iconTabKey">@drawable/sym_keyboard_tab</item>
         <item name="iconShortcutKey">@drawable/sym_keyboard_mic</item>
@@ -29,8 +29,8 @@
         <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space</item>
         <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked</item>
         <!-- TODO: Needs non-holo disabled shortcut icon drawable -->
-        <item name="iconDisabledShortcutKey">@drawable/sym_keyboard_voice_off_holo</item>
-        <item name="iconPreviewTabKey">@drawable/sym_keyboard_feedback_tab</item>
+        <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_holo</item>
+        <item name="iconTabKeyPreview">@drawable/sym_keyboard_feedback_tab</item>
         <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch</item>
         <!-- TODO: Needs dedicated black theme ZWNJ and ZWJ icons -->
         <item name="iconZwnjKey">@drawable/sym_keyboard_zwnj_holo</item>
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 0d54dfe..d2e523f 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -43,7 +43,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKeyShifted"
+                latin:keyIcon="!icon/shift_key_shifted"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOff" />
         </case>
@@ -53,7 +53,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKeyShifted"
+                latin:keyIcon="!icon/shift_key_shifted"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOn" />
         </case>
@@ -61,7 +61,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKey"
+                latin:keyIcon="!icon/shift_key"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOff" />
         </default>
@@ -69,7 +69,7 @@
     <key-style
         latin:styleName="deleteKeyStyle"
         latin:code="!code/key_delete"
-        latin:keyIcon="iconDeleteKey"
+        latin:keyIcon="!icon/delete_key"
         latin:keyActionFlags="isRepeatable|noKeyPreview"
         latin:backgroundType="functional" />
     <include
@@ -83,8 +83,8 @@
     <key-style
         latin:styleName="zwnjKeyStyle"
         latin:code="0x200C"
-        latin:keyIcon="iconZwnjKey"
-        latin:moreKeys="!icon/zwjKey|&#x200D;"
+        latin:keyIcon="!icon/zwnj_key"
+        latin:moreKeys="!icon/zwj_key|&#x200D;"
         latin:keyLabelFlags="hasPopupHint"
         latin:keyActionFlags="noKeyPreview" />
     <key-style
@@ -96,14 +96,14 @@
     <key-style
         latin:styleName="shortcutKeyStyle"
         latin:code="!code/key_shortcut"
-        latin:keyIcon="iconShortcutKey"
-        latin:keyIconDisabled="iconDisabledShortcutKey"
+        latin:keyIcon="!icon/shortcut_key"
+        latin:keyIconDisabled="!icon/shortcut_key_disabled"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="settingsKeyStyle"
         latin:code="!code/key_settings"
-        latin:keyIcon="iconSettingsKey"
+        latin:keyIcon="!icon/settings_key"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:backgroundType="functional" />
     <switch>
@@ -114,16 +114,16 @@
             <key-style
                 latin:styleName="tabKeyStyle"
                 latin:code="!code/key_action_previous"
-                latin:keyIcon="iconTabKey"
-                latin:keyIconPreview="iconPreviewTabKey"
+                latin:keyIcon="!icon/tab_key"
+                latin:keyIconPreview="!icon/tab_key_preview"
                 latin:backgroundType="functional" />
         </case>
         <default>
             <key-style
                 latin:styleName="tabKeyStyle"
                 latin:code="!code/key_tab"
-                latin:keyIcon="iconTabKey"
-                latin:keyIconPreview="iconPreviewTabKey"
+                latin:keyIcon="!icon/tab_key"
+                latin:keyIconPreview="!icon/tab_key_preview"
                 latin:backgroundType="functional" />
         </default>
     </switch>
diff --git a/java/res/xml-sw768dp/key_styles_common.xml b/java/res/xml-sw768dp/key_styles_common.xml
index 596bccb..f4cca30 100644
--- a/java/res/xml-sw768dp/key_styles_common.xml
+++ b/java/res/xml-sw768dp/key_styles_common.xml
@@ -42,7 +42,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKeyShifted"
+                latin:keyIcon="!icon/shift_key_shifted"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOff" />
         </case>
@@ -52,7 +52,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKeyShifted"
+                latin:keyIcon="!icon/shift_key_shifted"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOn" />
         </case>
@@ -60,7 +60,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKey"
+                latin:keyIcon="!icon/shift_key"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOff" />
         </default>
@@ -68,7 +68,7 @@
     <key-style
         latin:styleName="deleteKeyStyle"
         latin:code="!code/key_delete"
-        latin:keyIcon="iconDeleteKey"
+        latin:keyIcon="!icon/delete_key"
         latin:keyActionFlags="isRepeatable|noKeyPreview"
         latin:backgroundType="functional" />
     <include
@@ -82,8 +82,8 @@
     <key-style
         latin:styleName="zwnjKeyStyle"
         latin:code="0x200C"
-        latin:keyIcon="iconZwnjKey"
-        latin:moreKeys="!icon/zwjKey|&#x200D;"
+        latin:keyIcon="!icon/zwnj_key"
+        latin:moreKeys="!icon/zwj_key|&#x200D;"
         latin:keyLabelFlags="hasPopupHint"
         latin:keyActionFlags="noKeyPreview" />
     <key-style
@@ -95,14 +95,14 @@
     <key-style
         latin:styleName="shortcutKeyStyle"
         latin:code="!code/key_shortcut"
-        latin:keyIcon="iconShortcutKey"
-        latin:keyIconDisabled="iconDisabledShortcutKey"
+        latin:keyIcon="!icon/shortcut_key"
+        latin:keyIconDisabled="!icon/shortcut_key_disabled"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="settingsKeyStyle"
         latin:code="!code/key_settings"
-        latin:keyIcon="iconSettingsKey"
+        latin:keyIcon="!icon/settings_key"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:backgroundType="functional" />
     <switch>
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index f8b6e37..35abb4f 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -47,7 +47,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKeyShifted"
+                latin:keyIcon="!icon/shift_key_shifted"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOff" />
         </case>
@@ -57,7 +57,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKeyShifted"
+                latin:keyIcon="!icon/shift_key_shifted"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOn" />
         </case>
@@ -65,7 +65,7 @@
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="!code/key_shift"
-                latin:keyIcon="iconShiftKey"
+                latin:keyIcon="!icon/shift_key"
                 latin:keyActionFlags="noKeyPreview"
                 latin:backgroundType="stickyOff" />
         </default>
@@ -73,7 +73,7 @@
     <key-style
         latin:styleName="deleteKeyStyle"
         latin:code="!code/key_delete"
-        latin:keyIcon="iconDeleteKey"
+        latin:keyIcon="!icon/delete_key"
         latin:keyActionFlags="isRepeatable|noKeyPreview"
         latin:backgroundType="functional" />
     <include
@@ -112,39 +112,39 @@
     <key-style
         latin:styleName="zwnjKeyStyle"
         latin:code="0x200C"
-        latin:keyIcon="iconZwnjKey"
-        latin:moreKeys="!icon/zwjKey|&#x200D;"
+        latin:keyIcon="!icon/zwnj_key"
+        latin:moreKeys="!icon/zwj_key|&#x200D;"
         latin:keyLabelFlags="hasPopupHint"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="shortcutKeyStyle"
         latin:code="!code/key_shortcut"
-        latin:keyIcon="iconShortcutKey"
-        latin:keyIconDisabled="iconDisabledShortcutKey"
+        latin:keyIcon="!icon/shortcut_key"
+        latin:keyIconDisabled="!icon/shortcut_key_disabled"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
         latin:altCode="!code/key_space"
         latin:parentStyle="f1MoreKeysStyle" />
     <key-style
         latin:styleName="languageSwitchKeyStyle"
         latin:code="!code/key_language_switch"
-        latin:keyIcon="iconLanguageSwitchKey"
+        latin:keyIcon="!icon/language_switch_key"
         latin:keyActionFlags="noKeyPreview|altCodeWhileTyping|enableLongPress"
         latin:altCode="!code/key_space"
         latin:backgroundType="functional" />
     <key-style
         latin:styleName="tabKeyStyle"
         latin:code="!code/key_tab"
-        latin:keyIcon="iconTabKey"
-        latin:keyIconPreview="iconPreviewTabKey"
+        latin:keyIcon="!icon/tab_key"
+        latin:keyIconPreview="!icon/tab_key_preview"
         latin:backgroundType="functional" />
     <!-- Note: This key style is not for functional tab key. This is used for the tab key which is
          laid out as normal letter key. -->
     <key-style
         latin:styleName="nonSpecialBackgroundTabKeyStyle"
         latin:code="!code/key_tab"
-        latin:keyIcon="iconTabKey"
-        latin:keyIconPreview="iconPreviewTabKey" />
+        latin:keyIcon="!icon/tab_key"
+        latin:keyIconPreview="!icon/tab_key_preview" />
     <switch>
         <!-- When this qwerty keyboard has no shortcut keys but shortcut key is enabled, then symbol
              keyboard will have a shortcut key. That means we should use
@@ -156,7 +156,7 @@
             <key-style
                 latin:styleName="toSymbolKeyStyle"
                 latin:code="!code/key_switch_alpha_symbol"
-                latin:keyIcon="iconShortcutForLabel"
+                latin:keyIcon="!icon/shortcut_for_label"
                 latin:keyLabel="!label/label_to_symbol_with_microphone_key"
                 latin:keyLabelFlags="withIconRight"
                 latin:keyActionFlags="noKeyPreview"
diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml
index 506ed47..88777dc 100644
--- a/java/res/xml/key_styles_enter.xml
+++ b/java/res/xml/key_styles_enter.xml
@@ -93,7 +93,7 @@
     <key-style
         latin:styleName="defaultEnterKeyStyle"
         latin:code="!code/key_enter"
-        latin:keyIcon="iconReturnKey"
+        latin:keyIcon="!icon/enter_key"
         latin:keyLabelFlags="autoXScale|followKeyLabelRatio"
         latin:keyActionFlags="noKeyPreview"
         latin:backgroundType="functional"
@@ -101,7 +101,7 @@
     <key-style
         latin:styleName="defaultActionKeyStyle"
         latin:code="!code/key_action_enter"
-        latin:keyIcon="iconUndefined"
+        latin:keyIcon="!icon/undefined"
         latin:backgroundType="action"
         latin:parentStyle="defaultEnterKeyStyle" />
     <switch>
@@ -159,7 +159,7 @@
         >
             <key-style
                 latin:styleName="enterKeyStyle"
-                latin:keyIcon="iconSearchKey"
+                latin:keyIcon="!icon/search_key"
                 latin:parentStyle="defaultActionKeyStyle" />
         </case>
         <case
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index 16cfa84..1b02921 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -128,7 +128,7 @@
     <key-style
         latin:styleName="numSpaceKeyStyle"
         latin:code="!code/key_space"
-        latin:keyIcon="iconSpaceKeyForNumberLayout"
+        latin:keyIcon="!icon/space_key_for_number_layout"
         latin:keyActionFlags="enableLongPress"
         latin:parentStyle="numKeyBaseStyle" />
 </merge>