diff --git a/java/proguard.flags b/java/proguard.flags
index 2023075..9096855 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -12,4 +12,5 @@
   void setDatabaseMax(int);
   void setDatabaseDelete(int);
   void waitUntilUpdateDBDone();
+  void waitForDictionaryLoading();
 }
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 549c2ae..9759e0e 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -94,8 +94,8 @@
     </declare-styleable>
 
     <declare-styleable name="Keyboard_Key">
-        <!-- The unicode value or comma-separated values that this key outputs. -->
-        <attr name="codes" format="integer|string" />
+        <!-- The unicode value that this key outputs. -->
+        <attr name="code" format="integer" />
         <!-- The characters to display in the popup keyboard. -->
         <attr name="popupCharacters" format="string" />
         <!-- Maximum column of popup keyboard -->
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 4187c31..1225304 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -41,7 +41,6 @@
     <integer name="config_keyboard_grid_height">16</integer>
     <integer name="config_long_press_key_timeout">400</integer>
     <integer name="config_long_press_shift_key_timeout">1200</integer>
-    <integer name="config_multi_tap_key_timeout">800</integer>
     <string name="config_text_size_of_language_on_spacebar">small</string>
     <integer name="config_max_popup_keyboard_column">9</integer>
     <!-- Whether or not auto-correction should be enabled by default -->
diff --git a/java/res/xml-xlarge/kbd_key_styles.xml b/java/res/xml-xlarge/kbd_key_styles.xml
index 6c1df0b..eb37580 100644
--- a/java/res/xml-xlarge/kbd_key_styles.xml
+++ b/java/res/xml-xlarge/kbd_key_styles.xml
@@ -31,7 +31,7 @@
                 latin:isModifier="true" />
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:codes="@integer/key_shift"
+                latin:code="@integer/key_shift"
                 latin:keyIcon="@drawable/sym_keyboard_shift_holo"
                 latin:shiftedIcon="@drawable/sym_keyboard_shift_locked_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
@@ -39,25 +39,25 @@
                 latin:isSticky="true" />
             <key-style
                 latin:styleName="deleteKeyStyle"
-                latin:codes="@integer/key_delete"
+                latin:code="@integer/key_delete"
                 latin:keyIcon="@drawable/sym_keyboard_delete_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 latin:parentStyle="functionalKeyStyle"
                 latin:isRepeatable="true" />
             <key-style
                 latin:styleName="returnKeyStyle"
-                latin:codes="@integer/key_return"
+                latin:code="@integer/key_return"
                 latin:keyIcon="@drawable/sym_keyboard_return_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_return"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="spaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_keyboard_space_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
             <key-style
                 latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_keyboard_space_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
             <key-style
@@ -69,7 +69,7 @@
                 latin:maxPopupKeyboardColumn="5" />
             <key-style
                 latin:styleName="micKeyStyle"
-                latin:codes="@integer/key_voice"
+                latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_keyboard_mic"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 latin:parentStyle="functionalKeyStyle" />
@@ -81,7 +81,7 @@
                 latin:styleName="functionalKeyStyle" />
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:codes="@integer/key_shift"
+                latin:code="@integer/key_shift"
                 latin:keyIcon="@drawable/sym_bkeyboard_shift"
                 latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
@@ -89,25 +89,25 @@
                 latin:isSticky="true" />
             <key-style
                 latin:styleName="deleteKeyStyle"
-                latin:codes="@integer/key_delete"
+                latin:code="@integer/key_delete"
                 latin:keyIcon="@drawable/sym_bkeyboard_delete"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 latin:parentStyle="functionalKeyStyle"
                 latin:isRepeatable="true" />
             <key-style
                 latin:styleName="returnKeyStyle"
-                latin:codes="@integer/key_return"
+                latin:code="@integer/key_return"
                 latin:keyIcon="@drawable/sym_bkeyboard_return"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_return"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="spaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_bkeyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
             <key-style
                 latin:styleName="nonSpecialBackgroundSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_bkeyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
             <key-style
@@ -119,7 +119,7 @@
                 latin:maxPopupKeyboardColumn="5" />
             <key-style
                 latin:styleName="micKeyStyle"
-                latin:codes="@integer/key_voice"
+                latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_bkeyboard_mic"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 latin:parentStyle="functionalKeyStyle" />
@@ -127,25 +127,25 @@
     </switch>
     <key-style
         latin:styleName="tabKeyStyle"
-        latin:codes="@integer/key_tab"
+        latin:code="@integer/key_tab"
         latin:keyLabel="@string/label_tab_key"
         latin:keyLabelOption="fontNormal"
         latin:parentStyle="functionalKeyStyle" />
     <key-style
         latin:styleName="toSymbolKeyStyle"
-        latin:codes="@integer/key_switch_alpha_symbol"
+        latin:code="@integer/key_switch_alpha_symbol"
         latin:keyLabel="@string/label_to_symbol_key"
         latin:keyLabelOption="fontNormal"
         latin:parentStyle="functionalKeyStyle" />
     <key-style
         latin:styleName="toAlphaKeyStyle"
-        latin:codes="@integer/key_switch_alpha_symbol"
+        latin:code="@integer/key_switch_alpha_symbol"
         latin:keyLabel="@string/label_to_alpha_key"
         latin:keyLabelOption="fontNormal"
         latin:parentStyle="functionalKeyStyle" />
     <key-style
         latin:styleName="moreKeyStyle"
-        latin:codes="@integer/key_shift"
+        latin:code="@integer/key_shift"
         latin:keyLabel="@string/label_more_key"
         latin:keyLabelOption="fontNormal"
         latin:parentStyle="functionalKeyStyle"
diff --git a/java/res/xml-xlarge/kbd_numkey_styles.xml b/java/res/xml-xlarge/kbd_numkey_styles.xml
index adf45a8..3c62cb0 100644
--- a/java/res/xml-xlarge/kbd_numkey_styles.xml
+++ b/java/res/xml-xlarge/kbd_numkey_styles.xml
@@ -27,60 +27,60 @@
         >
             <key-style
                 latin:styleName="num0KeyStyle"
-                latin:codes="48"
+                latin:code="48"
                 latin:keyIcon="@drawable/sym_keyboard_num0_holo" />
             <key-style
                 latin:styleName="num1KeyStyle"
-                latin:codes="49"
+                latin:code="49"
                 latin:keyIcon="@drawable/sym_keyboard_num1_holo" />
             <key-style
                 latin:styleName="num2KeyStyle"
-                latin:codes="50"
+                latin:code="50"
                 latin:keyIcon="@drawable/sym_keyboard_num2_holo" />
             <key-style
                 latin:styleName="num3KeyStyle"
-                latin:codes="51"
+                latin:code="51"
                 latin:keyIcon="@drawable/sym_keyboard_num3_holo" />
             <key-style
                 latin:styleName="num4KeyStyle"
-                latin:codes="52"
+                latin:code="52"
                 latin:keyIcon="@drawable/sym_keyboard_num4_holo" />
             <key-style
                 latin:styleName="num5KeyStyle"
-                latin:codes="53"
+                latin:code="53"
                 latin:keyIcon="@drawable/sym_keyboard_num5_holo" />
             <key-style
                 latin:styleName="num6KeyStyle"
-                latin:codes="54"
+                latin:code="54"
                 latin:keyIcon="@drawable/sym_keyboard_num6_holo" />
             <key-style
                 latin:styleName="num7KeyStyle"
-                latin:codes="55"
+                latin:code="55"
                 latin:keyIcon="@drawable/sym_keyboard_num7_holo" />
             <key-style
                 latin:styleName="num8KeyStyle"
-                latin:codes="56"
+                latin:code="56"
                 latin:keyIcon="@drawable/sym_keyboard_num8_holo" />
             <key-style
                 latin:styleName="num9KeyStyle"
-                latin:codes="57"
+                latin:code="57"
                 latin:keyIcon="@drawable/sym_keyboard_num9_holo" />
             <key-style
                 latin:styleName="numStarKeyStyle"
-                latin:codes="42"
+                latin:code="42"
                 latin:keyIcon="@drawable/sym_keyboard_numbstar_holo" />
             <key-style
                 latin:styleName="numPoundKeyStyle"
-                latin:codes="35"
+                latin:code="35"
                 latin:keyIcon="@drawable/sym_keyboard_numbpound_holo" />
             <key-style
                 latin:styleName="numAltKeyStyle"
-                latin:codes="@integer/key_switch_alpha_symbol"
+                latin:code="@integer/key_switch_alpha_symbol"
                 latin:keyIcon="@drawable/sym_keyboard_numalt"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
             <key-style
                 latin:styleName="numSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_keyboard_space_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
         </case>
@@ -89,60 +89,60 @@
         >
             <key-style
                 latin:styleName="num0KeyStyle"
-                latin:codes="48"
+                latin:code="48"
                 latin:keyIcon="@drawable/sym_bkeyboard_num0" />
             <key-style
                 latin:styleName="num1KeyStyle"
-                latin:codes="49"
+                latin:code="49"
                 latin:keyIcon="@drawable/sym_bkeyboard_num1" />
             <key-style
                 latin:styleName="num2KeyStyle"
-                latin:codes="50"
+                latin:code="50"
                 latin:keyIcon="@drawable/sym_bkeyboard_num2" />
             <key-style
                 latin:styleName="num3KeyStyle"
-                latin:codes="51"
+                latin:code="51"
                 latin:keyIcon="@drawable/sym_bkeyboard_num3" />
             <key-style
                 latin:styleName="num4KeyStyle"
-                latin:codes="52"
+                latin:code="52"
                 latin:keyIcon="@drawable/sym_bkeyboard_num4" />
             <key-style
                 latin:styleName="num5KeyStyle"
-                latin:codes="53"
+                latin:code="53"
                 latin:keyIcon="@drawable/sym_bkeyboard_num5" />
             <key-style
                 latin:styleName="num6KeyStyle"
-                latin:codes="54"
+                latin:code="54"
                 latin:keyIcon="@drawable/sym_bkeyboard_num6" />
             <key-style
                 latin:styleName="num7KeyStyle"
-                latin:codes="55"
+                latin:code="55"
                 latin:keyIcon="@drawable/sym_bkeyboard_num7" />
             <key-style
                 latin:styleName="num8KeyStyle"
-                latin:codes="56"
+                latin:code="56"
                 latin:keyIcon="@drawable/sym_bkeyboard_num8" />
             <key-style
                 latin:styleName="num9KeyStyle"
-                latin:codes="57"
+                latin:code="57"
                 latin:keyIcon="@drawable/sym_bkeyboard_num9" />
             <key-style
                 latin:styleName="numStarKeyStyle"
-                latin:codes="42"
+                latin:code="42"
                 latin:keyIcon="@drawable/sym_bkeyboard_numstar" />
             <key-style
                 latin:styleName="numPoundKeyStyle"
-                latin:codes="35"
+                latin:code="35"
                 latin:keyIcon="@drawable/sym_bkeyboard_numpound" />
             <key-style
                 latin:styleName="numAltKeyStyle"
-                latin:codes="@integer/key_switch_alpha_symbol"
+                latin:code="@integer/key_switch_alpha_symbol"
                 latin:keyIcon="@drawable/sym_bkeyboard_numalt"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
             <key-style
                 latin:styleName="numSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_bkeyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
         </case>
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index 66f6020..45c2983 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -44,11 +44,11 @@
         <Spacer
             latin:horizontalGap="8.470%p" />
         <Key
-            latin:codes="45"
+            latin:code="45"
             latin:keyLabel=" - "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="43"
+            latin:code="43"
             latin:keyLabel=" + "
             latin:keyWidth="8.042%p" />
         <Spacer
@@ -75,11 +75,11 @@
         <Spacer
             latin:horizontalGap="8.470%p" />
         <Key
-            latin:codes="44"
+            latin:code="44"
             latin:keyLabel=" , "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="46"
+            latin:code="46"
             latin:keyLabel=" . "
             latin:keyWidth="8.042%p" />
         <Spacer
@@ -105,11 +105,11 @@
         <Spacer
             latin:horizontalGap="20.427%p" />
         <Key
-            latin:codes="40"
+            latin:code="40"
             latin:keyLabel=" ( "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="41"
+            latin:code="41"
             latin:keyLabel=" ) "
             latin:keyWidth="8.042%p" />
         <Spacer
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index 8c0df03..891ceac 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -42,15 +42,15 @@
         <Spacer
             latin:horizontalGap="4.458%p" />
         <Key
-            latin:codes="45"
+            latin:code="45"
             latin:keyLabel=" - "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="43"
+            latin:code="43"
             latin:keyLabel=" + "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="44"
+            latin:code="44"
             latin:keyLabel="@string/label_pause_key"
             latin:keyWidth="8.042%p" />
         <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the
@@ -77,15 +77,15 @@
         <Spacer
             latin:horizontalGap="4.458%p" />
         <Key
-            latin:codes="44"
+            latin:code="44"
             latin:keyLabel=" , "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="46"
+            latin:code="46"
             latin:keyLabel=" . "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="59"
+            latin:code="59"
             latin:keyLabel="@string/label_wait_key"
             latin:keyWidth="8.042%p" />
         <!-- To match one character label size with "More" and "Wait", I placed spaces around the
@@ -113,15 +113,15 @@
         <Spacer
             latin:horizontalGap="16.406%p" />
         <Key
-            latin:codes="40"
+            latin:code="40"
             latin:keyLabel=" ( "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="41"
+            latin:code="41"
             latin:keyLabel=" ) "
             latin:keyWidth="8.042%p" />
         <Key
-            latin:codes="78"
+            latin:code="78"
             latin:keyLabel=" N "
             latin:keyWidth="8.042%p" />
         <Spacer
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index 3b6df73..3b35f35 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -31,7 +31,7 @@
                 latin:isModifier="true" />
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:codes="@integer/key_shift"
+                latin:code="@integer/key_shift"
                 latin:keyIcon="@drawable/sym_keyboard_shift"
                 latin:shiftedIcon="@drawable/sym_keyboard_shift_locked"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
@@ -39,7 +39,7 @@
                 latin:isSticky="true" />
             <key-style
                 latin:styleName="deleteKeyStyle"
-                latin:codes="@integer/key_delete"
+                latin:code="@integer/key_delete"
                 latin:keyIcon="@drawable/sym_keyboard_delete"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 latin:parentStyle="functionalKeyStyle"
@@ -54,7 +54,7 @@
                 >
                     <key-style
                         latin:styleName="toSymbolKeyStyle"
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyIcon="@drawable/sym_keyboard_123_mic"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic"
                         latin:parentStyle="functionalKeyStyle" />
@@ -62,32 +62,32 @@
                 <default>
                     <key-style
                         latin:styleName="toSymbolKeyStyle"
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyLabel="@string/label_to_symbol_key"
                         latin:parentStyle="functionalKeyStyle" />
                 </default>
             </switch>
             <key-style
                 latin:styleName="settingsKeyStyle"
-                latin:codes="@integer/key_settings"
+                latin:code="@integer/key_settings"
                 latin:keyIcon="@drawable/sym_keyboard_settings"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="spaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_keyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="tabKeyStyle"
-                latin:codes="@integer/key_tab"
+                latin:code="@integer/key_tab"
                 latin:keyIcon="@drawable/sym_keyboard_tab"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_tab"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="micKeyStyle"
-                latin:codes="@integer/key_voice"
+                latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_keyboard_mic"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 latin:keyHintIcon="@drawable/hint_popup"
@@ -97,7 +97,7 @@
                  which is laid out as normal letter key. -->
             <key-style
                 latin:styleName="nonSpecialBackgroundTabKeyStyle"
-                latin:codes="@integer/key_tab"
+                latin:code="@integer/key_tab"
                 latin:keyIcon="@drawable/sym_keyboard_tab"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         </case>
@@ -108,7 +108,7 @@
                 latin:styleName="functionalKeyStyle" />
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:codes="@integer/key_shift"
+                latin:code="@integer/key_shift"
                 latin:keyIcon="@drawable/sym_bkeyboard_shift"
                 latin:shiftedIcon="@drawable/sym_bkeyboard_shift_locked"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
@@ -116,7 +116,7 @@
                 latin:isSticky="true" />
             <key-style
                 latin:styleName="deleteKeyStyle"
-                latin:codes="@integer/key_delete"
+                latin:code="@integer/key_delete"
                 latin:keyIcon="@drawable/sym_bkeyboard_delete"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 latin:parentStyle="functionalKeyStyle"
@@ -131,7 +131,7 @@
                 >
                     <key-style
                         latin:styleName="toSymbolKeyStyle"
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyIcon="@drawable/sym_bkeyboard_123_mic"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic"
                         latin:parentStyle="functionalKeyStyle" />
@@ -139,32 +139,32 @@
                 <default>
                     <key-style
                         latin:styleName="toSymbolKeyStyle"
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyLabel="@string/label_to_symbol_key"
                         latin:parentStyle="functionalKeyStyle" />
                 </default>
             </switch>
             <key-style
                 latin:styleName="settingsKeyStyle"
-                latin:codes="@integer/key_settings"
+                latin:code="@integer/key_settings"
                 latin:keyIcon="@drawable/sym_bkeyboard_settings"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="spaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_bkeyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="tabKeyStyle"
-                latin:codes="@integer/key_tab"
+                latin:code="@integer/key_tab"
                 latin:keyIcon="@drawable/sym_bkeyboard_tab"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_tab"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="micKeyStyle"
-                latin:codes="@integer/key_voice"
+                latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_bkeyboard_mic"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 latin:keyHintIcon="@drawable/hint_popup"
@@ -174,7 +174,7 @@
                  which is laid out as normal letter key. -->
             <key-style
                 latin:styleName="nonSpecialBackgroundTabKeyStyle"
-                latin:codes="@integer/key_tab"
+                latin:code="@integer/key_tab"
                 latin:keyIcon="@drawable/sym_bkeyboard_tab"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         </case>
@@ -186,7 +186,7 @@
         >
             <key-style
                 latin:styleName="returnKeyStyle"
-                latin:codes="@integer/key_return"
+                latin:code="@integer/key_return"
                 latin:keyLabel="@string/label_go_key"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
@@ -195,7 +195,7 @@
         >
             <key-style
                 latin:styleName="returnKeyStyle"
-                latin:codes="@integer/key_return"
+                latin:code="@integer/key_return"
                 latin:keyLabel="@string/label_next_key"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
@@ -204,7 +204,7 @@
         >
             <key-style
                 latin:styleName="returnKeyStyle"
-                latin:codes="@integer/key_return"
+                latin:code="@integer/key_return"
                 latin:keyLabel="@string/label_done_key"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
@@ -213,7 +213,7 @@
         >
             <key-style
                 latin:styleName="returnKeyStyle"
-                latin:codes="@integer/key_return"
+                latin:code="@integer/key_return"
                 latin:keyLabel="@string/label_send_key"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
@@ -226,7 +226,7 @@
                 >
                     <key-style
                         latin:styleName="returnKeyStyle"
-                        latin:codes="@integer/key_return"
+                        latin:code="@integer/key_return"
                         latin:keyIcon="@drawable/sym_keyboard_search"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_search"
                         latin:parentStyle="functionalKeyStyle" />
@@ -236,7 +236,7 @@
                 >
                     <key-style
                         latin:styleName="returnKeyStyle"
-                        latin:codes="@integer/key_return"
+                        latin:code="@integer/key_return"
                         latin:keyIcon="@drawable/sym_bkeyboard_search"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_search"
                         latin:parentStyle="functionalKeyStyle" />
@@ -250,7 +250,7 @@
                 >
                     <key-style
                         latin:styleName="returnKeyStyle"
-                        latin:codes="@integer/key_return"
+                        latin:code="@integer/key_return"
                         latin:keyIcon="@drawable/sym_keyboard_return"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_return"
                         latin:parentStyle="functionalKeyStyle" />
@@ -260,7 +260,7 @@
                 >
                     <key-style
                         latin:styleName="returnKeyStyle"
-                        latin:codes="@integer/key_return"
+                        latin:code="@integer/key_return"
                         latin:keyIcon="@drawable/sym_bkeyboard_return"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_return"
                         latin:parentStyle="functionalKeyStyle" />
@@ -270,12 +270,12 @@
     </switch>
     <key-style
         latin:styleName="toAlphaKeyStyle"
-        latin:codes="@integer/key_switch_alpha_symbol"
+        latin:code="@integer/key_switch_alpha_symbol"
         latin:keyLabel="@string/label_to_alpha_key"
         latin:parentStyle="functionalKeyStyle" />
     <key-style
         latin:styleName="altKeyStyle"
-        latin:codes="@integer/key_shift"
+        latin:code="@integer/key_shift"
         latin:keyLabel="@string/label_alt_key"
         latin:parentStyle="functionalKeyStyle"
         latin:isSticky="true" />
diff --git a/java/res/xml/kbd_number.xml b/java/res/xml/kbd_number.xml
index f4a5def..f4fe840 100644
--- a/java/res/xml/kbd_number.xml
+++ b/java/res/xml/kbd_number.xml
@@ -37,7 +37,7 @@
         >
             <key-style
                 latin:styleName="numSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_keyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
         </case>
@@ -46,7 +46,7 @@
         >
             <key-style
                 latin:styleName="numSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_bkeyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
         </case>
diff --git a/java/res/xml/kbd_numkey_styles.xml b/java/res/xml/kbd_numkey_styles.xml
index 006476d..2f9ae32 100644
--- a/java/res/xml/kbd_numkey_styles.xml
+++ b/java/res/xml/kbd_numkey_styles.xml
@@ -27,60 +27,60 @@
         >
             <key-style
                 latin:styleName="num0KeyStyle"
-                latin:codes="48"
+                latin:code="48"
                 latin:keyIcon="@drawable/sym_keyboard_num0" />
             <key-style
                 latin:styleName="num1KeyStyle"
-                latin:codes="49"
+                latin:code="49"
                 latin:keyIcon="@drawable/sym_keyboard_num1" />
             <key-style
                 latin:styleName="num2KeyStyle"
-                latin:codes="50"
+                latin:code="50"
                 latin:keyIcon="@drawable/sym_keyboard_num2" />
             <key-style
                 latin:styleName="num3KeyStyle"
-                latin:codes="51"
+                latin:code="51"
                 latin:keyIcon="@drawable/sym_keyboard_num3" />
             <key-style
                 latin:styleName="num4KeyStyle"
-                latin:codes="52"
+                latin:code="52"
                 latin:keyIcon="@drawable/sym_keyboard_num4" />
             <key-style
                 latin:styleName="num5KeyStyle"
-                latin:codes="53"
+                latin:code="53"
                 latin:keyIcon="@drawable/sym_keyboard_num5" />
             <key-style
                 latin:styleName="num6KeyStyle"
-                latin:codes="54"
+                latin:code="54"
                 latin:keyIcon="@drawable/sym_keyboard_num6" />
             <key-style
                 latin:styleName="num7KeyStyle"
-                latin:codes="55"
+                latin:code="55"
                 latin:keyIcon="@drawable/sym_keyboard_num7" />
             <key-style
                 latin:styleName="num8KeyStyle"
-                latin:codes="56"
+                latin:code="56"
                 latin:keyIcon="@drawable/sym_keyboard_num8" />
             <key-style
                 latin:styleName="num9KeyStyle"
-                latin:codes="57"
+                latin:code="57"
                 latin:keyIcon="@drawable/sym_keyboard_num9" />
             <key-style
                 latin:styleName="numStarKeyStyle"
-                latin:codes="42"
+                latin:code="42"
                 latin:keyIcon="@drawable/sym_keyboard_numstar" />
             <key-style
                 latin:styleName="numPoundKeyStyle"
-                latin:codes="35"
+                latin:code="35"
                 latin:keyIcon="@drawable/sym_keyboard_numpound" />
             <key-style
                 latin:styleName="numAltKeyStyle"
-                latin:codes="@integer/key_switch_alpha_symbol"
+                latin:code="@integer/key_switch_alpha_symbol"
                 latin:keyIcon="@drawable/sym_keyboard_numalt"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
             <key-style
                 latin:styleName="numSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_keyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
         </case>
@@ -89,60 +89,60 @@
         >
             <key-style
                 latin:styleName="num0KeyStyle"
-                latin:codes="48"
+                latin:code="48"
                 latin:keyIcon="@drawable/sym_bkeyboard_num0" />
             <key-style
                 latin:styleName="num1KeyStyle"
-                latin:codes="49"
+                latin:code="49"
                 latin:keyIcon="@drawable/sym_bkeyboard_num1" />
             <key-style
                 latin:styleName="num2KeyStyle"
-                latin:codes="50"
+                latin:code="50"
                 latin:keyIcon="@drawable/sym_bkeyboard_num2" />
             <key-style
                 latin:styleName="num3KeyStyle"
-                latin:codes="51"
+                latin:code="51"
                 latin:keyIcon="@drawable/sym_bkeyboard_num3" />
             <key-style
                 latin:styleName="num4KeyStyle"
-                latin:codes="52"
+                latin:code="52"
                 latin:keyIcon="@drawable/sym_bkeyboard_num4" />
             <key-style
                 latin:styleName="num5KeyStyle"
-                latin:codes="53"
+                latin:code="53"
                 latin:keyIcon="@drawable/sym_bkeyboard_num5" />
             <key-style
                 latin:styleName="num6KeyStyle"
-                latin:codes="54"
+                latin:code="54"
                 latin:keyIcon="@drawable/sym_bkeyboard_num6" />
             <key-style
                 latin:styleName="num7KeyStyle"
-                latin:codes="55"
+                latin:code="55"
                 latin:keyIcon="@drawable/sym_bkeyboard_num7" />
             <key-style
                 latin:styleName="num8KeyStyle"
-                latin:codes="56"
+                latin:code="56"
                 latin:keyIcon="@drawable/sym_bkeyboard_num8" />
             <key-style
                 latin:styleName="num9KeyStyle"
-                latin:codes="57"
+                latin:code="57"
                 latin:keyIcon="@drawable/sym_bkeyboard_num9" />
             <key-style
                 latin:styleName="numStarKeyStyle"
-                latin:codes="42"
+                latin:code="42"
                 latin:keyIcon="@drawable/sym_bkeyboard_numstar" />
             <key-style
                 latin:styleName="numPoundKeyStyle"
-                latin:codes="35"
+                latin:code="35"
                 latin:keyIcon="@drawable/sym_bkeyboard_numpound" />
             <key-style
                 latin:styleName="numAltKeyStyle"
-                latin:codes="@integer/key_switch_alpha_symbol"
+                latin:code="@integer/key_switch_alpha_symbol"
                 latin:keyIcon="@drawable/sym_bkeyboard_numalt"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_numalt" />
             <key-style
                 latin:styleName="numSpaceKeyStyle"
-                latin:codes="@integer/key_space"
+                latin:code="@integer/key_space"
                 latin:keyIcon="@drawable/sym_bkeyboard_space"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_space" />
         </case>
diff --git a/java/res/xml/kbd_phone_symbols.xml b/java/res/xml/kbd_phone_symbols.xml
index 1997a75..67cd330 100644
--- a/java/res/xml/kbd_phone_symbols.xml
+++ b/java/res/xml/kbd_phone_symbols.xml
@@ -56,7 +56,7 @@
         <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this 
             has changed. -->
         <Key
-            latin:codes="44"
+            latin:code="44"
             latin:keyLabel="Pause" />
         <Key
             latin:keyLabel="," />
@@ -72,7 +72,7 @@
             latin:keyEdgeFlags="left" />
         <!-- Wait is a semicolon. -->
         <Key
-            latin:codes="59"
+            latin:code="59"
             latin:keyLabel="Wait" />
         <Key
             latin:keyStyle="numPoundKeyStyle" />
@@ -85,7 +85,7 @@
         latin:rowEdgeFlags="bottom"
     >
         <Key
-            latin:codes="@integer/key_switch_alpha_symbol"
+            latin:code="@integer/key_switch_alpha_symbol"
             latin:keyLabel="@string/label_to_numeric_key"
             latin:keyEdgeFlags="left" />
         <Key
diff --git a/java/res/xml/kbd_qwerty_black_symbol.xml b/java/res/xml/kbd_qwerty_black_symbol.xml
index fe6b3a6..6e45c12 100644
--- a/java/res/xml/kbd_qwerty_black_symbol.xml
+++ b/java/res/xml/kbd_qwerty_black_symbol.xml
@@ -34,7 +34,7 @@
                     latin:hasVoiceKey="false"
                 >
                     <Key
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyIcon="@drawable/sym_bkeyboard_123_mic"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic"
                         latin:keyWidth="20%p"
@@ -43,7 +43,7 @@
                 </case>
                 <default>
                     <Key
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyLabel="@string/label_to_symbol_key"
                         latin:keyWidth="20%p"
                         latin:isModifier="true"
@@ -63,7 +63,7 @@
                     latin:hasVoiceKey="false"
                 >
                     <Key
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyIcon="@drawable/sym_bkeyboard_123_mic"
                         latin:iconPreview="@drawable/sym_keyboard_feedback_123_mic"
                         latin:keyWidth="15%p"
@@ -72,7 +72,7 @@
                 </case>
                 <default>
                     <Key
-                        latin:codes="@integer/key_switch_alpha_symbol"
+                        latin:code="@integer/key_switch_alpha_symbol"
                         latin:keyLabel="@string/label_to_symbol_key"
                         latin:keyWidth="15%p"
                         latin:isModifier="true"
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 1c165e3..26c3f3e 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -32,10 +32,9 @@
  */
 public class Key {
     /**
-     * All the key codes (unicode or custom code) that this key could generate, zero'th
-     * being the most important.
+     * The key code (unicode or custom code) that this key generates.
      */
-    public final int[] mCodes;
+    public final int mCode;
     /** The unicode that this key generates in manual temporary upper case mode. */
     public final int mManualTemporaryUpperCaseCode;
 
@@ -133,8 +132,6 @@
             android.R.attr.state_pressed
     };
 
-    private static final int[] DUMMY_CODES = { 0 };
-
     /**
      * Create an empty key with no attributes.
      * This constructor is being used only for key in mini popup keyboard.
@@ -157,7 +154,7 @@
         final String popupSpecification = popupCharacter.toString();
         mLabel = PopupCharactersParser.getLabel(popupSpecification);
         mOutputText = PopupCharactersParser.getOutputText(popupSpecification);
-        mCodes = PopupCharactersParser.getCodes(res, popupSpecification);
+        mCode = PopupCharactersParser.getCode(res, popupSpecification);
         mIcon = PopupCharactersParser.getIcon(res, popupSpecification);
         // Horizontal gap is divided equally to both sides of the key.
         mX = x + mGap / 2;
@@ -240,13 +237,14 @@
             mOutputText = style.getText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
             // Choose the first letter of the label as primary code if not
             // specified.
-            final int[] codes = style.getIntArray(keyAttr, R.styleable.Keyboard_Key_codes);
-            if (codes == null && !TextUtils.isEmpty(mLabel)) {
-                mCodes = new int[] { mLabel.charAt(0) };
-            } else if (codes != null) {
-                mCodes = codes;
+            final int code = style.getInt(keyAttr, R.styleable.Keyboard_Key_code,
+                    Keyboard.CODE_UNSPECIFIED);
+            if (code == Keyboard.CODE_UNSPECIFIED && !TextUtils.isEmpty(mLabel)) {
+                mCode = mLabel.charAt(0);
+            } else if (code != Keyboard.CODE_UNSPECIFIED) {
+                mCode = code;
             } else {
-                mCodes = DUMMY_CODES;
+                mCode = Keyboard.CODE_DUMMY;
             }
 
             final Drawable shiftedIcon = style.getDrawable(keyAttr,
diff --git a/java/src/com/android/inputmethod/keyboard/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/KeyStyles.java
index 9e87816..44ec531 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyStyles.java
@@ -23,11 +23,9 @@
 import android.content.res.XmlResourceParser;
 import android.graphics.drawable.Drawable;
 import android.util.Log;
-import android.util.TypedValue;
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.StringTokenizer;
 
 public class KeyStyles {
     private static final String TAG = "KeyStyles";
@@ -38,7 +36,6 @@
     private static final KeyStyle EMPTY_KEY_STYLE = new EmptyKeyStyle();
 
     public interface KeyStyle {
-        public int[] getIntArray(TypedArray a, int index);
         public CharSequence[] getTextArray(TypedArray a, int index);
         public Drawable getDrawable(TypedArray a, int index);
         public CharSequence getText(TypedArray a, int index);
@@ -53,11 +50,6 @@
         }
 
         @Override
-        public int[] getIntArray(TypedArray a, int index) {
-            return parseIntArray(a, index);
-        }
-
-        @Override
         public CharSequence[] getTextArray(TypedArray a, int index) {
             return parseTextArray(a, index);
         }
@@ -136,50 +128,12 @@
                 return list.toArray(new CharSequence[list.size()]);
             }
         }
-
-        protected static int[] parseIntArray(TypedArray a, int index) {
-            if (!a.hasValue(index))
-                return null;
-            TypedValue v = new TypedValue();
-            a.getValue(index, v);
-            if (v.type == TypedValue.TYPE_INT_DEC || v.type == TypedValue.TYPE_INT_HEX) {
-                return new int[] { v.data };
-            } else if (v.type == TypedValue.TYPE_STRING) {
-                return parseCsvInt(v.string.toString());
-            } else {
-                return null;
-            }
-        }
-
-        /* package */ static int[] parseCsvInt(String value) {
-            int count = 0;
-            int lastIndex = 0;
-            if (value.length() > 0) {
-                count++;
-                while ((lastIndex = value.indexOf(",", lastIndex + 1)) > 0) {
-                    count++;
-                }
-            }
-            int[] values = new int[count];
-            count = 0;
-            StringTokenizer st = new StringTokenizer(value, ",");
-            while (st.hasMoreTokens()) {
-                values[count++] = Integer.parseInt(st.nextToken());
-            }
-            return values;
-        }
     }
 
     private static class DeclaredKeyStyle extends EmptyKeyStyle {
         private final HashMap<Integer, Object> mAttributes = new HashMap<Integer, Object>();
 
         @Override
-        public int[] getIntArray(TypedArray a, int index) {
-            return a.hasValue(index)
-                    ? super.getIntArray(a, index) : (int[])mAttributes.get(index);
-        }
-
-        @Override
         public CharSequence[] getTextArray(TypedArray a, int index) {
             return a.hasValue(index)
                     ? super.getTextArray(a, index) : (CharSequence[])mAttributes.get(index);
@@ -221,7 +175,7 @@
 
         private void parseKeyStyleAttributes(TypedArray keyAttr) {
             // TODO: Currently not all Key attributes can be declared as style.
-            readIntArray(keyAttr, R.styleable.Keyboard_Key_codes);
+            readInt(keyAttr, R.styleable.Keyboard_Key_code);
             readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
             readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
             readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
@@ -262,12 +216,6 @@
                 mAttributes.put(index, a.getBoolean(index, false));
         }
 
-        private void readIntArray(TypedArray a, int index) {
-            final int[] value = parseIntArray(a, index);
-            if (value != null)
-                mAttributes.put(index, value);
-        }
-
         private void readTextArray(TypedArray a, int index) {
             final CharSequence[] value = parseTextArray(a, index);
             if (value != null)
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index a20c861..ae1d302 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -65,12 +65,15 @@
     public static final int CODE_PERIOD = '.';
 
     /** Special keys code.  These should be aligned with values/keycodes.xml */
+    public static final int CODE_DUMMY = 0;
     public static final int CODE_SHIFT = -1;
     public static final int CODE_SWITCH_ALPHA_SYMBOL = -2;
     public static final int CODE_CANCEL = -3;
     public static final int CODE_DONE = -4;
     public static final int CODE_DELETE = -5;
     public static final int CODE_ALT = -6;
+    // Code value representing the code is not specified.
+    public static final int CODE_UNSPECIFIED = -99;
     public static final int CODE_SETTINGS = -100;
     public static final int CODE_SETTINGS_LONGPRESS = -101;
     // TODO: remove this once LatinIME stops referring to this.
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
index ed59b8b..c41d570 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java
@@ -279,14 +279,14 @@
             checkEndTag(TAG_KEY, parser);
         } else {
             Key key = new Key(mResources, row, mCurrentX, mCurrentY, parser, mKeyStyles);
-            if (DEBUG) Log.d(TAG, String.format("<%s keyLabel=%s codes=%s popupCharacters=%s />",
-                    TAG_KEY, key.mLabel, Arrays.toString(key.mCodes),
+            if (DEBUG) Log.d(TAG, String.format("<%s keyLabel=%s code=%d popupCharacters=%s />",
+                    TAG_KEY, key.mLabel, key.mCode,
                     Arrays.toString(key.mPopupCharacters)));
             checkEndTag(TAG_KEY, parser);
             keys.add(key);
-            if (key.mCodes[0] == Keyboard.CODE_SHIFT)
+            if (key.mCode == Keyboard.CODE_SHIFT)
                 mKeyboard.getShiftKeys().add(key);
-            if (key.mCodes[0] == Keyboard.CODE_SPACE)
+            if (key.mCode == Keyboard.CODE_SPACE)
                 mKeyboard.setSpaceKey(key);
             endKey(key);
         }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 7f573b2..7c6e4dc 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -834,7 +834,7 @@
         // For characters, use large font. For labels like "Done", use small font.
         final int labelSize;
         final Typeface labelStyle;
-        if (label.length() > 1 && key.mCodes.length < 2) {
+        if (label.length() > 1) {
             labelSize = mLabelTextSize;
             if ((key.mLabelOption & KEY_LABEL_OPTION_FONT_NORMAL) != 0) {
                 labelStyle = Typeface.DEFAULT;
@@ -943,7 +943,7 @@
             // TODO Should take care of temporaryShiftLabel here.
             mPreviewText.setCompoundDrawables(null, null, null, null);
             mPreviewText.setText(adjustCase(tracker.getPreviewText(key)));
-            if (key.mLabel.length() > 1 && key.mCodes.length < 2) {
+            if (key.mLabel.length() > 1) {
                 mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyLetterSize);
                 mPreviewText.setTypeface(Typeface.DEFAULT_BOLD);
             } else {
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
index b9041e3..7b079e3 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java
@@ -294,7 +294,7 @@
     public boolean isInside(Key key, int pointX, int pointY) {
         int x = pointX;
         int y = pointY;
-        final int code = key.mCodes[0];
+        final int code = key.mCode;
         if (code == CODE_SHIFT || code == CODE_DELETE) {
             y -= key.mHeight / 10;
             if (code == CODE_SHIFT) x += key.mWidth / 6;
@@ -348,11 +348,11 @@
                         mPrefLetterY = y;
                         for (int i = 0; i < nearby.length; i++) {
                             Key k = nearbyKeys.get(nearby[i]);
-                            if (k != key && inPrefList(k.mCodes[0], pref)) {
+                            if (k != key && inPrefList(k.mCode, pref)) {
                                 final int dist = distanceFrom(k, x, y);
                                 if (dist < (int) (k.mWidth * OVERLAP_PERCENTAGE_LOW_PROB) &&
-                                        (pref[k.mCodes[0]] > pref[mPrefLetter] * 3))  {
-                                    mPrefLetter = k.mCodes[0];
+                                        (pref[k.mCode] > pref[mPrefLetter] * 3))  {
+                                    mPrefLetter = k.mCode;
                                     mPrefDistance = dist;
                                     if (DEBUG_PREFERRED_LETTER) {
                                         Log.d(TAG, "CORRECTED ALTHOUGH PREFERRED !!!!!!");
@@ -376,11 +376,11 @@
 
                 for (int i = 0; i < nearby.length; i++) {
                     Key k = nearbyKeys.get(nearby[i]);
-                    if (inPrefList(k.mCodes[0], pref)) {
+                    if (inPrefList(k.mCode, pref)) {
                         final int dist = distanceFrom(k, x, y);
                         if (dist < (int) (k.mWidth * OVERLAP_PERCENTAGE_HIGH_PROB)
                                 && dist < mPrefDistance)  {
-                            mPrefLetter = k.mCodes[0];
+                            mPrefLetter = k.mCode;
                             mPrefLetterX = x;
                             mPrefLetterY = y;
                             mPrefDistance = dist;
@@ -430,7 +430,7 @@
         List<Key> keys = getKeys();
         int count = keys.size();
         for (int i = 0; i < count; i++) {
-            if (keys.get(i).mCodes[0] == code) return i;
+            if (keys.get(i).mCode == code) return i;
         }
         return -1;
     }
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 2243e93..cb3b430 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -82,7 +82,7 @@
 
     @Override
     protected boolean onLongPress(Key key) {
-        int primaryCode = key.mCodes[0];
+        int primaryCode = key.mCode;
         if (primaryCode == Keyboard.CODE_SETTINGS) {
             return invokeOnKey(Keyboard.CODE_SETTINGS_LONGPRESS);
         } else if (primaryCode == '0' && getLatinKeyboard().isPhoneKeyboard()) {
diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java
index 774b39a..f04991e 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardKeyDetector.java
@@ -52,7 +52,7 @@
         }
 
         if (allKeys != null && closestKeyIndex != NOT_A_KEY)
-            allKeys[0] = keys[closestKeyIndex].mCodes[0];
+            allKeys[0] = keys[closestKeyIndex].mCode;
         return closestKeyIndex;
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index c076111..7928c4f 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -43,7 +43,6 @@
     private final int mDelayBeforeKeyRepeatStart;
     private final int mLongPressKeyTimeout;
     private final int mLongPressShiftKeyTimeout;
-    private final int mMultiTapKeyTimeout;
 
     // Miscellaneous constants
     private static final int NOT_A_KEY = KeyDetector.NOT_A_KEY;
@@ -75,13 +74,6 @@
     // true if sliding key is allowed.
     private boolean mIsAllowedSlidingKeyInput;
 
-    // For multi-tap
-    private int mLastSentIndex;
-    private int mTapCount;
-    private long mLastTapTime;
-    private boolean mInMultiTap;
-    private final StringBuilder mPreviewLabel = new StringBuilder(1);
-
     // pressed key
     private int mPreviousKey = NOT_A_KEY;
 
@@ -116,8 +108,6 @@
         mDelayBeforeKeyRepeatStart = res.getInteger(R.integer.config_delay_before_key_repeat_start);
         mLongPressKeyTimeout = res.getInteger(R.integer.config_long_press_key_timeout);
         mLongPressShiftKeyTimeout = res.getInteger(R.integer.config_long_press_shift_key_timeout);
-        mMultiTapKeyTimeout = res.getInteger(R.integer.config_multi_tap_key_timeout);
-        resetMultiTap();
     }
 
     public void setOnKeyboardActionListener(KeyboardActionListener listener) {
@@ -184,7 +174,7 @@
 
     private boolean isModifierInternal(int keyIndex) {
         final Key key = getKey(keyIndex);
-        return key == null ? false : isModifierCode(key.mCodes[0]);
+        return key == null ? false : isModifierCode(key.mCode);
     }
 
     public boolean isModifier() {
@@ -197,12 +187,12 @@
 
     public boolean isOnShiftKey(int x, int y) {
         final Key key = getKey(mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null));
-        return key != null && key.mCodes[0] == Keyboard.CODE_SHIFT;
+        return key != null && key.mCode == Keyboard.CODE_SHIFT;
     }
 
     public boolean isSpaceKey(int keyIndex) {
         Key key = getKey(keyIndex);
-        return key != null && key.mCodes[0] == Keyboard.CODE_SPACE;
+        return key != null && key.mCode == Keyboard.CODE_SPACE;
     }
 
     public void releaseKey() {
@@ -260,9 +250,8 @@
         mKeyAlreadyProcessed = false;
         mIsRepeatableKey = false;
         mIsInSlidingKeyInput = false;
-        checkMultiTap(eventTime, keyIndex);
         if (isValidKeyIndex(keyIndex)) {
-            callListenerOnPress(mKeys[keyIndex].mCodes[0]);
+            callListenerOnPress(mKeys[keyIndex].mCode);
             // This onPress call may have changed keyboard layout and have updated mKeyIndex.
             // If that's the case, mKeyIndex has been updated in setKeyboard().
             keyIndex = mKeyState.getKeyIndex();
@@ -290,7 +279,7 @@
             if (oldKey == null) {
                 // The pointer has been slid in to the new key, but the finger was not on any keys.
                 // In this case, we must call onPress() to notify that the new key is being pressed.
-                callListenerOnPress(getKey(keyIndex).mCodes[0]);
+                callListenerOnPress(getKey(keyIndex).mCode);
                 keyState.onMoveToNewKey(keyIndex, x, y);
                 startLongPressTimer(keyIndex);
             } else if (!isMinorMoveBounce(x, y, keyIndex)) {
@@ -298,11 +287,10 @@
                 // onRelease() first to notify that the previous key has been released, then call
                 // onPress() to notify that the new key is being pressed.
                 mIsInSlidingKeyInput = true;
-                callListenerOnRelease(oldKey.mCodes[0]);
+                callListenerOnRelease(oldKey.mCode);
                 mHandler.cancelLongPressTimers();
                 if (mIsAllowedSlidingKeyInput) {
-                    resetMultiTap();
-                    callListenerOnPress(getKey(keyIndex).mCodes[0]);
+                    callListenerOnPress(getKey(keyIndex).mCode);
                     keyState.onMoveToNewKey(keyIndex, x, y);
                     startLongPressTimer(keyIndex);
                 } else {
@@ -316,10 +304,9 @@
                 // The pointer has been slid out from the previous key, we must call onRelease() to
                 // notify that the previous key has been released.
                 mIsInSlidingKeyInput = true;
-                callListenerOnRelease(oldKey.mCodes[0]);
+                callListenerOnRelease(oldKey.mCode);
                 mHandler.cancelLongPressTimers();
                 if (mIsAllowedSlidingKeyInput) {
-                    resetMultiTap();
                     keyState.onMoveToNewKey(keyIndex, x ,y);
                 } else {
                     setAlreadyProcessed();
@@ -351,7 +338,7 @@
             y = keyState.getKeyY();
         }
         if (!mIsRepeatableKey) {
-            detectAndSendKey(keyIndex, x, y, eventTime);
+            detectAndSendKey(keyIndex, x, y);
         }
 
         if (isValidKeyIndex(keyIndex))
@@ -373,9 +360,7 @@
     public void repeatKey(int keyIndex) {
         Key key = getKey(keyIndex);
         if (key != null) {
-            // While key is repeating, because there is no need to handle multi-tap key, we can
-            // pass -1 as eventTime argument.
-            detectAndSendKey(keyIndex, key.mX, key.mY, -1);
+            detectAndSendKey(keyIndex, key.mX, key.mY);
         }
     }
 
@@ -427,7 +412,7 @@
 
     private void startLongPressTimer(int keyIndex) {
         Key key = getKey(keyIndex);
-        if (key.mCodes[0] == Keyboard.CODE_SHIFT) {
+        if (key.mCode == Keyboard.CODE_SHIFT) {
             mHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this);
         } else if (mKeyboardSwitcher.isInMomentaryAutoModeSwitchState()) {
             // We use longer timeout for sliding finger input started from the symbols mode key.
@@ -437,7 +422,7 @@
         }
     }
 
-    private void detectAndSendKey(int index, int x, int y, long eventTime) {
+    private void detectAndSendKey(int index, int x, int y) {
         final Key key = getKey(index);
         if (key == null) {
             callListenerOnCancelInput();
@@ -445,20 +430,11 @@
         }
         if (key.mOutputText != null) {
             callListenerOnTextInput(key.mOutputText);
-            callListenerOnRelease(key.mCodes[0]);
+            callListenerOnRelease(key.mCode);
         } else {
-            int code = key.mCodes[0];
+            int code = key.mCode;
             final int[] codes = mKeyDetector.newCodeArray();
             mKeyDetector.getKeyIndexAndNearbyCodes(x, y, codes);
-            // Multi-tap
-            if (mInMultiTap) {
-                if (mTapCount != -1) {
-                    callListenerOnCodeInput(Keyboard.CODE_DELETE, KEY_DELETE, x, y);
-                } else {
-                    mTapCount = 0;
-                }
-                code = key.mCodes[mTapCount];
-            }
 
             // If keyboard is in manual temporary upper case state and key has manual temporary
             // shift code, alternate character code should be sent.
@@ -477,51 +453,10 @@
             callListenerOnCodeInput(code, codes, x, y);
             callListenerOnRelease(code);
         }
-        mLastSentIndex = index;
-        mLastTapTime = eventTime;
     }
 
-    /**
-     * Handle multi-tap keys by producing the key label for the current multi-tap state.
-     */
     public CharSequence getPreviewText(Key key) {
-        if (mInMultiTap) {
-            // Multi-tap
-            mPreviewLabel.setLength(0);
-            mPreviewLabel.append((char) key.mCodes[mTapCount < 0 ? 0 : mTapCount]);
-            return mPreviewLabel;
-        } else {
-            return key.mLabel;
-        }
-    }
-
-    private void resetMultiTap() {
-        mLastSentIndex = NOT_A_KEY;
-        mTapCount = 0;
-        mLastTapTime = -1;
-        mInMultiTap = false;
-    }
-
-    private void checkMultiTap(long eventTime, int keyIndex) {
-        Key key = getKey(keyIndex);
-        if (key == null)
-            return;
-
-        final boolean isMultiTap =
-                (eventTime < mLastTapTime + mMultiTapKeyTimeout && keyIndex == mLastSentIndex);
-        if (key.mCodes.length > 1) {
-            mInMultiTap = true;
-            if (isMultiTap) {
-                mTapCount = (mTapCount + 1) % key.mCodes.length;
-                return;
-            } else {
-                mTapCount = -1;
-                return;
-            }
-        }
-        if (!isMultiTap) {
-            resetMultiTap();
-        }
+        return key.mLabel;
     }
 
     private long mPreviousEventTime;
@@ -529,7 +464,7 @@
     private void printTouchEvent(String title, int x, int y, long eventTime) {
         final int keyIndex = mKeyDetector.getKeyIndexAndNearbyCodes(x, y, null);
         final Key key = getKey(keyIndex);
-        final String code = (key == null) ? "----" : keyCodePrintable(key.mCodes[0]);
+        final String code = (key == null) ? "----" : keyCodePrintable(key.mCode);
         final long delta = eventTime - mPreviousEventTime;
         Log.d(TAG, String.format("%s%s[%d] %4d %4d %5d %3d(%s)", title,
                 (mKeyAlreadyProcessed ? "-" : " "), mPointerId, x, y, delta, keyIndex, code));
diff --git a/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java b/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java
index cad3da0..32c2580 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java
+++ b/java/src/com/android/inputmethod/keyboard/PopupCharactersParser.java
@@ -39,7 +39,6 @@
     private static final String PREFIX_AT = "@";
     private static final String PREFIX_ICON = PREFIX_AT + "drawable/";
     private static final String PREFIX_CODE = PREFIX_AT + "integer/";
-    private static final int[] DUMMY_CODES = { 0 };
 
     private PopupCharactersParser() {
         // Intentional empty constructor for utility class.
@@ -126,13 +125,13 @@
         final String label = getLabel(popupSpec);
         if (label == null)
             throw new PopupCharactersParserError("Empty label: " + popupSpec);
-        // Code is automatically generated for one letter label. See getCode().
+        // Code is automatically generated for one letter label. See {@link getCode()}.
         if (label.length() == 1)
             return null;
         return label;
     }
 
-    public static int[] getCodes(Resources res, String popupSpec) {
+    public static int getCode(Resources res, String popupSpec) {
         if (hasCode(popupSpec)) {
             final int end = indexOfLabelEnd(popupSpec, 0);
             if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
@@ -140,15 +139,15 @@
             final int resId = getResourceId(res,
                     popupSpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
             final int code = res.getInteger(resId);
-            return new int[] { code };
+            return code;
         }
         if (indexOfLabelEnd(popupSpec, 0) > 0)
-            return DUMMY_CODES;
+            return Keyboard.CODE_DUMMY;
         final String label = getLabel(popupSpec);
         // Code is automatically generated for one letter label.
         if (label != null && label.length() == 1)
-            return new int[] { label.charAt(0) };
-        return DUMMY_CODES;
+            return label.charAt(0);
+        return Keyboard.CODE_DUMMY;
     }
 
     public static Drawable getIcon(Resources res, String popupSpec) {
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java b/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java
index bd4bbcd..0920da2 100644
--- a/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/ProximityKeyDetector.java
@@ -46,17 +46,16 @@
             final int dist = key.squaredDistanceToEdge(touchX, touchY);
             if (isInside || (mProximityCorrectOn && dist < mProximityThresholdSquare)) {
                 if (allKeys == null) continue;
-                final int nCodes = key.mCodes.length;
                 // Find insertion point
                 for (int j = 0; j < distances.length; j++) {
                     if (distances[j] > dist) {
-                        // Make space for nCodes codes
-                        System.arraycopy(distances, j, distances, j + nCodes,
-                                distances.length - (j + nCodes));
-                        System.arraycopy(allKeys, j, allKeys, j + nCodes,
-                                allKeys.length - (j + nCodes));
-                        System.arraycopy(key.mCodes, 0, allKeys, j, nCodes);
-                        Arrays.fill(distances, j, j + nCodes, dist);
+                        final int nextPos = j + 1;
+                        System.arraycopy(distances, j, distances, nextPos,
+                                distances.length - nextPos);
+                        System.arraycopy(allKeys, j, allKeys, nextPos,
+                                allKeys.length - nextPos);
+                        distances[j] = dist;
+                        allKeys[j] = key.mCode;
                         break;
                     }
                 }
diff --git a/java/src/com/android/inputmethod/latin/TextEntryState.java b/java/src/com/android/inputmethod/latin/TextEntryState.java
index f10b862..f571f26 100644
--- a/java/src/com/android/inputmethod/latin/TextEntryState.java
+++ b/java/src/com/android/inputmethod/latin/TextEntryState.java
@@ -263,9 +263,9 @@
     }
 
     public static void keyPressedAt(Key key, int x, int y) {
-        if (LOGGING && sKeyLocationFile != null && key.mCodes[0] >= 32) {
+        if (LOGGING && sKeyLocationFile != null && key.mCode >= 32) {
             String out =
-                    "KEY: " + (char) key.mCodes[0]
+                    "KEY: " + (char) key.mCode
                     + " X: " + x
                     + " Y: " + y
                     + " MX: " + (key.mX + key.mWidth / 2)
