diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index a7e64bf..6f4e602 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -57,6 +57,7 @@
         </service>
 
         <activity android:name=".setup.SetupActivity"
+                android:theme="@style/platformActivityTheme"
                 android:label="@string/english_ime_name"
                 android:icon="@drawable/ic_launcher_keyboard"
                 android:launchMode="singleTask"
@@ -68,6 +69,7 @@
         </activity>
 
         <activity android:name=".setup.SetupWizardActivity"
+                android:theme="@style/platformActivityTheme"
                 android:label="@string/english_ime_name"
                 android:clearTaskOnLaunch="true">
             <intent-filter>
@@ -84,6 +86,7 @@
         </receiver>
 
         <activity android:name=".settings.SettingsActivity"
+                android:theme="@style/platformActivityTheme"
                 android:label="@string/english_ime_settings"
                 android:uiOptions="splitActionBarWhenNarrow">
             <intent-filter>
@@ -92,6 +95,7 @@
         </activity>
 
         <activity android:name=".spellcheck.SpellCheckerSettingsActivity"
+                  android:theme="@style/platformActivityTheme"
                   android:label="@string/android_spell_checker_settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -99,6 +103,7 @@
         </activity>
 
         <activity android:name=".settings.DebugSettingsActivity"
+                android:theme="@style/platformActivityTheme"
                 android:label="@string/english_ime_debug_settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -145,8 +150,8 @@
         </receiver>
 
         <activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity"
+                android:theme="@style/platformActivityTheme"
                 android:label="@string/dictionary_settings_title"
-                android:theme="@android:style/Theme.Holo"
                 android:uiOptions="splitActionBarWhenNarrow">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
@@ -154,8 +159,8 @@
         </activity>
 
         <activity android:name="com.android.inputmethod.dictionarypack.DownloadOverMeteredDialog"
-                android:label="@string/dictionary_install_over_metered_network_prompt"
-                android:theme="@android:style/Theme.Holo">
+                android:theme="@style/platformActivityTheme"
+                android:label="@string/dictionary_install_over_metered_network_prompt">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
             </intent-filter>
diff --git a/java/proguard.flags b/java/proguard.flags
index c08a968..f7b7f28 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -14,3 +14,10 @@
 -keepclassmembers class * {
     native <methods>;
 }
+
+# Keep classes that are used as a parameter type of methods that are also marked as keep
+# to preserve changing those methods' signature.
+-keep class com.android.inputmethod.latin.utils.LanguageModelParam
+-keep class com.android.inputmethod.latin.AssetFileAddress
+-keep class com.android.inputmethod.latin.makedict.ProbabilityInfo
+-keep class com.android.inputmethod.latin.Dictionary
diff --git a/java/res/values-v20/platform-theme.xml b/java/res/values-v20/platform-theme.xml
new file mode 100644
index 0000000..b8c1d96
--- /dev/null
+++ b/java/res/values-v20/platform-theme.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- TODO: This file is temporarily placed under values-v20. -->
+<!-- TODO: It might be moved under values-v21. -->
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- TODO: Use Theme.Quantum.Light once it is fixed.
+    <style name="platformActivityTheme" parent="@android:style/Theme.Quantum.Light" />
+    -->
+    <style name="platformActivityTheme" parent="@android:style/Theme.Quantum.Light.NoActionBar.Fullscreen" />
+    <style name="platformDialogTheme" parent="@android:style/Theme.Quantum.Light.Dialog" />
+</resources>
diff --git a/java/res/values/platform-theme.xml b/java/res/values/platform-theme.xml
new file mode 100644
index 0000000..8e131a2
--- /dev/null
+++ b/java/res/values/platform-theme.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style name="platformActivityTheme" parent="@android:style/Theme.Holo" />
+    <style name="platformDialogTheme" parent="@android:style/Theme.Holo.Dialog" />
+</resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index e38bdd6..937a799 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -358,9 +358,13 @@
          (US) should be an abbreviation of United Statesn to fit in the CHAR LIMIT.
          This should be identical to subtype_es_US aside from the trailing (%s). -->
     <string name="subtype_with_layout_es_US">Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT" example="QWERTY">%s</xliff:g>)</string>
-    <!-- Description for Nepali (Traditional) keyboard subtype [CHAR LIMIT=25]
+    <!-- Description for "LANGUAGE_NAME" (Traditional) keyboard subtype [CHAR LIMIT=25]
          (Traditional) can be an abbreviation to fit in the CHAR LIMIT. -->
-    <string name="subtype_nepali_traditional"><xliff:g id="LANGUAGE_NAME" example="Nepali">%s</xliff:g> (Traditional)</string>
+    <string name="subtype_generic_traditional"><xliff:g id="LANGUAGE_NAME" example="Nepali">%s</xliff:g> (Traditional)</string>
+    <!-- Description for "LANGUAGE_NAME" (Compact) keyboard subtype [CHAR LIMIT=25]
+         (Compact) can be an abbreviation to fit in the CHAR LIMIT.
+         TODO: Remove translatable=false once we are settled down with the naming. -->
+    <string name="subtype_generic_compact" translatable="false"><xliff:g id="LANGUAGE_NAME" example="Hindi">%s</xliff:g> (Compact)</string>
     <!-- TODO: Uncomment once we can handle IETF language tag with script name specified.
          Description for Serbian Cyrillic keyboard subtype [CHAR LIMIT=25]
          (Cyrillic) can be an abbreviation to fit in the CHAR LIMIT.
diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/keys_comma_period.xml
index ab98733..23172cf 100644
--- a/java/res/xml-sw600dp/keys_comma_period.xml
+++ b/java/res/xml-sw600dp/keys_comma_period.xml
@@ -28,11 +28,26 @@
         latin:moreKeys="!text/morekeys_tablet_comma"
         latin:backgroundType="functional"
         latin:keyStyle="hasShiftedLetterHintStyle" />
-    <Key
-        latin:keySpec="!text/keyspec_tablet_period"
-        latin:keyHintLabel="!text/keyhintlabel_tablet_period"
-        latin:keyLabelFlags="hasPopupHint"
-        latin:moreKeys="!text/morekeys_tablet_period"
-        latin:backgroundType="functional"
-        latin:keyStyle="hasShiftedLetterHintStyle" />
+    <switch>
+        <case
+            latin:languageCode="hi"
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0964: "।" DEVANAGARI DANDA -->
+            <Key
+                latin:keySpec="\u0964"
+                latin:keyLabelFlags="hasPopupHint"
+                latin:moreKeys="!autoColumnOrder!8,\\,,.,',#,),(,/,;,@,:,-,&quot;,+,\\%,&amp;"
+                latin:backgroundType="functional" />
+        </case>
+        <default>
+            <Key
+                latin:keySpec="!text/keyspec_tablet_period"
+                latin:keyHintLabel="!text/keyhintlabel_tablet_period"
+                latin:keyLabelFlags="hasPopupHint"
+                latin:moreKeys="!text/morekeys_tablet_period"
+                latin:backgroundType="functional"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/rows_hindi_compact.xml b/java/res/xml-sw600dp/rows_hindi_compact.xml
new file mode 100644
index 0000000..ac476eb
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_hindi_compact.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_hindi_compact1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_hindi_compact2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="8.182%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_hindi_compact3" />
+        <include
+            latin:keyboardLayout="@xml/keys_exclamation_question" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_anusvara.xml b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
deleted file mode 100644
index ee0f21d..0000000
--- a/java/res/xml-v16/key_devanagari_sign_anusvara.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
-     API version 16 can't automatically render dotted circle for incomplete combining letter
-     of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
-     counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
-    <Key
-        latin:keySpec="&#x0902;"
-        latin:keyLabelFlags="fontNormal" />
-</merge>
diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
deleted file mode 100644
index 2f17399..0000000
--- a/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
-     API version 16 can't automatically render dotted circle for incomplete combining letter
-     of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
-     counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
-    <Key
-        latin:keySpec="&#x0949;"
-        latin:keyLabelFlags="fontNormal" />
-</merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml
similarity index 67%
copy from java/res/xml-v16/key_devanagari_sign_candrabindu.xml
copy to java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml
index f246120..71439d6 100644
--- a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_anusvara.xml
@@ -27,21 +27,24 @@
 >
     <switch>
         <case
-            latin:keyboardLayoutSet="hindi"
+            latin:keyboardLayoutSet="hindi_compact"
         >
-            <!-- U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+            <!-- U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                 U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+                 U+093C: "़" DEVANAGARI SIGN NUKTA -->
             <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu"
-                latin:moreKeys="&#x0945;" />
+                latin:styleName="moreKeysDevanagariSignAnusvara"
+                latin:moreKeys="&#x0903;,&#x0901;,&#x093C;" />
         </case>
         <default>
              <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu" />
+                latin:styleName="moreKeysDevanagariSignAnusvara" />
         </default>
     </switch>
-    <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keySpec="&#x0901;"
+    <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
+    <key-style
+        latin:styleName="baseKeyDevanagariSignAnusvara"
+        latin:parentStyle="moreKeysDevanagariSignAnusvara"
+        latin:keySpec="&#x0902;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/keystyle_devanagari_sign_candrabindu.xml
similarity index 92%
rename from java/res/xml-v16/key_devanagari_sign_candrabindu.xml
rename to java/res/xml-v16/keystyle_devanagari_sign_candrabindu.xml
index f246120..6198d01 100644
--- a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_candrabindu.xml
@@ -40,8 +40,9 @@
         </default>
     </switch>
     <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
+    <key-style
+        latin:styleName="baseKeyDevanagariSignCandrabindu"
+        latin:parentStyle="moreKeysDevanagariSignCandrabindu"
         latin:keySpec="&#x0901;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_nukta.xml b/java/res/xml-v16/keystyle_devanagari_sign_nukta.xml
similarity index 81%
rename from java/res/xml-v16/key_devanagari_sign_nukta.xml
rename to java/res/xml-v16/keystyle_devanagari_sign_nukta.xml
index 9157795..e0b47bb 100644
--- a/java/res/xml-v16/key_devanagari_sign_nukta.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_nukta.xml
@@ -36,14 +36,23 @@
                 latin:styleName="moreKeysDevanagariSignNukta"
                 latin:moreKeys="&#x097D;,&#x0970;,&#x093D;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="nepali_romanized"
+        >
+            <!-- U+093C: "़" DEVANAGARI SIGN NUKTA -->
+             <key-style
+                latin:styleName="moreKeysDevanagariSignNukta"
+                latin:moreKeys="&#x093C;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariSignNukta" />
         </default>
     </switch>
     <!-- U+093C: "़" DEVANAGARI SIGN NUKTA -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignNukta"
+    <key-style
+        latin:styleName="baseKeyDevanagariSignNukta"
+        latin:parentStyle="moreKeysDevanagariSignNukta"
         latin:keySpec="&#x093C;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
index 764fb1f..0c3a29b 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
@@ -25,9 +25,24 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
+    <switch>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+            <key-style
+                latin:styleName="moreKeysDevanagariSignVirama"
+                latin:moreKeys="&#x094D;" />
+        </case>
+        <default>
+             <key-style
+                latin:styleName="moreKeysDevanagariSignVirama" />
+        </default>
+    </switch>
     <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
     <key-style
         latin:styleName="baseKeyDevanagariSignVirama"
+        latin:parentStyle="moreKeysDevanagariSignVirama"
         latin:keySpec="&#x094D;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
index fe9264b..5bb0351 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
@@ -35,6 +35,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignAa"
                 latin:moreKeys="&#x093E;&#x0902;,&#x093E;&#x0901;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAa"
+                latin:moreKeys="&#x093E;,%" />
+        </case>
         <default>
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAa" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
index fdb53bb..8edf6eb 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
@@ -35,6 +35,14 @@
                 latin:moreKeys="&#x0948;&#x0902;,%" />
         </case>
         <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAi"
+                latin:moreKeys="&#x0948;,%" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
index 653e79e..212e058 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
@@ -34,6 +34,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignAu"
                 latin:moreKeys="&#x094C;&#x0902;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAu"
+                latin:moreKeys="&#x094C;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAu" />
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml
similarity index 75%
copy from java/res/xml-v16/key_devanagari_sign_candrabindu.xml
copy to java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml
index f246120..ef2c3f1 100644
--- a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_e.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2013, The Android Open Source Project
+** Copyright 2014, The Android Open Source Project
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -27,21 +27,16 @@
 >
     <switch>
         <case
-            latin:keyboardLayoutSet="hindi"
+            latin:keyboardLayoutSet="hindi_compact"
         >
             <!-- U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
             <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu"
+                latin:styleName="moreKeysDevanagariVowelSignCandraE"
                 latin:moreKeys="&#x0945;" />
         </case>
         <default>
              <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu" />
+                latin:styleName="moreKeysDevanagariVowelSignCandraE" />
         </default>
     </switch>
-    <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keySpec="&#x0901;"
-        latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml
similarity index 71%
copy from java/res/xml-v16/key_devanagari_sign_candrabindu.xml
copy to java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml
index f246120..ac01d37 100644
--- a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_candra_o.xml
@@ -27,21 +27,22 @@
 >
     <switch>
         <case
-            latin:keyboardLayoutSet="hindi"
+            latin:keyboardLayoutSet="hindi_compact"
         >
-            <!-- U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+            <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
             <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu"
-                latin:moreKeys="&#x0945;" />
+                latin:styleName="moreKeysDevanagariVowelSignCandraO"
+                latin:moreKeys="&#x0949;" />
         </case>
         <default>
              <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu" />
+                latin:styleName="moreKeysDevanagariVowelSignCandraO" />
         </default>
     </switch>
-    <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keySpec="&#x0901;"
+    <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
+    <key-style
+        latin:styleName="baseKeyDevanagariVowelSignCandraO"
+        latin:parentStyle="moreKeysDevanagariVowelSignCandraO"
+        latin:keySpec="&#x0949;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
index 7240a2c..77d6eb5 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
@@ -35,6 +35,14 @@
                 latin:moreKeys="&#x0947;&#x0902;" />
         </case>
         <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignE"
+                latin:moreKeys="&#x0947;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0903: "ः‍" DEVANAGARI SIGN VISARGA
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
index 5a006f0..d79447b 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
@@ -34,6 +34,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignI"
                 latin:moreKeys="&#x093F;&#x0902;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignI"
+                latin:moreKeys="&#x093F;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignI" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
index a2b07fe..0e10f31 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
@@ -34,6 +34,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignIi"
                 latin:moreKeys="&#x0940;&#x0902;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignIi"
+                latin:moreKeys="&#x0940;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignIi" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
index 4b764cd..47ca906 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
@@ -29,13 +29,21 @@
         <case
             latin:keyboardLayoutSet="hindi"
         >
-            <!-- U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
+            <!-- U+094B/U+0902: "ों" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
                  U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
                  U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignO"
                 latin:moreKeys="&#x094B;&#x0902;,&#x0949;,&#x094A;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignO"
+                latin:moreKeys="&#x094B;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignO" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
index 18d485a..694e4ab 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
@@ -35,6 +35,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignU"
                 latin:moreKeys="&#x0941;&#x0902;,&#x0941;&#x0901;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignU"
+                latin:moreKeys="&#x0941;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignU" />
diff --git a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
index d770ee6..f17489e 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
@@ -35,6 +35,14 @@
                 latin:styleName="moreKeysDevanagariVowelSignUu"
                 latin:moreKeys="&#x0942;&#x0902;,&#x0942;&#x0901;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignUu"
+                latin:moreKeys="&#x0942;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignUu" />
diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml
similarity index 79%
rename from java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
rename to java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml
index dc7a0e0..2709846 100644
--- a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_vocalic_r.xml
@@ -35,6 +35,15 @@
                 latin:moreKeys="&#x0944;" />
         </case>
         <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+                 U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+                latin:moreKeys="&#x090B;,&#x0943;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
@@ -48,8 +57,9 @@
         </default>
     </switch>
     <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
+    <key-style
+        latin:styleName="baseKeyDevanagariVowelSignVocalicR"
+        latin:parentStyle="moreKeysDevanagariVowelSignVocalicR"
         latin:keySpec="&#x0943;"
         latin:keyLabelFlags="fontNormal" />
 </merge>
diff --git a/java/res/xml/kbd_hindi_compact.xml b/java/res/xml/kbd_hindi_compact.xml
new file mode 100644
index 0000000..7502bba
--- /dev/null
+++ b/java/res/xml/kbd_hindi_compact.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<Keyboard
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/rows_hindi_compact" />
+</Keyboard>
diff --git a/java/res/xml/key_devanagari_sign_anusvara.xml b/java/res/xml/key_devanagari_sign_anusvara.xml
deleted file mode 100644
index 5d7c018..0000000
--- a/java/res/xml/key_devanagari_sign_anusvara.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
-     API version 16 can't automatically render dotted circle for incomplete combining letter
-     of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
-     counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <!-- U+25CC: "◌" DOTTED CIRCLE
-         U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
-    <Key
-        latin:keySpec="&#x25CC;&#x0902;|&#x0902;"
-        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
-</merge>
diff --git a/java/res/xml/key_devanagari_vowel_sign_candra_o.xml b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
deleted file mode 100644
index 6d7d000..0000000
--- a/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- The code point U+25CC for key label is needed because the font rendering system prior to
-     API version 16 can't automatically render dotted circle for incomplete combining letter
-     of some scripts. The files named res/xml/key_*.xml have this U+25CC hack, although the
-     counterpart files named res/xml-v16/key_*.xml don't have this hack. -->
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <!-- U+25CC: "◌" DOTTED CIRCLE
-         U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
-    <Key
-        latin:keySpec="&#x25CC;&#x0949;|&#x0949;"
-        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
-</merge>
diff --git a/java/res/xml/key_period.xml b/java/res/xml/key_period.xml
index ce23e22..e1d4bbd 100644
--- a/java/res/xml/key_period.xml
+++ b/java/res/xml/key_period.xml
@@ -23,6 +23,17 @@
 >
     <switch>
         <case
+            latin:languageCode="hi"
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+0964: "।" DEVANAGARI DANDA -->
+            <Key
+                latin:keySpec="\u0964"
+                latin:keyLabelFlags="hasPopupHint"
+                latin:moreKeys="!autoColumnOrder!9,\\,,.,?,!,#,),(,/,;,',@,:,-,&quot;,+,\\%,&amp;"
+                latin:backgroundType="functional" />
+        </case>
+        <case
             latin:languageCode="ne"
             latin:keyboardLayoutSet="nepali_traditional"
         >
diff --git a/java/res/xml/keyboard_layout_set_hindi_compact.xml b/java/res/xml/keyboard_layout_set_hindi_compact.xml
new file mode 100644
index 0000000..77d02fb
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_hindi_compact.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <Element
+        latin:elementName="alphabet"
+        latin:elementKeyboard="@xml/kbd_hindi_compact"
+        latin:enableProximityCharsCorrection="true" />
+    <Element
+        latin:elementName="symbols"
+        latin:elementKeyboard="@xml/kbd_symbols" />
+    <Element
+        latin:elementName="symbolsShifted"
+        latin:elementKeyboard="@xml/kbd_symbols_shift" />
+    <Element
+        latin:elementName="phone"
+        latin:elementKeyboard="@xml/kbd_phone" />
+    <Element
+        latin:elementName="phoneSymbols"
+        latin:elementKeyboard="@xml/kbd_phone_symbols" />
+    <Element
+        latin:elementName="number"
+        latin:elementKeyboard="@xml/kbd_number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/key_devanagari_sign_candrabindu.xml b/java/res/xml/keystyle_devanagari_sign_anusvara.xml
similarity index 66%
copy from java/res/xml/key_devanagari_sign_candrabindu.xml
copy to java/res/xml/keystyle_devanagari_sign_anusvara.xml
index 9e9c371..6dc9b7e 100644
--- a/java/res/xml/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml/keystyle_devanagari_sign_anusvara.xml
@@ -27,23 +27,26 @@
 >
     <switch>
         <case
-            latin:keyboardLayoutSet="hindi"
+            latin:keyboardLayoutSet="hindi_compact"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
-                 U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+                 U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                 U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+                 U+093C: "़" DEVANAGARI SIGN NUKTA -->
             <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu"
-                latin:moreKeys="&#x25CC;&#x0945;|&#x0945;" />
+                latin:styleName="moreKeysDevanagariSignAnusvara"
+                latin:moreKeys="&#x25CC;&#x0903;|&#x0903;,&#x25CC;&#x0901;|&#x0901;,&#x25CC;&#x093C;|&#x093C;" />
         </case>
         <default>
              <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu" />
+                latin:styleName="moreKeysDevanagariSignAnusvara" />
         </default>
     </switch>
     <!-- U+25CC: "◌" DOTTED CIRCLE
-         U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keySpec="&#x25CC;&#x0901;|&#x0901;"
+         U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
+    <key-style
+        latin:styleName="baseKeyDevanagariSignAnusvara"
+        latin:parentStyle="moreKeysDevanagariSignAnusvara"
+        latin:keySpec="&#x25CC;&#x0902;|&#x0902;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_sign_candrabindu.xml b/java/res/xml/keystyle_devanagari_sign_candrabindu.xml
similarity index 93%
rename from java/res/xml/key_devanagari_sign_candrabindu.xml
rename to java/res/xml/keystyle_devanagari_sign_candrabindu.xml
index 9e9c371..24cb44b 100644
--- a/java/res/xml/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml/keystyle_devanagari_sign_candrabindu.xml
@@ -42,8 +42,9 @@
     </switch>
     <!-- U+25CC: "◌" DOTTED CIRCLE
          U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
+    <key-style
+        latin:styleName="baseKeyDevanagariSignCandrabindu"
+        latin:parentStyle="moreKeysDevanagariSignCandrabindu"
         latin:keySpec="&#x25CC;&#x0901;|&#x0901;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_sign_nukta.xml b/java/res/xml/keystyle_devanagari_sign_nukta.xml
similarity index 80%
rename from java/res/xml/key_devanagari_sign_nukta.xml
rename to java/res/xml/keystyle_devanagari_sign_nukta.xml
index b56eb0a..41da555 100644
--- a/java/res/xml/key_devanagari_sign_nukta.xml
+++ b/java/res/xml/keystyle_devanagari_sign_nukta.xml
@@ -37,6 +37,15 @@
                 latin:styleName="moreKeysDevanagariSignNukta"
                 latin:moreKeys="&#x25CC;&#x097D;|&#x097D;,&#x25CC;&#x0970;|&#x0970;,&#x25CC;&#x093D;|&#x093D;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="nepali_romanized"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+093C: "़" DEVANAGARI SIGN NUKTA -->
+             <key-style
+                latin:styleName="moreKeysDevanagariSignNukta"
+                latin:moreKeys="&#x25CC;&#x093C;|&#x093C;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariSignNukta" />
@@ -44,8 +53,9 @@
     </switch>
     <!-- U+25CC: "◌" DOTTED CIRCLE
          U+093C: "़" DEVANAGARI SIGN NUKTA -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignNukta"
+    <key-style
+        latin:styleName="baseKeyDevanagariSignNukta"
+        latin:parentStyle="moreKeysDevanagariSignNukta"
         latin:keySpec="&#x25CC;&#x093C;|&#x093C;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_sign_virama.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml
index 5e0e108..96506e2 100644
--- a/java/res/xml/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml/keystyle_devanagari_sign_virama.xml
@@ -25,10 +25,26 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
+    <switch>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+            <key-style
+                latin:styleName="moreKeysDevanagariSignVirama"
+                latin:moreKeys="&#x25CC;&#x094D;|&#x094D;" />
+        </case>
+        <default>
+             <key-style
+                latin:styleName="moreKeysDevanagariSignVirama" />
+        </default>
+    </switch>
     <!-- U+25CC: "◌" DOTTED CIRCLE
          U+094D: "्" DEVANAGARI SIGN VIRAMA -->
     <key-style
         latin:styleName="baseKeyDevanagariSignVirama"
+        latin:parentStyle="moreKeysDevanagariSignVirama"
         latin:keySpec="&#x25CC;&#x094D;|&#x094D;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
  </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
index 97f98e3..4b87650 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
@@ -36,6 +36,15 @@
                 latin:styleName="moreKeysDevanagariVowelSignAa"
                 latin:moreKeys="&#x25CC;&#x093E;&#x0902;|&#x093E;&#x0902;,&#x25CC;&#x093E;&#x0901;|&#x093E;&#x0901;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+093E: "ा" DEVANAGARI VOWEL SIGN AA -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAa"
+                latin:moreKeys="&#x25CC;&#x093E;|&#x093E;,%" />
+        </case>
         <default>
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAa" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
index 4d1b2c5..050a7ce 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
@@ -36,6 +36,15 @@
                 latin:moreKeys="&#x25CC;&#x0948;&#x0902;|&#x0948;&#x0902;,%" />
         </case>
         <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+0948: "ै" DEVANAGARI VOWEL SIGN AI -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAi"
+                latin:moreKeys="&#x25CC;&#x0948;|&#x0948;,%" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
index 66628b5..49e67da 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
@@ -30,11 +30,20 @@
             latin:keyboardLayoutSet="hindi"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
-                U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA -->
+                 U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA -->
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAu"
                 latin:moreKeys="&#x25CC;&#x094C;&#x0902;|&#x094C;&#x0902;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+094C: "ौ" DEVANAGARI VOWEL SIGN AU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignAu"
+                latin:moreKeys="&#x25CC;&#x094C;|&#x094C;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignAu" />
diff --git a/java/res/xml/key_devanagari_sign_candrabindu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml
similarity index 73%
copy from java/res/xml/key_devanagari_sign_candrabindu.xml
copy to java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml
index 9e9c371..86f68d3 100644
--- a/java/res/xml/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_candra_e.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2013, The Android Open Source Project
+** Copyright 2014, The Android Open Source Project
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -27,23 +27,17 @@
 >
     <switch>
         <case
-            latin:keyboardLayoutSet="hindi"
+            latin:keyboardLayoutSet="hindi_compact"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
                  U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
             <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu"
+                latin:styleName="moreKeysDevanagariVowelSignCandraE"
                 latin:moreKeys="&#x25CC;&#x0945;|&#x0945;" />
         </case>
         <default>
              <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu" />
+                latin:styleName="moreKeysDevanagariVowelSignCandraE" />
         </default>
     </switch>
-    <!-- U+25CC: "◌" DOTTED CIRCLE
-         U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keySpec="&#x25CC;&#x0901;|&#x0901;"
-        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/key_devanagari_sign_candrabindu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml
similarity index 71%
copy from java/res/xml/key_devanagari_sign_candrabindu.xml
copy to java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml
index 9e9c371..fd711e0 100644
--- a/java/res/xml/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_candra_o.xml
@@ -27,23 +27,24 @@
 >
     <switch>
         <case
-            latin:keyboardLayoutSet="hindi"
+            latin:keyboardLayoutSet="hindi_compact"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
-                 U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+                 U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
             <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu"
-                latin:moreKeys="&#x25CC;&#x0945;|&#x0945;" />
+                latin:styleName="moreKeysDevanagariVowelSignCandraO"
+                latin:moreKeys="&#x25CC;&#x0949;|&#x0949;" />
         </case>
         <default>
              <key-style
-                latin:styleName="moreKeysDevanagariSignCandrabindu" />
+                latin:styleName="moreKeysDevanagariVowelSignCandraO" />
         </default>
     </switch>
     <!-- U+25CC: "◌" DOTTED CIRCLE
-         U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariSignCandrabindu"
-        latin:keySpec="&#x25CC;&#x0901;|&#x0901;"
+         U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
+    <key-style
+        latin:styleName="baseKeyDevanagariVowelSignCandraO"
+        latin:parentStyle="moreKeysDevanagariVowelSignCandraO"
+        latin:keySpec="&#x25CC;&#x0949;|&#x0949;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
index de1d949..88f6a74 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
@@ -36,6 +36,15 @@
                 latin:moreKeys="&#x25CC;&#x0947;&#x0902;|&#x0947;&#x0902;" />
         </case>
         <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+0947: "े" DEVANAGARI VOWEL SIGN E -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignE"
+                latin:moreKeys="&#x25CC;&#x0947;|&#x0947;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
index d1d56c1..a84fdb4 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
@@ -35,6 +35,15 @@
                 latin:styleName="moreKeysDevanagariVowelSignI"
                 latin:moreKeys="&#x093F;&#x25CC;&#x0902;|&#x093F;&#x0902;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+093F: "ि" DEVANAGARI VOWEL SIGN I -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignI"
+                latin:moreKeys="&#x25CC;&#x093F;|&#x093F;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignI" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
index fd0ce77..6f6eb0f 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
@@ -29,12 +29,21 @@
         <case
             latin:keyboardLayoutSet="hindi"
         >
-            <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II
+            <!-- U+25CC: "◌" DOTTED CIRCLE
                  U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA -->
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignIi"
                 latin:moreKeys="&#x25CC;&#x0940;&#x0902;|&#x0940;&#x0902;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+0940: "ी" DEVANAGARI VOWEL SIGN II -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignIi"
+                latin:moreKeys="&#x25CC;&#x0940;|&#x0940;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignIi" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
index edc3bef..68b176a 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
@@ -30,13 +30,22 @@
             latin:keyboardLayoutSet="hindi"
         >
             <!-- U+25CC: "◌" DOTTED CIRCLE
-                 U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
+                 U+094B/U+0902: "ों" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
                  U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
                  U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
             <key-style
                 latin:styleName="moreKeysDevanagariVowelSignO"
                 latin:moreKeys="&#x25CC;&#x094B;&#x0902;|&#x094B;&#x0902;,&#x25CC;&#x0949;|&#x0949;,&#x25CC;&#x094A;|&#x094A;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+094B: "ो" DEVANAGARI VOWEL SIGN O -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignO"
+                latin:moreKeys="&#x25CC;&#x094B;|&#x094B;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignO" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
index c7de4fd..7c058b1 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
@@ -36,6 +36,15 @@
                 latin:styleName="moreKeysDevanagariVowelSignU"
                 latin:moreKeys="&#x25CC;&#x0941;&#x0902;|&#x0941;&#x0902;,&#x25CC;&#x0941;&#x0901;|&#x0941;&#x0901;" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+0941: "ु" DEVANAGARI VOWEL SIGN U -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignU"
+                latin:moreKeys="&#x25CC;&#x0941;|&#x0941;" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignU" />
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
index 6029d6d..73ab63c 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
@@ -36,6 +36,15 @@
                 latin:styleName="moreKeysDevanagariVowelSignUu"
                 latin:moreKeys="&#x25CC;&#x0942;&#x0902;|&#x0942;&#x0902;,&#x25CC;&#x0942;&#x0901;|&#x0942;&#x0901;,%" />
         </case>
+        <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+25CC: "◌" DOTTED CIRCLE
+                 U+0942: "ू" DEVANAGARI VOWEL SIGN UU -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignUu"
+                latin:moreKeys="&#x25CC;&#x0942;|&#x0942;,%" />
+        </case>
         <default>
              <key-style
                 latin:styleName="moreKeysDevanagariVowelSignUu" />
diff --git a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml
similarity index 79%
rename from java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
rename to java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml
index badea3e..29b083e 100644
--- a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_vocalic_r.xml
@@ -36,6 +36,16 @@
                 latin:moreKeys="&#x25CC;&#x0944;|&#x0944;" />
         </case>
         <case
+            latin:keyboardLayoutSet="hindi_compact"
+        >
+            <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+                 U+25CC: "◌" DOTTED CIRCLE
+                 U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
+            <key-style
+                latin:styleName="moreKeysDevanagariVowelSignVocalicR"
+                latin:moreKeys="&#x090B;,&#x25CC;&#x0943;|&#x0943;" />
+        </case>
+        <case
             latin:keyboardLayoutSet="nepali_traditional"
         >
             <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
@@ -50,8 +60,9 @@
     </switch>
     <!-- U+25CC: "◌" DOTTED CIRCLE
          U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
-    <Key
-        latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
+    <key-style
+        latin:styleName="baseKeyDevanagariVowelSignVocalicR"
+        latin:parentStyle="moreKeysDevanagariVowelSignVocalicR"
         latin:keySpec="&#x25CC;&#x0943;|&#x0943;"
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
 </merge>
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index c64b3a4..ee1b54b 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -49,6 +49,7 @@
     fr_CH: French (Switzerland)/swiss
     gl_ES: Galician (Spain)/spanish
     hi: Hindi/hindi
+    hi: Hindi/hindi_compact
     hr: Croatian/qwertz
     hu: Hungarian/qwertz
     hy_AM: Armenian (Armenia) Phonetic/armenian_phonetic
@@ -321,6 +322,14 @@
             android:isAsciiCapable="false"
     />
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_generic_compact"
+            android:subtypeId="0xe49c89a1"
+            android:imeSubtypeLocale="hi"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=hindi_compact,EmojiCapable"
+            android:isAsciiCapable="false"
+    />
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x35b7526a"
             android:imeSubtypeLocale="hr"
@@ -485,7 +494,7 @@
             android:isAsciiCapable="false"
     />
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
-            android:label="@string/subtype_nepali_traditional"
+            android:label="@string/subtype_generic_traditional"
             android:subtypeId="0x5fafea88"
             android:imeSubtypeLocale="ne_NP"
             android:imeSubtypeMode="keyboard"
diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml
index 5d696b3..cff9756 100644
--- a/java/res/xml/rowkeys_hindi1.xml
+++ b/java/res/xml/rowkeys_hindi1.xml
@@ -92,9 +92,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+0967: "१" DEVANAGARI DIGIT ONE -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+            <!-- U+0967: "१" DEVANAGARI DIGIT ONE -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignAu"
                 latin:keyHintLabel="1"
@@ -102,9 +102,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+            <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignAi"
                 latin:keyHintLabel="2"
@@ -112,9 +112,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" />
+            <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignAa"
                 latin:keyHintLabel="3"
@@ -122,9 +122,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+096A: "४" DEVANAGARI DIGIT FOUR -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" />
+            <!-- U+096A: "४" DEVANAGARI DIGIT FOUR -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignIi"
                 latin:keyHintLabel="4"
@@ -132,9 +132,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+096B: "५" DEVANAGARI DIGIT FIVE -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" />
+            <!-- U+096B: "५" DEVANAGARI DIGIT FIVE -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignUu"
                 latin:keyHintLabel="5"
diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml
index a9be472..cf36fc5 100644
--- a/java/res/xml/rowkeys_hindi3.xml
+++ b/java/res/xml/rowkeys_hindi3.xml
@@ -33,7 +33,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_candrabindu" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignCandrabindu" />
             <!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
             <Key
                 latin:keySpec="&#x0923;"
@@ -59,7 +61,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_vocalic_r" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariVowelSignVocalicR" />
             <!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
             <Key
                 latin:keySpec="&#x091E;"
@@ -70,9 +74,16 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_vowel_sign_candra_o" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_candra_o" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariVowelSignCandraO" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignAnusvara" />
             <!-- U+092E: "म" DEVANAGARI LETTER MA
                  U+0950: "ॐ" DEVANAGARI OM -->
             <Key
@@ -112,7 +123,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_nukta" />
-         </default>
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_nukta" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignNukta" />
+        </default>
     </switch>
 </merge>
diff --git a/java/res/xml/rowkeys_hindi_compact1.xml b/java/res/xml/rowkeys_hindi_compact1.xml
new file mode 100644
index 0000000..c63de4f
--- /dev/null
+++ b/java/res/xml/rowkeys_hindi_compact1.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+    <!-- U+0914: "औ" DEVANAGARI LETTER AU
+         U+0967: "१" DEVANAGARI DIGIT ONE -->
+    <Key
+        latin:keySpec="&#x0914;"
+        latin:keyStyle="moreKeysDevanagariVowelSignAu"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="&#x0967;,1"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+    <!-- U+0910: "ऐ" DEVANAGARI LETTER AI
+         U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <Key
+        latin:keySpec="&#x0910;"
+        latin:keyStyle="moreKeysDevanagariVowelSignAi"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="&#x0968;,2"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_aa" />
+    <!-- U+0906: "आ" DEVANAGARI LETTER AA
+         U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <Key
+        latin:keySpec="&#x0906;"
+        latin:keyStyle="moreKeysDevanagariVowelSignAa"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="&#x0969;,3"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ii" />
+    <!-- U+0908: "ई" DEVANAGARI LETTER II
+         U+096A: "४" DEVANAGARI DIGIT FOUR -->
+    <Key
+        latin:keySpec="&#x0908;"
+        latin:keyStyle="moreKeysDevanagariVowelSignIi"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="&#x096A;,4"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_uu" />
+    <!-- U+090A: "ऊ" DEVANAGARI LETTER UU
+         U+096B: "५" DEVANAGARI DIGIT FIVE -->
+    <Key
+        latin:keySpec="&#x090A;"
+        latin:keyStyle="moreKeysDevanagariVowelSignUu"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="&#x096B;,5"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+092C: "ब" DEVANAGARI LETTER BA
+         U+092D: "भ" DEVANAGARI LETTER BHA
+         U+096C: "६" DEVANAGARI DIGIT SIX -->
+    <Key
+        latin:keySpec="&#x092C;"
+        latin:moreKeys="&#x092D;,%"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="&#x096C;,6"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0939: "ह" DEVANAGARI LETTER HA
+         U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+    <Key
+        latin:keySpec="&#x0939;"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="&#x096D;,7"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0917: "ग" DEVANAGARI LETTER GA
+         U+0918: "घ" DEVANAGARI LETTER GHA
+         U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+    <Key
+        latin:keySpec="&#x0917;"
+        latin:moreKeys="&#x0918;,%"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="&#x096E;,8"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0926: "द" DEVANAGARI LETTER DA
+         U+0927: "ध" DEVANAGARI LETTER DHA
+         U+096F: "९" DEVANAGARI DIGIT NINE -->
+    <Key
+        latin:keySpec="&#x0926;"
+        latin:moreKeys="&#x0927;,%"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="&#x096F;,9"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+091C: "ज" DEVANAGARI LETTER JA
+         U+091D: "झ" DEVANAGARI LETTER JHA
+         U+091C/U+094D/U+091E: "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER NYA
+         U+0966: "०" DEVANAGARI DIGIT ZERO -->
+    <Key
+        latin:keySpec="&#x091C;"
+        latin:moreKeys="&#x091D;,&#x091C;&#x094D;&#x091E;,%"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="&#x0966;,0"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0921: "ड" DEVANAGARI LETTER DDA
+         U+0922: "ढ" DEVANAGARI LETTER DDHA -->
+    <Key
+        latin:keySpec="&#x0921;"
+        latin:moreKeys="&#x0922;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/rowkeys_hindi_compact2.xml b/java/res/xml/rowkeys_hindi_compact2.xml
new file mode 100644
index 0000000..06364c2
--- /dev/null
+++ b/java/res/xml/rowkeys_hindi_compact2.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" />
+    <!-- U+0913: "ओ" DEVANAGARI LETTER O -->
+    <Key
+        latin:keySpec="&#x0913;"
+        latin:keyStyle="moreKeysDevanagariVowelSignO"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+    <!-- U+090F: "ए" DEVANAGARI LETTER E -->
+    <Key
+        latin:keySpec="&#x090F;"
+        latin:keyStyle="moreKeysDevanagariVowelSignE"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+    <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+    <Key
+        latin:keySpec="&#x0905;"
+        latin:keyStyle="moreKeysDevanagariSignVirama"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" />
+    <!-- U+0907: "इ" DEVANAGARI LETTER I -->
+    <Key
+        latin:keySpec="&#x0907;"
+        latin:keyStyle="moreKeysDevanagariVowelSignI"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" />
+    <!-- U+0909: "उ" DEVANAGARI LETTER U -->
+    <Key
+        latin:keySpec="&#x0909;"
+        latin:keyStyle="moreKeysDevanagariVowelSignU"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+092A: "प" DEVANAGARI LETTER PA
+         U+092B: "फ" DEVANAGARI LETTER PHA -->
+    <Key
+        latin:keySpec="&#x092A;"
+        latin:moreKeys="&#x092B;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_vocalic_r" />
+    <!-- U+0930: "र" DEVANAGARI LETTER RA -->
+    <Key
+        latin:keySpec="&#x0930;"
+        latin:keyStyle="moreKeysDevanagariVowelSignVocalicR"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0915: "क" DEVANAGARI LETTER KA
+         U+0916: "ख" DEVANAGARI LETTER KHA -->
+    <Key
+        latin:keySpec="&#x0915;"
+        latin:moreKeys="&#x0916;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0924: "त" DEVANAGARI LETTER TA
+         U+0925: "थ" DEVANAGARI LETTER THA
+         U+0924/U+094D/U+0930: "त्र" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
+    <Key
+        latin:keySpec="&#x0924;"
+        latin:moreKeys="&#x0925;,&#x0924;&#x094D;&#x0930;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+091A: "च" DEVANAGARI LETTER CA
+         U+091B: "छ" DEVANAGARI LETTER CHA -->
+    <Key
+        latin:keySpec="&#x091A;"
+        latin:moreKeys="&#x091B;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+091F: "ट" DEVANAGARI LETTER TTA
+         U+0920: "ठ" DEVANAGARI LETTER TTHA -->
+    <Key
+        latin:keySpec="&#x091F;"
+        latin:moreKeys="&#x0920;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/rowkeys_hindi_compact3.xml b/java/res/xml/rowkeys_hindi_compact3.xml
new file mode 100644
index 0000000..0e8165e
--- /dev/null
+++ b/java/res/xml/rowkeys_hindi_compact3.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_candra_o" />
+    <!-- U+0911: "ऑ" DEVANAGARI LETTER CANDRA O -->
+    <Key
+        latin:keySpec="&#x0911;"
+        latin:keyStyle="moreKeysDevanagariVowelSignCandraO"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_candra_e" />
+    <!-- U+090D: "ऍ" DEVANAGARI LETTER CANDRA E -->
+    <Key
+        latin:keySpec="&#x090D;"
+        latin:keyStyle="moreKeysDevanagariVowelSignCandraE"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- Because the font rendering system prior to API version 16 can't automatically
+         render dotted circle for incomplete combining letter of some scripts, different
+         set of Key definitions are needed based on the API version. -->
+    <include
+        latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+    <Key
+        latin:keyStyle="baseKeyDevanagariSignAnusvara" />
+    <!-- U+092E: "म" DEVANAGARI LETTER MA
+         U+0950: "ॐ" DEVANAGARI OM -->
+    <Key
+        latin:keySpec="&#x092E;"
+        latin:moreKeys="&#x0950;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0928: "न" DEVANAGARI LETTER NA
+         U+0923: "ण" DEVANAGARI LETTER NNA
+         U+091E: "ञ" DEVANAGARI LETTER NYA
+         U+0919: "ङ" DEVANAGARI LETTER NGA -->
+    <Key
+        latin:keySpec="&#x0928;"
+        latin:moreKeys="&#x0923;,&#x091E;,&#x0919;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0935: "व" DEVANAGARI LETTER VA -->
+    <Key
+        latin:keySpec="&#x0935;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
+    <Key
+        latin:keySpec="&#x0932;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0938: "स" DEVANAGARI LETTER SA
+         U+0936: "श" DEVANAGARI LETTER SHA
+         U+0937: "ष" DEVANAGARI LETTER SSA
+         U+0936/U+094D/U+0930: "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA -->
+    <Key
+        latin:keySpec="&#x0938;"
+        latin:moreKeys="&#x0936;,&#x0937;,&#x0936;&#x094D;&#x0930;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+092F: "य" DEVANAGARI LETTER YA -->
+    <Key
+        latin:keySpec="&#x092F;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0915/U+094D/U+0937: "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA -->
+    <Key
+        latin:keySpec="&#x0915;&#x094D;&#x0937;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized1.xml b/java/res/xml/rowkeys_nepali_romanized1.xml
index 3c082c2..616b259 100644
--- a/java/res/xml/rowkeys_nepali_romanized1.xml
+++ b/java/res/xml/rowkeys_nepali_romanized1.xml
@@ -44,7 +44,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_vocalic_r" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariVowelSignVocalicR" />
             <!-- U+0925: "थ" DEVANAGARI LETTER THA -->
             <Key
                 latin:keySpec="&#x0925;"
@@ -81,21 +83,25 @@
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_nukta" />
             <!-- U+091F: "ट" DEVANAGARI LETTER TTA
-                 U+0967: "१" DEVANAGARI DIGIT ONE
-                 U+093C: "़" DEVANAGARI SIGN NUKTA -->
+                 U+0967: "१" DEVANAGARI DIGIT ONE -->
             <Key
                 latin:keySpec="&#x091F;"
                 latin:keyHintLabel="1"
                 latin:additionalMoreKeys="&#x0967;,1"
-                latin:moreKeys="&#x093C;"
+                latin:keyStyle="moreKeysDevanagariSignNukta"
                 latin:keyLabelFlags="fontNormal" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+            <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignAu"
                 latin:keyHintLabel="2"
@@ -103,9 +109,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+            <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignE"
                 latin:keyHintLabel="3"
@@ -134,9 +140,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_u" />
+            <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignU"
                 latin:keyHintLabel="7"
@@ -144,9 +150,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_i" />
+            <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignI"
                 latin:keyHintLabel="8"
@@ -154,9 +160,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+096F: "९" DEVANAGARI DIGIT NINE -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_o" />
+            <!-- U+096F: "९" DEVANAGARI DIGIT NINE -->
             <Key
                 latin:keyStyle="baseKeyDevanagariVowelSignO"
                 latin:keyHintLabel="9"
diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml
index 232d96e..cc2ca8c 100644
--- a/java/res/xml/rowkeys_nepali_romanized3.xml
+++ b/java/res/xml/rowkeys_nepali_romanized3.xml
@@ -41,7 +41,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_candrabindu" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignCandrabindu" />
             <!-- U+092D: "भ" DEVANAGARI LETTER BHA -->
             <Key
                 latin:keySpec="&#x092D;"
@@ -54,7 +56,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignAnusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key
                 latin:keySpec="&#x0919;"
diff --git a/java/res/xml/rowkeys_nepali_traditional1.xml b/java/res/xml/rowkeys_nepali_traditional1.xml
index 98a7be2..cf4bda9 100644
--- a/java/res/xml/rowkeys_nepali_traditional1.xml
+++ b/java/res/xml/rowkeys_nepali_traditional1.xml
@@ -91,7 +91,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_vowel_sign_vocalic_r" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_vocalic_r" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariVowelSignVocalicR" />
         </case>
         <default>
             <!-- U+091F: "ट" DEVANAGARI LETTER TTA
diff --git a/java/res/xml/rowkeys_nepali_traditional2.xml b/java/res/xml/rowkeys_nepali_traditional2.xml
index 5ea14ea..58a463e 100644
--- a/java/res/xml/rowkeys_nepali_traditional2.xml
+++ b/java/res/xml/rowkeys_nepali_traditional2.xml
@@ -41,7 +41,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_candrabindu" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_candrabindu" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignCandrabindu" />
             <!-- U+0926/U+094D/U+0926: "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA -->
             <Key
                 latin:keySpec="&#x0926;&#x094D;&#x0926;"
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right3.xml b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
index d6a74d4..3e6187d 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_right3.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
@@ -29,7 +29,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignAnusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key
                 latin:keySpec="&#x0919;"
@@ -54,8 +56,8 @@
             <Key
                 latin:keySpec="&#x0964;"
                 latin:keyLabelFlags="fontNormal" />
-             <!-- U+0930: "र" DEVANAGARI LETTER RA
-                  U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
+            <!-- U+0930: "र" DEVANAGARI LETTER RA
+                 U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
             <Key
                 latin:keySpec="&#x0930;"
                 latin:moreKeys="&#x0930;&#x0941;"
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right5.xml b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
index a34f400..89d5aa4 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_right5.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
@@ -29,7 +29,9 @@
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include
-                latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignAnusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key
                 latin:keySpec="&#x0919;"
@@ -53,9 +55,9 @@
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
-            <!-- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
             <include
                 latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" />
+            <!-- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
             <Key
                 latin:keyStyle="baseKeyDevanagariSignVisarga"
                 latin:moreKeys="&#x093D;" />
diff --git a/java/res/xml/rows_hindi_compact.xml b/java/res/xml/rows_hindi_compact.xml
new file mode 100644
index 0000000..a60cf2b
--- /dev/null
+++ b/java/res/xml/rows_hindi_compact.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_hindi_compact1" />
+    </Row>
+    <Row
+            latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_hindi_compact2" />
+    </Row>
+    <Row
+        latin:keyWidth="9.091%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_hindi_compact3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
index 8badaf4..4a8fa51 100644
--- a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
+++ b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
@@ -45,10 +45,8 @@
     // This is the first released version of the database that implements CLIENTID. It is
     // used to identify the versions for upgrades. This should never change going forward.
     private static final int METADATA_DATABASE_VERSION_WITH_CLIENTID = 6;
-    // This is the current database version. It should be updated when the database schema
-    // gets updated. It is passed to the framework constructor of SQLiteOpenHelper, so
-    // that's what the framework uses to track our database version.
-    private static final int METADATA_DATABASE_VERSION = 6;
+    // The current database version.
+    private static final int CURRENT_METADATA_DATABASE_VERSION = 7;
 
     private final static long NOT_A_DOWNLOAD_ID = -1;
 
@@ -169,7 +167,7 @@
     private MetadataDbHelper(final Context context, final String clientId) {
         super(context,
                 METADATA_DATABASE_NAME_STEM + (TextUtils.isEmpty(clientId) ? "" : "." + clientId),
-                null, METADATA_DATABASE_VERSION);
+                null, CURRENT_METADATA_DATABASE_VERSION);
         mContext = context;
         mClientId = clientId;
     }
@@ -219,22 +217,45 @@
 
     /**
      * Upgrade the database. Upgrade from version 3 is supported.
+     * Version 3 has a DB named METADATA_DATABASE_NAME_STEM containing a table METADATA_TABLE_NAME.
+     * Version 6 and above has a DB named METADATA_DATABASE_NAME_STEM containing a
+     * table CLIENT_TABLE_NAME, and for each client a table called METADATA_TABLE_STEM + "." + the
+     * name of the client and contains a table METADATA_TABLE_NAME.
+     * For schemas, see the above create statements. The schemas have never changed so far.
+     *
+     * This method is called by the framework. See {@link SQLiteOpenHelper#onUpgrade}
+     * @param db The database we are upgrading
+     * @param oldVersion The old database version (the one on the disk)
+     * @param newVersion The new database version as supplied to the constructor of SQLiteOpenHelper
      */
     @Override
     public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion) {
         if (METADATA_DATABASE_INITIAL_VERSION == oldVersion
-                && METADATA_DATABASE_VERSION_WITH_CLIENTID == newVersion) {
+                && METADATA_DATABASE_VERSION_WITH_CLIENTID <= newVersion
+                && CURRENT_METADATA_DATABASE_VERSION >= newVersion) {
             // Upgrade from version METADATA_DATABASE_INITIAL_VERSION to version
             // METADATA_DATABASE_VERSION_WITH_CLIENT_ID
+            // Only the default database should contain the client table, so we test for mClientId.
             if (TextUtils.isEmpty(mClientId)) {
-                // Only the default database should contain the client table.
-                // Anyway in version 3 only the default table existed so the emptyness
+                // Anyway in version 3 only the default table existed so the emptiness
                 // test should always be true, but better check to be sure.
                 createClientTable(db);
             }
+        } else if (METADATA_DATABASE_VERSION_WITH_CLIENTID < newVersion
+                && CURRENT_METADATA_DATABASE_VERSION >= newVersion) {
+            // Here we drop the client table, so that all clients send us their information again.
+            // The client table contains the URL to hit to update the available dictionaries list,
+            // but the info about the dictionaries themselves is stored in the table called
+            // METADATA_TABLE_NAME and we want to keep it, so we only drop the client table.
+            db.execSQL("DROP TABLE IF EXISTS " + CLIENT_TABLE_NAME);
+            // Only the default database should contain the client table, so we test for mClientId.
+            if (TextUtils.isEmpty(mClientId)) {
+                createClientTable(db);
+            }
         } else {
-            // Version 3 was the earliest version, so we should never come here. If we do, we
-            // have no idea what this database is, so we'd better wipe it off.
+            // If we're not in the above case, either we are upgrading from an earlier versionCode
+            // and we should wipe the database, or we are handling a version we never heard about
+            // (can only be a bug) so it's safer to wipe the database.
             db.execSQL("DROP TABLE IF EXISTS " + METADATA_TABLE_NAME);
             db.execSQL("DROP TABLE IF EXISTS " + CLIENT_TABLE_NAME);
             onCreate(db);
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 43a4422..30c2dfe 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -89,6 +89,8 @@
     private final long mDictSize;
     private final String mDictFilePath;
     private final boolean mIsUpdatable;
+    private boolean mHasUpdated;
+
     private final int[] mInputCodePoints = new int[MAX_WORD_LENGTH];
     private final int[] mOutputSuggestionCount = new int[1];
     private final int[] mOutputCodePoints = new int[MAX_WORD_LENGTH * MAX_RESULTS];
@@ -138,6 +140,7 @@
         mDictSize = length;
         mDictFilePath = filename;
         mIsUpdatable = isUpdatable;
+        mHasUpdated = false;
         mNativeSuggestOptions.setUseFullEditDistance(useFullEditDistance);
         loadDictionary(filename, offset, length, isUpdatable);
     }
@@ -185,6 +188,7 @@
     // TODO: Move native dict into session
     private final void loadDictionary(final String path, final long startOffset,
             final long length, final boolean isUpdatable) {
+        mHasUpdated = false;
         mNativeDict = openNative(path, startOffset, length, isUpdatable);
     }
 
@@ -401,6 +405,7 @@
                 StringUtils.toCodePointArray(shortcutTarget) : null;
         addUnigramWordNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints,
                 shortcutProbability, isNotAWord, isBlacklisted, timestamp);
+        mHasUpdated = true;
     }
 
     // Add a bigram entry to binary dictionary with timestamp in native code.
@@ -412,6 +417,7 @@
         final int[] codePoints0 = StringUtils.toCodePointArray(word0);
         final int[] codePoints1 = StringUtils.toCodePointArray(word1);
         addBigramWordsNative(mNativeDict, codePoints0, codePoints1, probability, timestamp);
+        mHasUpdated = true;
     }
 
     // Remove a bigram entry form binary dictionary in native code.
@@ -422,6 +428,7 @@
         final int[] codePoints0 = StringUtils.toCodePointArray(word0);
         final int[] codePoints1 = StringUtils.toCodePointArray(word1);
         removeBigramWordsNative(mNativeDict, codePoints0, codePoints1);
+        mHasUpdated = true;
     }
 
     public void addMultipleDictionaryEntries(final LanguageModelParam[] languageModelParams) {
@@ -433,6 +440,7 @@
             }
             processedParamCount = addMultipleDictionaryEntriesNative(mNativeDict,
                     languageModelParams, processedParamCount);
+            mHasUpdated = true;
             if (processedParamCount <= 0) {
                 return;
             }
@@ -451,8 +459,10 @@
 
     public void flush() {
         if (!isValidDictionary()) return;
-        flushNative(mNativeDict, mDictFilePath);
-        reopen();
+        if (mHasUpdated) {
+            flushNative(mNativeDict, mDictFilePath);
+            reopen();
+        }
     }
 
     public void flushWithGC() {
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 4e17f83..d5873d7 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -100,10 +100,6 @@
                 });
     }
 
-    public void reopen(final Context context) {
-        registerObserver(context);
-    }
-
     @Override
     public synchronized void close() {
         if (mObserver != null) {
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index aea4811..64e9d2b 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -262,6 +262,9 @@
         ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
+                if (mBinaryDictionary == null) {
+                    return;
+                }
                 runGCAfterAllPrioritizedTasksIfRequiredLocked(mindsBlockByGC);
             }
         });
@@ -274,9 +277,6 @@
     }
 
     private void runGCAfterAllPrioritizedTasksIfRequiredLocked(final boolean mindsBlockByGC) {
-        if (mBinaryDictionary == null) {
-            return;
-        }
         // needsToRunGC() have to be called with lock.
         if (mBinaryDictionary.needsToRunGC(mindsBlockByGC)) {
             if (setProcessingLargeTaskIfNot()) {
@@ -301,9 +301,13 @@
     protected void addWordDynamically(final String word, final int frequency,
             final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord,
             final boolean isBlacklisted, final int timestamp) {
+        reloadDictionaryIfRequired();
         ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
+                if (mBinaryDictionary == null) {
+                    return;
+                }
                 runGCAfterAllPrioritizedTasksIfRequiredLocked(true /* mindsBlockByGC */);
                 addWordDynamicallyLocked(word, frequency, shortcutTarget, shortcutFreq,
                         isNotAWord, isBlacklisted, timestamp);
@@ -323,9 +327,13 @@
      */
     protected void addBigramDynamically(final String word0, final String word1,
             final int frequency, final int timestamp) {
+        reloadDictionaryIfRequired();
         ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
+                if (mBinaryDictionary == null) {
+                    return;
+                }
                 runGCAfterAllPrioritizedTasksIfRequiredLocked(true /* mindsBlockByGC */);
                 addBigramDynamicallyLocked(word0, word1, frequency, timestamp);
             }
@@ -341,9 +349,13 @@
      * Dynamically remove a word bigram in the dictionary.
      */
     protected void removeBigramDynamically(final String word0, final String word1) {
+        reloadDictionaryIfRequired();
         ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
+                if (mBinaryDictionary == null) {
+                    return;
+                }
                 runGCAfterAllPrioritizedTasksIfRequiredLocked(true /* mindsBlockByGC */);
                 mBinaryDictionary.removeBigramWords(word0, word1);
             }
@@ -360,14 +372,15 @@
     protected void addMultipleDictionaryEntriesDynamically(
             final ArrayList<LanguageModelParam> languageModelParams,
             final AddMultipleDictionaryEntriesCallback callback) {
+        reloadDictionaryIfRequired();
         ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
+                if (mBinaryDictionary == null) {
+                    return;
+                }
                 final boolean locked = setProcessingLargeTaskIfNot();
                 try {
-                    if (mBinaryDictionary == null) {
-                        return;
-                    }
                     mBinaryDictionary.addMultipleDictionaryEntries(
                             languageModelParams.toArray(
                                     new LanguageModelParam[languageModelParams.size()]));
diff --git a/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java b/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java
index 9870faa..be54b66 100644
--- a/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java
+++ b/java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java
@@ -23,6 +23,7 @@
 import android.content.DialogInterface.OnDismissListener;
 import android.content.DialogInterface.OnShowListener;
 
+import com.android.inputmethod.latin.utils.DialogUtils;
 import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
 
 /**
@@ -40,7 +41,7 @@
 
     public ImportantNoticeDialog(
             final Context context, final ImportantNoticeDialogListener listener) {
-        super(context, THEME_HOLO_DARK);
+        super(DialogUtils.getPlatformDialogThemeContext(context));
         mListener = listener;
         mNextImportantNoticeVersion = ImportantNoticeUtils.getNextImportantNoticeVersion(context);
         setMessage(ImportantNoticeUtils.getNextImportantNoticeContents(context));
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 8b3e358..ca99998 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -83,6 +83,7 @@
 import com.android.inputmethod.latin.utils.ApplicationUtils;
 import com.android.inputmethod.latin.utils.CapsModeUtils;
 import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.utils.DialogUtils;
 import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
 import com.android.inputmethod.latin.utils.IntentUtils;
 import com.android.inputmethod.latin.utils.JniUtils;
@@ -1662,8 +1663,9 @@
                 }
             }
         };
-        final AlertDialog.Builder builder =
-                new AlertDialog.Builder(this).setItems(items, listener).setTitle(title);
+        final AlertDialog.Builder builder = new AlertDialog.Builder(
+                DialogUtils.getPlatformDialogThemeContext(this));
+        builder.setItems(items, listener).setTitle(title);
         showOptionDialog(builder.create());
     }
 
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index f31fb13..5d21554 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -169,39 +169,56 @@
      * coordinates.
      */
     public void add(final Event event) {
+        processEvent(event);
+    }
+
+    private void processEvent(final Event event) {
         final int primaryCode = event.mCodePoint;
         final int keyX = event.mX;
         final int keyY = event.mY;
         final int newIndex = size();
-        processEvent(event);
-        mCursorPositionWithinWord = mCodePointSize;
-        if (newIndex < MAX_WORD_LENGTH) {
-            mPrimaryKeyCodes[newIndex] = primaryCode >= Constants.CODE_SPACE
-                    ? Character.toLowerCase(primaryCode) : primaryCode;
-            // In the batch input mode, the {@code mInputPointers} holds batch input points and
-            // shouldn't be overridden by the "typed key" coordinates
-            // (See {@link #setBatchInputWord}).
-            if (!mIsBatchMode) {
-                // TODO: Set correct pointer id and time
-                mInputPointers.addPointerAt(newIndex, keyX, keyY, 0, 0);
-            }
-        }
-        mIsFirstCharCapitalized = isFirstCharCapitalized(
-                newIndex, primaryCode, mIsFirstCharCapitalized);
-        if (Character.isUpperCase(primaryCode)) mCapsCount++;
-        if (Character.isDigit(primaryCode)) mDigitsCount++;
-        if (Constants.CODE_SINGLE_QUOTE == primaryCode) {
-            ++mTrailingSingleQuotesCount;
-        } else {
-            mTrailingSingleQuotesCount = 0;
-        }
-        mAutoCorrection = null;
-    }
-
-    private void processEvent(final Event event) {
         mCombinerChain.processEvent(mEvents, event);
         mEvents.add(event);
         refreshTypedWordCache();
+        mCursorPositionWithinWord = mCodePointSize;
+        // We may have deleted the last one.
+        if (0 == mCodePointSize) {
+            mIsFirstCharCapitalized = false;
+        }
+        if (Constants.CODE_DELETE == event.mKeyCode) {
+            if (mTrailingSingleQuotesCount > 0) {
+                --mTrailingSingleQuotesCount;
+            } else {
+                // Delete, but we didn't end in a quote: must recompute mTrailingSingleQuotesCount
+                // We're only searching for single quotes, so no need to account for code points
+                for (int i = mTypedWordCache.length() - 1; i > 0; --i) {
+                    if (Constants.CODE_SINGLE_QUOTE != mTypedWordCache.charAt(i)) {
+                        break;
+                    }
+                    ++mTrailingSingleQuotesCount;
+                }
+            }
+        } else {
+            if (Constants.CODE_SINGLE_QUOTE == primaryCode) {
+                ++mTrailingSingleQuotesCount;
+            } else {
+                mTrailingSingleQuotesCount = 0;
+            }
+            if (newIndex < MAX_WORD_LENGTH) {
+                // In the batch input mode, the {@code mInputPointers} holds batch input points and
+                // shouldn't be overridden by the "typed key" coordinates
+                // (See {@link #setBatchInputWord}).
+                if (!mIsBatchMode) {
+                    // TODO: Set correct pointer id and time
+                    mInputPointers.addPointerAt(newIndex, keyX, keyY, 0, 0);
+                }
+            }
+            mIsFirstCharCapitalized = isFirstCharCapitalized(
+                    newIndex, primaryCode, mIsFirstCharCapitalized);
+            if (Character.isUpperCase(primaryCode)) mCapsCount++;
+            if (Character.isDigit(primaryCode)) mDigitsCount++;
+        }
+        mAutoCorrection = null;
     }
 
     /**
@@ -209,24 +226,6 @@
      */
     public void deleteLast(final Event event) {
         processEvent(event);
-        // We may have deleted the last one.
-        if (0 == size()) {
-            mIsFirstCharCapitalized = false;
-        }
-        if (mTrailingSingleQuotesCount > 0) {
-            --mTrailingSingleQuotesCount;
-        } else {
-            int i = mTypedWordCache.length();
-            while (i > 0) {
-                i = Character.offsetByCodePoints(mTypedWordCache, i, -1);
-                if (Constants.CODE_SINGLE_QUOTE != Character.codePointAt(mTypedWordCache, i)) {
-                    break;
-                }
-                ++mTrailingSingleQuotesCount;
-            }
-        }
-        mCursorPositionWithinWord = mCodePointSize;
-        mAutoCorrection = null;
     }
 
     public void setCursorPositionWithinWord(final int posWithinWord) {
diff --git a/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java b/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java
index 800f565..139e73a 100644
--- a/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java
+++ b/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java
@@ -28,6 +28,7 @@
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.utils.CollectionUtils;
+import com.android.inputmethod.latin.utils.DialogUtils;
 import com.android.inputmethod.latin.utils.DictionaryInfoUtils;
 import com.android.inputmethod.latin.utils.LocaleUtils;
 
@@ -70,7 +71,7 @@
     }
 
     private static void showNoFileDialog(final Context context) {
-        new AlertDialog.Builder(context)
+        new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
                 .setMessage(R.string.read_external_dictionary_no_files_message)
                 .setPositiveButton(android.R.string.ok, new OnClickListener() {
                     @Override
@@ -81,8 +82,8 @@
     }
 
     private static void showChooseFileDialog(final Context context, final String[] fileNames) {
-        final AlertDialog.Builder builder = new AlertDialog.Builder(context);
-        builder.setTitle(R.string.read_external_dictionary_multiple_files_title)
+        new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
+                .setTitle(R.string.read_external_dictionary_multiple_files_title)
                 .setItems(fileNames, new OnClickListener() {
                     @Override
                     public void onClick(final DialogInterface dialog, final int which) {
@@ -111,7 +112,7 @@
         final String title = String.format(
                 context.getString(R.string.read_external_dictionary_confirm_install_message),
                 languageName);
-        new AlertDialog.Builder(context)
+        new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
                 .setTitle(title)
                 .setMessage(message)
                 .setNegativeButton(android.R.string.cancel, new OnClickListener() {
@@ -167,7 +168,7 @@
             }
         } catch (IOException e) {
             // There was an error: show a dialog
-            new AlertDialog.Builder(context)
+            new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
                     .setTitle(R.string.error)
                     .setMessage(e.toString())
                     .setPositiveButton(android.R.string.ok, new OnClickListener() {
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 536d6ef..7ffc956 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -823,13 +823,11 @@
         }
 
         if (Constants.CODE_SPACE == codePoint) {
-            if (inputTransaction.mSettingsValues.isSuggestionsRequested()) {
-                if (maybeDoubleSpacePeriod(inputTransaction)) {
-                    inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
-                    mSpaceState = SpaceState.DOUBLE;
-                } else if (!mSuggestedWords.isPunctuationSuggestions()) {
-                    mSpaceState = SpaceState.WEAK;
-                }
+            if (maybeDoubleSpacePeriod(inputTransaction)) {
+                inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
+                mSpaceState = SpaceState.DOUBLE;
+            } else if (!mSuggestedWords.isPunctuationSuggestions()) {
+                mSpaceState = SpaceState.WEAK;
             }
 
             startDoubleSpacePeriodCountdown(inputTransaction);
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
index 6f84e1f..712e314 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
@@ -66,7 +66,7 @@
         }
         // Flush pending writes.
         flush();
-        // TODO: Quit depending on finalize() and really close the dictionary file.
+        super.close();
     }
 
     public void flush() {
diff --git a/java/src/com/android/inputmethod/latin/settings/AdditionalSubtypeSettings.java b/java/src/com/android/inputmethod/latin/settings/AdditionalSubtypeSettings.java
index 6dae620..39977e7 100644
--- a/java/src/com/android/inputmethod/latin/settings/AdditionalSubtypeSettings.java
+++ b/java/src/com/android/inputmethod/latin/settings/AdditionalSubtypeSettings.java
@@ -48,6 +48,7 @@
 import com.android.inputmethod.latin.RichInputMethodManager;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
 import com.android.inputmethod.latin.utils.CollectionUtils;
+import com.android.inputmethod.latin.utils.DialogUtils;
 import com.android.inputmethod.latin.utils.IntentUtils;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
@@ -517,7 +518,8 @@
 
     private AlertDialog createDialog(
             @SuppressWarnings("unused") final SubtypePreference subtypePref) {
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        final AlertDialog.Builder builder = new AlertDialog.Builder(
+                DialogUtils.getPlatformDialogThemeContext(getActivity()));
         builder.setTitle(R.string.custom_input_styles_title)
                 .setMessage(R.string.custom_input_style_note_message)
                 .setNegativeButton(R.string.not_now, null)
diff --git a/java/src/com/android/inputmethod/latin/utils/DialogUtils.java b/java/src/com/android/inputmethod/latin/utils/DialogUtils.java
new file mode 100644
index 0000000..a05c932
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/DialogUtils.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.content.Context;
+import android.view.ContextThemeWrapper;
+
+import com.android.inputmethod.latin.R;
+
+public final class DialogUtils {
+    private DialogUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    public static Context getPlatformDialogThemeContext(final Context context) {
+        // Because {@link AlertDialog.Builder.create()} doesn't honor the specified theme with
+        // createThemeContextWrapper=false, the result dialog box has unneeded paddings around it.
+        return new ContextThemeWrapper(context, R.style.platformDialogTheme);
+    }
+}
diff --git a/native/jni/src/suggest/core/layout/normal_distribution.h b/native/jni/src/suggest/core/layout/normal_distribution.h
new file mode 100644
index 0000000..5f21a59
--- /dev/null
+++ b/native/jni/src/suggest/core/layout/normal_distribution.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_NORMAL_DISTRIBUTION_H
+#define LATINIME_NORMAL_DISTRIBUTION_H
+
+#include <cmath>
+
+#include "defines.h"
+
+namespace latinime {
+
+// Normal distribution N(u, sigma^2).
+class NormalDistribution {
+ public:
+    NormalDistribution(const float u, const float sigma)
+            : mU(u),
+              mPreComputedNonExpPart(1.0f / sqrtf(2.0f * M_PI_F
+                      * GeometryUtils::SQUARE_FLOAT(sigma))),
+              mPreComputedExponentPart(-1.0f / (2.0f * GeometryUtils::SQUARE_FLOAT(sigma))) {}
+
+    float getProbabilityDensity(const float x) const {
+        const float shiftedX = x - mU;
+        return mPreComputedNonExpPart
+                * expf(mPreComputedExponentPart * GeometryUtils::SQUARE_FLOAT(shiftedX));
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(NormalDistribution);
+
+    const float mU; // mean value
+    const float mPreComputedNonExpPart; // = 1 / sqrt(2 * PI * sigma^2)
+    const float mPreComputedExponentPart; // = -1 / (2 * sigma^2)
+};
+} // namespace latinime
+#endif // LATINIME_NORMAL_DISTRIBUTION_H
diff --git a/native/jni/src/suggest/core/layout/proximity_info_state_utils.cpp b/native/jni/src/suggest/core/layout/proximity_info_state_utils.cpp
index 867f598..5a3ff73 100644
--- a/native/jni/src/suggest/core/layout/proximity_info_state_utils.cpp
+++ b/native/jni/src/suggest/core/layout/proximity_info_state_utils.cpp
@@ -24,6 +24,7 @@
 
 #include "defines.h"
 #include "suggest/core/layout/geometry_utils.h"
+#include "suggest/core/layout/normal_distribution.h"
 #include "suggest/core/layout/proximity_info.h"
 #include "suggest/core/layout/proximity_info_params.h"
 
@@ -717,8 +718,8 @@
         const float sigma = speedxAngleRate + speedxNearestKeyDistanceRate
                 + ProximityInfoParams::MIN_STANDARD_DEVIATION;
 
-        ProximityInfoUtils::NormalDistribution
-                distribution(ProximityInfoParams::CENTER_VALUE_OF_NORMALIZED_DISTRIBUTION, sigma);
+        NormalDistribution distribution(
+                ProximityInfoParams::CENTER_VALUE_OF_NORMALIZED_DISTRIBUTION, sigma);
         // Summing up probability densities of all near keys.
         float sumOfProbabilityDensities = 0.0f;
         for (int j = 0; j < keyCount; ++j) {
diff --git a/native/jni/src/suggest/core/layout/proximity_info_utils.h b/native/jni/src/suggest/core/layout/proximity_info_utils.h
index 310bbdb..c273ef4 100644
--- a/native/jni/src/suggest/core/layout/proximity_info_utils.h
+++ b/native/jni/src/suggest/core/layout/proximity_info_utils.h
@@ -125,28 +125,6 @@
          return type == MATCH_CHAR || type == PROXIMITY_CHAR || type == ADDITIONAL_PROXIMITY_CHAR;
      }
 
-    // Normal distribution N(u, sigma^2).
-    struct NormalDistribution {
-     public:
-        NormalDistribution(const float u, const float sigma)
-                : mU(u),
-                  mPreComputedNonExpPart(1.0f / sqrtf(2.0f * M_PI_F
-                          * GeometryUtils::SQUARE_FLOAT(sigma))),
-                  mPreComputedExponentPart(-1.0f / (2.0f * GeometryUtils::SQUARE_FLOAT(sigma))) {}
-
-        float getProbabilityDensity(const float x) const {
-            const float shiftedX = x - mU;
-            return mPreComputedNonExpPart
-                    * expf(mPreComputedExponentPart * GeometryUtils::SQUARE_FLOAT(shiftedX));
-        }
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(NormalDistribution);
-        const float mU; // mean value
-        const float mPreComputedNonExpPart; // = 1 / sqrt(2 * PI * sigma^2)
-        const float mPreComputedExponentPart; // = -1 / (2 * sigma^2)
-    }; // struct NormalDistribution
-
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(ProximityInfoUtils);
 
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
index bbffc8d..d6d12ea 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
@@ -25,7 +25,7 @@
 
 @SmallTest
 public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase {
-    private static final int NUMBER_OF_SUBTYPES = 66;
+    private static final int NUMBER_OF_SUBTYPES = 67;
     private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 42;
     private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/DevanagariLetterConstants.java b/tests/src/com/android/inputmethod/keyboard/layout/DevanagariLetterConstants.java
new file mode 100644
index 0000000..bcf06f0
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/DevanagariLetterConstants.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import android.os.Build;
+
+/**
+ * This class offers label strings of Devanagari letters that need the dotted circle to draw
+ * its glyph.
+ */
+class DevanagariLetterConstants {
+    private static final boolean NEEDS_DOTTED_CIRCLE =
+            Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN;
+    // U+25CC: "◌" DOTTED CIRCLE
+    private static final String DOTTED_CIRCLE = NEEDS_DOTTED_CIRCLE ? "\u25CC" : "";
+
+    // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+    static final String SIGN_CANDRABINDU = DOTTED_CIRCLE + "\u0901";
+    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+    static final String SIGN_ANUSVARA = DOTTED_CIRCLE + "\u0902";
+    // U+0903: "ः" DEVANAGARI SIGN VISARGA
+    static final String SIGN_VISARGA = DOTTED_CIRCLE + "\u0903";
+    // U+093C: "़" DEVANAGARI SIGN NUKTA
+    static final String SIGN_NUKTA = DOTTED_CIRCLE + "\u093C";
+    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
+    static final String SIGN_AVAGRAHA = DOTTED_CIRCLE + "\u093D";
+    // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+    static final String VOWEL_SIGN_AA = DOTTED_CIRCLE + "\u093E";
+    // U+093F: "ि" DEVANAGARI VOWEL SIGN I
+    static final String VOWEL_SIGN_I = DOTTED_CIRCLE + "\u093F";
+    // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+    static final String VOWEL_SIGN_II = DOTTED_CIRCLE + "\u0940";
+    // U+0941: "ु" DEVANAGARI VOWEL SIGN U
+    static final String VOWEL_SIGN_U = DOTTED_CIRCLE + "\u0941";
+    // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+    static final String VOWEL_SIGN_UU = DOTTED_CIRCLE + "\u0942";
+    // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+    static final String VOWEL_SIGN_VOCALIC_R = DOTTED_CIRCLE + "\u0943";
+    // U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR
+    static final String VOWEL_SIGN_VOCALIC_RR = DOTTED_CIRCLE + "\u0944";
+    // U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
+    static final String VOWEL_SIGN_CANDRA_E = DOTTED_CIRCLE + "\u0945";
+    // U+0947: "े" DEVANAGARI VOWEL SIGN E
+    static final String VOWEL_SIGN_E = DOTTED_CIRCLE + "\u0947";
+    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+    static final String VOWEL_SIGN_AI = DOTTED_CIRCLE + "\u0948";
+    // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+    static final String VOWEL_SIGN_CANDRA_O = DOTTED_CIRCLE + "\u0949";
+    // U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O
+    static final String VOWEL_SIGN_SHORT_O = DOTTED_CIRCLE + "\u094A";
+    // U+094B: "ो" DEVANAGARI VOWEL SIGN O
+    static final String VOWEL_SIGN_O = DOTTED_CIRCLE + "\u094B";
+    // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+    static final String VOWEL_SIGN_AU = DOTTED_CIRCLE + "\u094C";
+    // U+094D: "्" DEVANAGARI SIGN VIRAMA
+    static final String SIGN_VIRAMA = DOTTED_CIRCLE + "\u094D";
+    // U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
+    static final String ABBREVIATION_SIGN = DOTTED_CIRCLE + "\u0970";
+    // U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
+    static final String LETTER_GLOTTAL_STOP = DOTTED_CIRCLE + "\u097D";
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java b/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
index 7ff2dcb..c3f4531 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
@@ -16,6 +16,8 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
+
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -96,25 +98,37 @@
                     // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
                     // U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
                     // U+0967: "१" DEVANAGARI DIGIT ONE
-                    key("\u094C", joinMoreKeys("\u094C\u0902", "\u0967", "1")),
+                    key(VOWEL_SIGN_AU, "\u094C", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_AU + "\u0902", "\u094C\u0902"),
+                            "\u0967", "1")),
                     // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
                     // U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
                     // U+0968: "२" DEVANAGARI DIGIT TWO
-                    key("\u0948", joinMoreKeys("\u0948\u0902", "\u0968", "2")),
+                    key(VOWEL_SIGN_AI, "\u0948", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_AI + "\u0902", "\u0948\u0902"),
+                            "\u0968", "2")),
                     // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
                     // U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
                     // U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
                     // U+0969: "३" DEVANAGARI DIGIT THREE
-                    key("\u093E", joinMoreKeys("\u093E\u0902", "\u093E\u0901", "\u0969", "3")),
+                    key(VOWEL_SIGN_AA, "\u093E", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_AA + "\u0902", "\u093E\u0902"),
+                            moreKey(VOWEL_SIGN_AA + "\u0901", "\u093E\u0901"),
+                            "\u0969", "3")),
                     // U+0940: "ी" DEVANAGARI VOWEL SIGN II
                     // U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
                     // U+096A: "४" DEVANAGARI DIGIT FOUR
-                    key("\u0940", joinMoreKeys("\u0940\u0902", "\u096A", "4")),
+                    key(VOWEL_SIGN_II, "\u0940", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_II + "\u0902", "\u0940\u0902"),
+                            "\u096A", "4")),
                     // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
                     // U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
                     // U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
                     // U+096B: "५" DEVANAGARI DIGIT FIVE
-                    key("\u0942", joinMoreKeys("\u0942\u0902", "\u0942\u0901", "\u096B", "5")),
+                    key(VOWEL_SIGN_UU, "\u0942", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_UU + "\u0902", "\u0942\u0902"),
+                            moreKey(VOWEL_SIGN_UU + "\u0901", "\u0942\u0901"),
+                            "\u096B", "5")),
                     // U+092C: "ब" DEVANAGARI LETTER BA
                     // U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA
                     // U+096C: "६" DEVANAGARI DIGIT SIX
@@ -150,19 +164,26 @@
                     // U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
                     // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
                     // U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O
-                    key("\u094B", joinMoreKeys("\u094B\u0902", "\u0949", "\u094A")),
+                    key(VOWEL_SIGN_O, "\u094B", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_O + "\u0902", "\u094B\u0902"),
+                            moreKey(VOWEL_SIGN_CANDRA_O, "\u0949"),
+                            moreKey(VOWEL_SIGN_SHORT_O, "\u094A"))),
                     // U+0947: "े" DEVANAGARI VOWEL SIGN E
                     // U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA
-                    key("\u0947", moreKey("\u0947\u0902")),
+                    key(VOWEL_SIGN_E, "\u0947",
+                            moreKey(VOWEL_SIGN_E + "\u0902", "\u0947\u0902")),
                     // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    "\u094D",
+                    key(SIGN_VIRAMA, "\u094D"),
                     // U+093F: "ि" DEVANAGARI VOWEL SIGN I
                     // U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA
-                    key("\u093F", moreKey("\u093F\u0902")),
+                    key(VOWEL_SIGN_I, "\u093F",
+                            moreKey("\u093F" + SIGN_ANUSVARA, "\u093F\u0902")),
                     // U+0941: "ु" DEVANAGARI VOWEL SIGN U
                     // U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
                     // U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU
-                    key("\u0941", joinMoreKeys("\u0941\u0902", "\u0941\u0901")),
+                    key(VOWEL_SIGN_U, "\u0941", joinMoreKeys(
+                            moreKey(VOWEL_SIGN_U + "\u0902", "\u0941\u0902"),
+                            moreKey(VOWEL_SIGN_U + "\u0901", "\u0941\u0901"))),
                     // U+092A: "प" DEVANAGARI LETTER PA
                     "\u092A",
                     // U+0930: "र" DEVANAGARI LETTER RA
@@ -182,8 +203,9 @@
                     "\u091A","\u091F")
             .setKeysOfRow(3,
                     // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+                    key(VOWEL_SIGN_CANDRA_O, "\u0949"),
                     // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
-                    "\u0949", "\u0902",
+                    key(SIGN_ANUSVARA, "\u0902"),
                     // U+092E: "म" DEVANAGARI LETTER MA
                     // U+0950: "ॐ" DEVANAGARI OM
                     key("\u092E", moreKey("\u0950")),
@@ -207,7 +229,10 @@
                     // U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
                     // U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
                     // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
-                    key("\u093C", joinMoreKeys("\u097D", "\u0970", "\u093D")))
+                    key(SIGN_NUKTA, "\u093C", joinMoreKeys(
+                            moreKey(LETTER_GLOTTAL_STOP, "\u097D"),
+                            moreKey(ABBREVIATION_SIGN, "\u0970"),
+                            moreKey(SIGN_AVAGRAHA, "\u093D"))))
             .build();
 
     private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
@@ -232,7 +257,7 @@
                     // U+092D: "भ" DEVANAGARI LETTER BHA
                     // U+0903: "ः" DEVANAGARI SIGN VISARGA
                     // U+0918: "घ" DEVANAGARI LETTER GHA
-                    "\u092D", "\u0903", "\u0918",
+                    "\u092D", key(SIGN_VISARGA, "\u0903"), "\u0918",
                     // U+0927: "ध" DEVANAGARI LETTER DHA
                     // U+0915/U+094D/U+0937:
                     //     "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
@@ -285,7 +310,7 @@
                     "\u0911",
                     // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
                     // U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
-                    key("\u0901", moreKey("\u0945")),
+                    key(SIGN_CANDRABINDU, "\u0901", moreKey(VOWEL_SIGN_CANDRA_E, "\u0945")),
                     // U+0923: "ण" DEVANAGARI LETTER NNA
                     // U+0929: "ऩ" DEVANAGARI LETTER NNNA
                     "\u0923", "\u0929",
@@ -297,7 +322,7 @@
                     "\u0936", "\u0937",
                     // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
                     // U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR
-                    key("\u0943", moreKey("\u0944")),
+                    key(VOWEL_SIGN_VOCALIC_R, "\u0943", moreKey(VOWEL_SIGN_VOCALIC_RR, "\u0944")),
                     // U+091E: "ञ" DEVANAGARI LETTER NYA
                     "\u091E")
             .build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
new file mode 100644
index 0000000..afd26e4
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.SIGN_ANUSVARA;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.SIGN_CANDRABINDU;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.SIGN_NUKTA;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.SIGN_VIRAMA;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.SIGN_VISARGA;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_AA;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_AI;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_AU;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_CANDRA_E;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_CANDRA_O;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_E;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_I;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_II;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_O;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_U;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_UU;
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.VOWEL_SIGN_VOCALIC_R;
+
+import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
+import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.latin.Constants;
+
+import java.util.Locale;
+
+/**
+ * The Hindi Compact keyboard.
+ */
+public final class HindiCompact extends LayoutBase {
+    private static final String LAYOUT_NAME = "hindi_compact";
+
+    public HindiCompact(final LayoutCustomizer customizer) {
+        super(customizer, HindiSymbols.class, SymbolsShifted.class);
+    }
+
+    @Override
+    public String getName() { return LAYOUT_NAME; }
+
+    public static class HindiCompactCustomizer extends HindiCustomizer {
+        public HindiCompactCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+            return EMPTY_KEYS;
+        }
+
+        @Override
+        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+            // U+0964: "।" DEVANAGARI DANDA
+            final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
+            return isPhone ? joinKeys(periodKey) : joinKeys(",", periodKey);
+        }
+
+        @Override
+        public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+            return isPhone ? HINDI_PHONE_PUNCTUATION_MORE_KEYS : HINDI_TABLET_PUNCTUATION_MORE_KEYS;
+        }
+
+        // Punctuation more keys for phone form factor.
+        private static final ExpectedKey[] HINDI_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
+                ",", ".", "?", "!", "#", ")", "(", "/", ";",
+                "'", "@", ":", "-", "\"", "+", "%", "&");
+        // Punctuation more keys for tablet form factor.
+        private static final ExpectedKey[] HINDI_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
+                ",", ".", "'", "#", ")", "(", "/", ";",
+                "@", ":", "-", "\"", "+", "%", "&");
+    }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+        return null;
+    }
+
+    private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+            .setKeysOfRow(1,
+                    // U+0914: "औ" DEVANAGARI LETTER AU
+                    // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+                    // U+0967: "१" DEVANAGARI DIGIT ONE
+                    key("\u0914", joinMoreKeys(moreKey(VOWEL_SIGN_AU, "\u094C"), "\u0967", "1")),
+                    // U+0910: "ऐ" DEVANAGARI LETTER AI
+                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+                    // U+0968: "२" DEVANAGARI DIGIT TWO
+                    key("\u0910", joinMoreKeys(moreKey(VOWEL_SIGN_AI, "\u0948"), "\u0968", "2")),
+                    // U+0906: "आ" DEVANAGARI LETTER AA
+                    // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+                    // U+0969: "३" DEVANAGARI DIGIT THREE
+                    key("\u0906", joinMoreKeys(moreKey(VOWEL_SIGN_AA, "\u093E"), "\u0969", "3")),
+                    // U+0908: "ई" DEVANAGARI LETTER II
+                    // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+                    // U+096A: "४" DEVANAGARI DIGIT FOUR
+                    key("\u0908", joinMoreKeys(moreKey(VOWEL_SIGN_II, "\u0940"), "\u096A", "4")),
+                    // U+090A: "ऊ" DEVANAGARI LETTER UU
+                    // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+                    // U+096B: "५" DEVANAGARI DIGIT FIVE
+                    key("\u090A", joinMoreKeys(moreKey(VOWEL_SIGN_UU, "\u0942"), "\u096B", "5")),
+                    // U+092C: "ब" DEVANAGARI LETTER BA
+                    // U+092D: "भ" DEVANAGARI LETTER BHA
+                    // U+096C: "६" DEVANAGARI DIGIT SIX
+                    key("\u092C", joinMoreKeys("\u092D", "\u096C", "6")),
+                    // U+0939: "ह" DEVANAGARI LETTER HA
+                    // U+096D: "७" DEVANAGARI DIGIT SEVEN
+                    key("\u0939", joinMoreKeys("\u096D", "7")),
+                    // U+0917: "ग" DEVANAGARI LETTER GA
+                    // U+0918: "घ" DEVANAGARI LETTER GHA
+                    // U+096E: "८" DEVANAGARI DIGIT EIGHT
+                    key("\u0917", joinMoreKeys("\u0918", "\u096E", "8")),
+                    // U+0926: "द" DEVANAGARI LETTER DA
+                    // U+0927: "ध" DEVANAGARI LETTER DHA
+                    // U+096F: "९" DEVANAGARI DIGIT NINE
+                    key("\u0926", joinMoreKeys("\u0927", "\u096F", "9")),
+                    // U+091C: "ज" DEVANAGARI LETTER JA
+                    // U+091D: "झ" DEVANAGARI LETTER JHA
+                    // U+091C/U+094D/U+091E:
+                    //     "ज्ञ" DEVANAGARI LETTER JA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER NYA
+                    // U+0966: "०" DEVANAGARI DIGIT ZERO
+                    key("\u091C", joinMoreKeys("\u091D", "\u091C\u094D\u091E", "\u0966", "0")),
+                    // U+0921: "ड" DEVANAGARI LETTER DDA
+                    // U+0922: "ढ" DEVANAGARI LETTER DDHA
+                    key("\u0921", moreKey("\u0922")))
+            .setKeysOfRow(2,
+                    // U+0913: "ओ" DEVANAGARI LETTER O
+                    // U+094B: "ो" DEVANAGARI VOWEL SIGN O
+                    key("\u0913", moreKey(VOWEL_SIGN_O, "\u094B")),
+                    // U+090F: "ए" DEVANAGARI LETTER E
+                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
+                    key("\u090F", moreKey(VOWEL_SIGN_E, "\u0947")),
+                    // U+0905: "अ" DEVANAGARI LETTER A
+                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
+                    key("\u0905", moreKey(SIGN_VIRAMA, "\u094D")),
+                    // U+0907: "इ" DEVANAGARI LETTER I
+                    // U+093F: "ि" DEVANAGARI VOWEL SIGN I
+                    key("\u0907", moreKey(VOWEL_SIGN_I, "\u093F")),
+                    // U+0909: "उ" DEVANAGARI LETTER U
+                    // U+0941: "ु" DEVANAGARI VOWEL SIGN U
+                    key("\u0909", moreKey(VOWEL_SIGN_U, "\u0941")),
+                    // U+092A: "प" DEVANAGARI LETTER PA
+                    // U+092B: "फ" DEVANAGARI LETTER PHA
+                    key("\u092A", moreKey("\u092B")),
+                    // U+0930: "र" DEVANAGARI LETTER RA
+                    // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
+                    // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+                    key("\u0930", joinMoreKeys("\u090B", moreKey(VOWEL_SIGN_VOCALIC_R, "\u0943"))),
+                    // U+0915: "क" DEVANAGARI LETTER KA
+                    // U+0916: "ख" DEVANAGARI LETTER KHA
+                    key("\u0915", moreKey("\u0916")),
+                    // U+0924: "त" DEVANAGARI LETTER TA
+                    // U+0925: "थ" DEVANAGARI LETTER THA
+                    // U+0924/U+094D/U+0930:
+                    //     "त्र" DEVANAGARI LETTER TA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
+                    key("\u0924", joinMoreKeys("\u0925", "\u0924\u094D\u0930")),
+                    // U+091A: "च" DEVANAGARI LETTER CA
+                    // U+091B: "छ" DEVANAGARI LETTER CHA
+                    key("\u091A", moreKey("\u091B")),
+                    // U+091F: "ट" DEVANAGARI LETTER TTA
+                    // U+0920: "ठ" DEVANAGARI LETTER TTHA
+                    key("\u091F", moreKey("\u0920")))
+            .setKeysOfRow(3,
+                    // U+0911: "ऑ" DEVANAGARI LETTER CANDRA O
+                    // U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+                    key("\u0911", moreKey(VOWEL_SIGN_CANDRA_O, "\u0949")),
+                    // U+090D: "ऍ" DEVANAGARI LETTER CANDRA E
+                    // U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E
+                    key("\u090D", moreKey(VOWEL_SIGN_CANDRA_E, "\u0945")),
+                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+                    // U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                    // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+                    // U+093C: "़" DEVANAGARI SIGN NUKTA
+                    key(SIGN_ANUSVARA, "\u0902", joinMoreKeys(
+                            moreKey(SIGN_VISARGA, "\u0903"),
+                            moreKey(SIGN_CANDRABINDU, "\u0901"),
+                            moreKey(SIGN_NUKTA, "\u093C"))),
+                    // U+092E: "म" DEVANAGARI LETTER MA
+                    // U+0950: "ॐ" DEVANAGARI OM
+                    key("\u092E", moreKey("\u0950")),
+                    // U+0928: "न" DEVANAGARI LETTER NA
+                    // U+0923: "ण" DEVANAGARI LETTER NNA
+                    // U+091E: "ञ" DEVANAGARI LETTER NYA
+                    // U+0919: "ङ" DEVANAGARI LETTER NGA
+                    key("\u0928", joinMoreKeys("\u0923", "\u091E", "\u0919")),
+                    // U+0935: "व" DEVANAGARI LETTER VA
+                    // U+0932: "ल" DEVANAGARI LETTER LA
+                    "\u0935", "\u0932",
+                    // U+0938: "स" DEVANAGARI LETTER SA
+                    // U+0936: "श" DEVANAGARI LETTER SHA
+                    // U+0937: "ष" DEVANAGARI LETTER SSA
+                    // U+0936/U+094D/U+0930:
+                    //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
+                    key("\u0938", joinMoreKeys("\u0936", "\u0937", "\u0936\u094D\u0930")),
+                    // U+092F: "य" DEVANAGARI LETTER YA
+                    // U+0915/U+094D/U+0937:
+                    //     "क्ष" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER SSA
+                    "\u092F", "\u0915\u094D\u0937")
+            .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
index 09cc8f9..4123a22 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
@@ -180,8 +180,7 @@
          * @return the array of {@link ExpectedKey} that are "more keys" of the punctuation key.
          */
         public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-            return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
-                    : TABLET_PUNCTUATION_MORE_KEYS;
+            return isPhone ? PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
         }
     }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java b/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
index 7cfe344..7048dbb 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
@@ -16,6 +16,8 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
+
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
@@ -70,13 +72,13 @@
                     // U+091F: "ट" DEVANAGARI LETTER TTA
                     // U+0967: "१" DEVANAGARI DIGIT ONE
                     // U+093C: "़" DEVANAGARI SIGN NUKTA
-                    key("\u091F", joinMoreKeys("\u0967", "1", "\u093C")),
+                    key("\u091F", joinMoreKeys("\u0967", "1", key(SIGN_NUKTA, "\u093C"))),
                     // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
                     // U+0968: "२" DEVANAGARI DIGIT TWO
-                    key("\u094C", joinMoreKeys("\u0968", "2")),
+                    key(VOWEL_SIGN_AU, "\u094C", joinMoreKeys("\u0968", "2")),
                     // U+0947: "े" DEVANAGARI VOWEL SIGN E
                     // U+0969: "३" DEVANAGARI DIGIT THREE
-                    key("\u0947", joinMoreKeys("\u0969", "3")),
+                    key(VOWEL_SIGN_E, "\u0947", joinMoreKeys("\u0969", "3")),
                     // U+0930: "र" DEVANAGARI LETTER RA
                     // U+096A: "४" DEVANAGARI DIGIT FOUR
                     key("\u0930", joinMoreKeys("\u096A", "4")),
@@ -88,13 +90,13 @@
                     key("\u092F", joinMoreKeys("\u096C", "6")),
                     // U+0941: "ु" DEVANAGARI VOWEL SIGN U
                     // U+096D: "७" DEVANAGARI DIGIT SEVEN
-                    key("\u0941", joinMoreKeys("\u096D", "7")),
+                    key(VOWEL_SIGN_U, "\u0941", joinMoreKeys("\u096D", "7")),
                     // U+093F: "ि" DEVANAGARI VOWEL SIGN I
                     // U+096E: "८" DEVANAGARI DIGIT EIGHT
-                    key("\u093F", joinMoreKeys("\u096E", "8")),
+                    key(VOWEL_SIGN_I, "\u093F", joinMoreKeys("\u096E", "8")),
                     // U+094B: "ो" DEVANAGARI VOWEL SIGN O
                     // U+096F: "९" DEVANAGARI DIGIT NINE
-                    key("\u094B", joinMoreKeys("\u096F", "9")),
+                    key(VOWEL_SIGN_O, "\u094B", joinMoreKeys("\u096F", "9")),
                     // U+092A: "प" DEVANAGARI LETTER PA
                     // U+0966: "०" DEVANAGARI DIGIT ZERO
                     key("\u092A", joinMoreKeys("\u0966", "0")),
@@ -102,6 +104,7 @@
                     "\u0907")
             .setKeysOfRow(2,
                     // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+                    key(VOWEL_SIGN_AA, "\u093E"),
                     // U+0938: "स" DEVANAGARI LETTER SA
                     // U+0926: "द" DEVANAGARI LETTER DA
                     // U+0909: "उ" DEVANAGARI LETTER U
@@ -112,8 +115,8 @@
                     // U+0932: "ल" DEVANAGARI LETTER LA
                     // U+090F: "ए" DEVANAGARI LETTER E
                     // U+0950: "ॐ" DEVANAGARI OM
-                    "\u093E", "\u0938", "\u0926", "\u0909", "\u0917", "\u0939", "\u091C", "\u0915",
-                    "\u0932", "\u090F", "\u0950")
+                    "\u0938", "\u0926", "\u0909", "\u0917", "\u0939", "\u091C", "\u0915", "\u0932",
+                    "\u090F", "\u0950")
             .setKeysOfRow(3,
                     // U+0937: "ष" DEVANAGARI LETTER SSA
                     // U+0921: "ड" DEVANAGARI LETTER DDA
@@ -127,23 +130,28 @@
                     // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
                     key("\u0964", moreKey("\u093D")),
                     // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    "\u094D")
+                    key(SIGN_VIRAMA, "\u094D"))
             .build();
 
     private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
             .setKeysOfRow(1,
                     // U+0920: "ठ" DEVANAGARI LETTER TTHA
                     // U+0914: "औ" DEVANAGARI LETTER AU
+                    "\u0920", "\u0914",
                     // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+                    key(VOWEL_SIGN_AI, "\u0948"),
                     // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+                    key(VOWEL_SIGN_VOCALIC_R, "\u0943"),
                     // U+0925: "थ" DEVANAGARI LETTER THA
                     // U+091E: "ञ" DEVANAGARI LETTER NYA
+                    "\u0925", "\u091E",
                     // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+                    key(VOWEL_SIGN_UU, "\u0942"),
                     // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+                    key(VOWEL_SIGN_II, "\u0940"),
                     // U+0913: "ओ" DEVANAGARI LETTER O
                     // U+092B: "फ" DEVANAGARI LETTER PHA
                     // U+0908: "ई" DEVANAGARI LETTER II
-                    "\u0920", "\u0914", "\u0948", "\u0943", "\u0925", "\u091E", "\u0942", "\u0940",
                     "\u0913", "\u092B", "\u0908")
             .setKeysOfRow(2,
                     // U+0906: "आ" DEVANAGARI LETTER AA
@@ -158,18 +166,22 @@
                     // U+0910: "ऐ" DEVANAGARI LETTER AI
                     // U+0903: "ः" DEVANAGARI SIGN VISARGA
                     "\u0906", "\u0936", "\u0927", "\u090A", "\u0918", "\u0905", "\u091D", "\u0916",
-                    "\u0965", "\u0910", "\u0903")
+                    "\u0965", "\u0910", key(SIGN_VISARGA, "\u0903"))
             .setKeysOfRow(3,
                     // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
                     // U+0922: "ढ" DEVANAGARI LETTER DDHA
                     // U+091B: "छ" DEVANAGARI LETTER CHA
+                    "\u090B", "\u0922", "\u091B",
                     // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+                    key(SIGN_CANDRABINDU, "\u0901"),
                     // U+092D: "भ" DEVANAGARI LETTER BHA
                     // U+0923: "ण" DEVANAGARI LETTER NNA
+                    "\u092D", "\u0923",
                     // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+                    key(SIGN_ANUSVARA, "\u0902"),
                     // U+0919: "ङ" DEVANAGARI LETTER NGA
+                    "\u0919",
                     // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    "\u090B", "\u0922", "\u091B", "\u0901", "\u092D", "\u0923", "\u0902", "\u0919",
-                    "\u094D")
+                    key(SIGN_VIRAMA, "\u094D"))
             .build();
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java b/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
index 1599fd7..4d6cded 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
@@ -16,6 +16,8 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
+
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
 import com.android.inputmethod.keyboard.layout.NepaliRomanized.NepaliRomanizedCustomizer;
@@ -47,7 +49,7 @@
         public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
             if (isPhone) {
                 // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                return joinKeys(key("\u094D", PHONE_PUNCTUATION_MORE_KEYS));
+                return joinKeys(key(SIGN_VIRAMA, "\u094D", PHONE_PUNCTUATION_MORE_KEYS));
             }
             return super.getKeysRightToSpacebar(isPhone);
         }
@@ -61,7 +63,8 @@
                     // U+0947: "े" DEVANAGARI VOWEL SIGN E
                     // U+0903: "ः‍" DEVANAGARI SIGN VISARGA
                     // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
-                    key("\u0947", joinMoreKeys("\u0903", "\u093D")),
+                    key(VOWEL_SIGN_E, "\u0947", joinMoreKeys(
+                            moreKey(SIGN_VISARGA, "\u0903"), "\u093D")),
                     // U+0964: "।" DEVANAGARI DANDA
                     "\u0964",
                     // U+0930: "र" DEVANAGARI LETTER RA
@@ -71,14 +74,15 @@
             builder.addKeysOnTheRightOfRow(3,
                     // U+0903: "ः" DEVANAGARI SIGN VISARGA
                     // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
-                    key("\u0903", moreKey("\u093D")),
+                    key(SIGN_VISARGA, "\u0903", moreKey("\u093D")),
                     // U+0947: "े" DEVANAGARI VOWEL SIGN E
+                    key(VOWEL_SIGN_E, "\u0947"),
                     // U+0964: "।" DEVANAGARI DANDA
-                    "\u0947", "\u0964",
+                    "\u0964",
                     // U+0930: "र" DEVANAGARI LETTER RA
                     key("\u0930", moreKey("!")),
                     // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    key("\u094D", moreKey("?")));
+                    key(SIGN_VIRAMA, "\u094D", moreKey("?")));
         }
         return builder.build();
     }
@@ -93,21 +97,23 @@
         if (isPhone) {
             builder.addKeysOnTheRightOfRow(3,
                     // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+                    key(SIGN_ANUSVARA, "\u0902"),
                     // U+0919: "ङ" DEVANAGARI LETTER NGA
-                    "\u0902", "\u0919",
+                    "\u0919",
                     // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
                     // U+0936/U+094D/U+0930:
                     //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
-                    key("\u0948", moreKey("\u0936\u094D\u0930")));
+                    key(VOWEL_SIGN_AI, "\u0948", moreKey("\u0936\u094D\u0930")));
         } else {
             builder.addKeysOnTheRightOfRow(3,
                     // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+                    key(SIGN_ANUSVARA, "\u0902"),
                     // U+0919: "ङ" DEVANAGARI LETTER NGA
-                    "\u0902", "\u0919",
+                    "\u0919",
                     // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
                     // U+0936/U+094D/U+0930:
                     //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
-                    key("\u0948", moreKey("\u0936\u094D\u0930")),
+                    key(VOWEL_SIGN_AI, "\u0948", moreKey("\u0936\u094D\u0930")),
                     // U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U
                     key("\u0930\u0941", moreKey("!")),
                     "?");
@@ -154,16 +160,20 @@
                     // U+092C: "ब" DEVANAGARI LETTER BA
                     // U+0915: "क" DEVANAGARI LETTER KA
                     // U+092E: "म" DEVANAGARI LETTER MA
+                    "\u092C", "\u0915", "\u092E",
                     // U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+                    key(VOWEL_SIGN_AA, "\u093E"),
                     // U+0928: "न" DEVANAGARI LETTER NA
                     // U+091C: "ज" DEVANAGARI LETTER JA
                     // U+0935: "व" DEVANAGARI LETTER VA
                     // U+092A: "प" DEVANAGARI LETTER PA
+                    "\u0928", "\u091C", "\u0935", "\u092A",
                     // U+093F: "ि" DEVANAGARI VOWEL SIGN I
+                    key(VOWEL_SIGN_I, "\u093F"),
                     // U+0938: "स" DEVANAGARI LETTER SA
+                    "\u0938",
                     // U+0941: "ु" DEVANAGARI VOWEL SIGN U
-                    "\u092C", "\u0915", "\u092E", "\u093E", "\u0928", "\u091C", "\u0935", "\u092A",
-                    "\u093F", "\u0938", "\u0941")
+                    key(VOWEL_SIGN_U, "\u0941"))
             .setKeysOfRow(3,
                     // U+0936: "श" DEVANAGARI LETTER SHA
                     // U+0939: "ह" DEVANAGARI LETTER HA
@@ -219,34 +229,41 @@
                     key("\u090F", moreKey("\u0923")),
                     // U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
                     // U+0913: "ओ" DEVANAGARI LETTER O
-                    key("\u0943", moreKey("\u0913")))
+                    key(VOWEL_SIGN_VOCALIC_R, "\u0943", moreKey("\u0913")))
             .setKeysOfRow(2,
                     // U+0906: "आ" DEVANAGARI LETTER AA
                     // U+0919/U+094D: "ङ्" DEVANAGARI LETTER NGA/DEVANAGARI SIGN VIRAMA
                     // U+0921/U+094D/U+0921:
                     //     "ड्ड" DEVANAGARI LETTER DDA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DDA
+                    "\u0906", "\u0919\u094D", "\u0921\u094D\u0921",
                     // U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+                    key(SIGN_CANDRABINDU, "\u0901"),
                     // U+0926/U+094D/U+0926:
                     //     "द्द" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER DA
                     // U+091D: "झ" DEVANAGARI LETTER JHA
+                    "\u0926\u094D\u0926", "\u091D",
                     // U+094B: "ो" DEVANAGARI VOWEL SIGN O
+                    key(VOWEL_SIGN_O, "\u094B"),
                     // U+092B: "फ" DEVANAGARI LETTER PHA
+                    "\u092B",
                     // U+0940: "ी" DEVANAGARI VOWEL SIGN II
+                    key(VOWEL_SIGN_II, "\u0940"),
                     // U+091F/U+094D/U+0920:
                     //     "ट्ठ" DEVANAGARI LETTER TTA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER TTHA
+                    "\u091F\u094D\u0920",
                     // U+0942: "ू" DEVANAGARI VOWEL SIGN UU
-                    "\u0906", "\u0919\u094D", "\u0921\u094D\u0921", "\u0901", "\u0926\u094D\u0926",
-                    "\u091D", "\u094B", "\u092B", "\u0940", "\u091F\u094D\u0920", "\u0942")
+                    key(VOWEL_SIGN_UU, "\u0942"))
             .setKeysOfRow(3,
                     // U+0915/U+094D: "क्" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA
                     // U+0939/U+094D/U+092E:
                     //     "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA
                     // U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R
                     // U+0950: "ॐ" DEVANAGARI OM
+                    "\u0915\u094D", "\u0939\u094D\u092E", "\u090B", "\u0950",
                     // U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+                    key(VOWEL_SIGN_AU, "\u094C"),
                     // U+0926/U+094D/U+092F:
                     //     "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA
-                    "\u0915\u094D", "\u0939\u094D\u092E", "\u090B", "\u0950", "\u094C",
                     "\u0926\u094D\u092F")
             .build();
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java
new file mode 100644
index 0000000..2e676df
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.HindiCompact;
+import com.android.inputmethod.keyboard.layout.HindiCompact.HindiCompactCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+
+import java.util.Locale;
+
+/**
+ * hi: Hindi/hindi_compact
+ */
+@SmallTest
+public final class TestsHindiCompact extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("hi");
+    private static final LayoutBase LAYOUT = new HindiCompact(new HindiCompactCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index b366452..d2dd292 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -16,7 +16,10 @@
 
 package com.android.inputmethod.latin;
 
+import com.android.inputmethod.latin.settings.Settings;
+
 import android.test.suitebuilder.annotation.LargeTest;
+import android.text.TextUtils;
 import android.view.inputmethod.BaseInputConnection;
 
 @LargeTest
@@ -179,6 +182,8 @@
     }
 
     public void testDoubleSpace() {
+        // Set default pref just in case
+        setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true);
         // U+1F607 is an emoji
         final String[] STRINGS_TO_TYPE =
                 new String[] { "this   ", "a+  ", "\u1F607  ", "..  ", ")  ", "(  ", "%  " };
@@ -200,6 +205,76 @@
         assertEquals("double space make a period", EXPECTED_RESULT, mEditText.getText().toString());
     }
 
+    private void testDoubleSpacePeriodWithSettings(final boolean expectsPeriod,
+            final Object... settingsKeysValues) {
+        final Object[] oldSettings = new Object[settingsKeysValues.length / 2];
+        final String STRING_WITHOUT_PERIOD = "this  ";
+        final String STRING_WITH_PERIOD = "this. ";
+        final String EXPECTED_RESULT = expectsPeriod ? STRING_WITH_PERIOD : STRING_WITHOUT_PERIOD;
+        try {
+            for (int i = 0; i < settingsKeysValues.length; i += 2) {
+                if (settingsKeysValues[i + 1] instanceof String) {
+                    oldSettings[i / 2] = setStringPreference((String)settingsKeysValues[i],
+                            (String)settingsKeysValues[i + 1], "0");
+                } else {
+                    oldSettings[i / 2] = setBooleanPreference((String)settingsKeysValues[i],
+                            (Boolean)settingsKeysValues[i + 1], false);
+                }
+            }
+            mLatinIME.loadSettings();
+            mEditText.setText("");
+            type(STRING_WITHOUT_PERIOD);
+            assertEquals("double-space-to-period with specific settings "
+                    + TextUtils.join(" ", settingsKeysValues),
+                    EXPECTED_RESULT, mEditText.getText().toString());
+        } finally {
+            // Restore old settings
+            for (int i = 0; i < settingsKeysValues.length; i += 2) {
+                if (null == oldSettings[i / 2]) {
+                    break;
+                } if (oldSettings[i / 2] instanceof String) {
+                    setStringPreference((String)settingsKeysValues[i], (String)oldSettings[i / 2],
+                            "");
+                } else {
+                    setBooleanPreference((String)settingsKeysValues[i], (Boolean)oldSettings[i / 2],
+                            false);
+                }
+            }
+        }
+    }
+
+    public void testDoubleSpacePeriod() {
+        // Reset settings to default, else these tests will go flaky.
+        setStringPreference(Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0", "0");
+        setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1", "1");
+        setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true);
+        testDoubleSpacePeriodWithSettings(true /* expectsPeriod */);
+        // "Suggestion visibility" to "always hide"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "2");
+        // "Suggestion visibility" to "portrait only"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "1");
+        // "Suggestion visibility" to "always show"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0");
+
+        // "Double-space period" to "off"
+        testDoubleSpacePeriodWithSettings(false, Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
+
+        // "Auto-correction" to "off"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0");
+        // "Auto-correction" to "modest"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1");
+        // "Auto-correction" to "very aggressive"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "3");
+
+        // "Suggestion visibility" to "always hide" and "Auto-correction" to "off"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0",
+                Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0");
+        // "Suggestion visibility" to "always hide" and "Auto-correction" to "off"
+        testDoubleSpacePeriodWithSettings(false, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0",
+                Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0",
+                Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
+    }
+
     public void testBackspaceAtStartAfterAutocorrect() {
         final String STRING_TO_TYPE = "tgis ";
         final int typedLength = STRING_TO_TYPE.length();
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index 690c559..1383ff9 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -65,7 +65,6 @@
     protected MyEditText mEditText;
     protected View mInputView;
     protected InputConnection mInputConnection;
-    private boolean mPreviousDebugSetting;
     private boolean mPreviousBigramPredictionSettings;
     private String mPreviousAutoCorrectSetting;
 
@@ -185,7 +184,7 @@
         mEditText.setEnabled(true);
         setupService();
         mLatinIME = getService();
-        mPreviousDebugSetting = setDebugMode(true);
+        setDebugMode(true);
         mPreviousBigramPredictionSettings = setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS,
                 true, true /* defaultValue */);
         mPreviousAutoCorrectSetting = setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD,
@@ -219,7 +218,7 @@
                 true /* defaultValue */);
         setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, mPreviousAutoCorrectSetting,
                 DEFAULT_AUTO_CORRECTION_THRESHOLD);
-        setDebugMode(mPreviousDebugSetting);
+        setDebugMode(false);
         super.tearDown();
     }
 
diff --git a/tools/dicttool/NativeLib.mk b/tools/dicttool/NativeLib.mk
index 0d3507b..3044449 100644
--- a/tools/dicttool/NativeLib.mk
+++ b/tools/dicttool/NativeLib.mk
@@ -29,13 +29,7 @@
     LOCAL_CFLAGS += -DFLAG_DBG -funwind-tables -fno-inline
 endif #FLAG_DBG
 
-ifneq ($(strip $(HOST_JDK_IS_64BIT_VERSION)),)
-LOCAL_CFLAGS += -m64
-LOCAL_LDFLAGS += -m64
-endif #HOST_JDK_IS_64BIT_VERSION
-
-LOCAL_CFLAGS += -DHOST_TOOL -fPIC -Wno-deprecated
-LOCAL_NO_DEFAULT_COMPILER_FLAGS := true
+LOCAL_CFLAGS += -DHOST_TOOL -fPIC -Wno-deprecated -Wno-unused-parameter -Wno-unused-function
 
 LOCAL_CLANG := true
 # For C++11
@@ -44,7 +38,6 @@
 LATINIME_NATIVE_JNI_DIR := $(LATINIME_DIR_RELATIVE_TO_DICTTOOL)/native/jni
 LATINIME_NATIVE_SRC_DIR := $(LATINIME_DIR_RELATIVE_TO_DICTTOOL)/native/jni/src
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(LATINIME_NATIVE_SRC_DIR)
-# Used in jni_common.cpp to avoid registering useless methods.
 
 include $(LOCAL_PATH)/$(LATINIME_NATIVE_JNI_DIR)/NativeFileList.mk
 
diff --git a/tools/dicttool/etc/dicttool_aosp b/tools/dicttool/etc/dicttool_aosp
index 65a1c3a..09d65c6 100755
--- a/tools/dicttool/etc/dicttool_aosp
+++ b/tools/dicttool/etc/dicttool_aosp
@@ -68,5 +68,14 @@
     libpath="$frameworkdir/$lib"
 fi
 
+# Check if the host Java executable supports a 32-bit JVM. It needs to do because the JNI
+# library is 32-bit.
+${DICTTOOL_JAVA-java} -d32 -version > /dev/null 2>&1
+if [[ $? != 0 ]] ; then
+    echo Please specify a Java executable that supports a 32-bit JVM as DICTTOOL_JAVA.
+    exit 1
+fi
+
 # might need more memory, e.g. -Xmx128M
-exec java -ea -classpath "$libpath":"$jarpath" -Djava.library.path="$libdir" "$classname" "$@"
+exec ${DICTTOOL_JAVA-java} -d32 -ea -classpath "$libpath":"$jarpath" \
+    -Djava.library.path="$libdir" "$classname" "$@"
