diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index a27c5681a..78cf34de7 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -267,9 +267,8 @@
-
-
-
+
+
diff --git a/java/res/xml-sw600dp/key_azerty3_right.xml b/java/res/xml-sw600dp/key_azerty3_right.xml
index a5a6e9526..25b0e52b8 100644
--- a/java/res/xml-sw600dp/key_azerty3_right.xml
+++ b/java/res/xml-sw600dp/key_azerty3_right.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml-sw600dp/key_colemak_colon.xml b/java/res/xml-sw600dp/key_colemak_colon.xml
index a5a6e9526..25b0e52b8 100644
--- a/java/res/xml-sw600dp/key_colemak_colon.xml
+++ b/java/res/xml-sw600dp/key_colemak_colon.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml-sw600dp/key_f1.xml b/java/res/xml-sw600dp/key_f1.xml
index 530f7d63b..ba78a6430 100644
--- a/java/res/xml-sw600dp/key_f1.xml
+++ b/java/res/xml-sw600dp/key_f1.xml
@@ -26,11 +26,11 @@
latin:mode="email"
>
+ latin:keySpec="\@" />
+ latin:keySpec="/" />
diff --git a/java/res/xml-sw600dp/key_greek_semicolon.xml b/java/res/xml-sw600dp/key_greek_semicolon.xml
index 3f09419b1..9e2c1fad0 100644
--- a/java/res/xml-sw600dp/key_greek_semicolon.xml
+++ b/java/res/xml-sw600dp/key_greek_semicolon.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml-sw600dp/key_question_exclamation.xml b/java/res/xml-sw600dp/key_question_exclamation.xml
index 860a0be77..edee5c5dd 100644
--- a/java/res/xml-sw600dp/key_question_exclamation.xml
+++ b/java/res/xml-sw600dp/key_question_exclamation.xml
@@ -26,11 +26,11 @@
latin:mode="email|url"
>
+ latin:keySpec="-" />
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 4dbc23ed0..6a79c6fc2 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -48,7 +48,7 @@
>
@@ -57,56 +57,56 @@
>
@@ -116,7 +116,7 @@
>
@@ -126,14 +126,14 @@
>
@@ -145,23 +145,23 @@
latin:backgroundType="functional" />
diff --git a/java/res/xml-sw600dp/key_styles_enter.xml b/java/res/xml-sw600dp/key_styles_enter.xml
index 39c5380b4..38a38fd45 100644
--- a/java/res/xml-sw600dp/key_styles_enter.xml
+++ b/java/res/xml-sw600dp/key_styles_enter.xml
@@ -99,7 +99,7 @@
@@ -129,7 +129,7 @@
>
@@ -138,7 +138,7 @@
>
@@ -147,7 +147,7 @@
>
@@ -156,7 +156,7 @@
>
@@ -165,7 +165,7 @@
>
@@ -174,7 +174,7 @@
>
diff --git a/java/res/xml-sw600dp/keys_arabic3_left.xml b/java/res/xml-sw600dp/keys_arabic3_left.xml
index 0f2ccc0ac..9b4031e55 100644
--- a/java/res/xml-sw600dp/keys_arabic3_left.xml
+++ b/java/res/xml-sw600dp/keys_arabic3_left.xml
@@ -23,10 +23,10 @@
>
diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/keys_comma_period.xml
index 55302aeab..eda96b288 100644
--- a/java/res/xml-sw600dp/keys_comma_period.xml
+++ b/java/res/xml-sw600dp/keys_comma_period.xml
@@ -22,14 +22,14 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml-sw600dp/keys_exclamation_question.xml b/java/res/xml-sw600dp/keys_exclamation_question.xml
index fd849222d..116bef2be 100644
--- a/java/res/xml-sw600dp/keys_exclamation_question.xml
+++ b/java/res/xml-sw600dp/keys_exclamation_question.xml
@@ -22,9 +22,9 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml-sw600dp/keys_farsi3_right.xml b/java/res/xml-sw600dp/keys_farsi3_right.xml
index 3c91ae92d..45d128628 100644
--- a/java/res/xml-sw600dp/keys_farsi3_right.xml
+++ b/java/res/xml-sw600dp/keys_farsi3_right.xml
@@ -23,10 +23,10 @@
>
diff --git a/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml b/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
index 324e025ed..ab99ec574 100644
--- a/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
+++ b/java/res/xml-sw600dp/keys_pcqwerty2_right3.xml
@@ -26,17 +26,17 @@
latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
>
@@ -44,11 +44,11 @@
+ latin:keySpec="{" />
+ latin:keySpec="}" />
+ latin:keySpec="|" />
\ No newline at end of file
diff --git a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
index 254b5e571..54433964f 100644
--- a/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
+++ b/java/res/xml-sw600dp/keys_pcqwerty3_right2.xml
@@ -26,12 +26,12 @@
latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
>
+ latin:keySpec=":" />
diff --git a/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml b/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
index 46a1c85dc..c95ca2ee7 100644
--- a/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
+++ b/java/res/xml-sw600dp/keys_pcqwerty4_right3.xml
@@ -26,17 +26,17 @@
latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
>
diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml
index 11b403452..2ba6a491b 100644
--- a/java/res/xml-sw600dp/row_dvorak4.xml
+++ b/java/res/xml-sw600dp/row_dvorak4.xml
@@ -39,7 +39,7 @@
diff --git a/java/res/xml-sw600dp/rowkeys_dvorak3.xml b/java/res/xml-sw600dp/rowkeys_dvorak3.xml
index 2148bb2c7..edc68a3af 100644
--- a/java/res/xml-sw600dp/rowkeys_dvorak3.xml
+++ b/java/res/xml-sw600dp/rowkeys_dvorak3.xml
@@ -22,26 +22,26 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="q" />
+ latin:keySpec="x" />
+ latin:keySpec="b" />
+ latin:keySpec="m" />
diff --git a/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml b/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
index ae6bab79c..5389e2201 100644
--- a/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
+++ b/java/res/xml-sw600dp/rowkeys_pcqwerty1.xml
@@ -22,66 +22,66 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
@@ -67,7 +67,7 @@
latin:mode="time|datetime"
>
@@ -113,28 +113,28 @@
latin:mode="time|datetime"
>
@@ -148,10 +148,10 @@
latin:keyStyle="numStarKeyStyle"
latin:keyXPos="31%p" />
@@ -54,12 +54,12 @@
@@ -81,17 +81,17 @@
@@ -116,7 +116,7 @@
diff --git a/java/res/xml-sw600dp/rows_symbols.xml b/java/res/xml-sw600dp/rows_symbols.xml
index 7a33f4923..a915c3351 100644
--- a/java/res/xml-sw600dp/rows_symbols.xml
+++ b/java/res/xml-sw600dp/rows_symbols.xml
@@ -51,9 +51,9 @@
latin:keyStyle="toMoreSymbolKeyStyle"
latin:keyWidth="10.0%p" />
+ latin:keySpec="\\" />
+ latin:keySpec="=" />
+ latin:keySpec="¡" />
+ latin:keySpec="¿" />
diff --git a/java/res/xml-v16/key_devanagari_sign_anusvara.xml b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
index 27c7bff5a..ee0f21dad 100644
--- a/java/res/xml-v16/key_devanagari_sign_anusvara.xml
+++ b/java/res/xml-v16/key_devanagari_sign_anusvara.xml
@@ -27,6 +27,6 @@
>
diff --git a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
index 03017dd78..29f41d143 100644
--- a/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml-v16/key_devanagari_sign_candrabindu.xml
@@ -43,6 +43,6 @@
diff --git a/java/res/xml-v16/key_devanagari_sign_nukta.xml b/java/res/xml-v16/key_devanagari_sign_nukta.xml
index 09c347706..915779524 100644
--- a/java/res/xml-v16/key_devanagari_sign_nukta.xml
+++ b/java/res/xml-v16/key_devanagari_sign_nukta.xml
@@ -44,6 +44,6 @@
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
index 0316a7bde..2f1739948 100644
--- a/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
+++ b/java/res/xml-v16/key_devanagari_vowel_sign_candra_o.xml
@@ -27,6 +27,6 @@
>
diff --git a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
index 4dd3e85cc..dc7a0e090 100644
--- a/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml-v16/key_devanagari_vowel_sign_vocalic_r.xml
@@ -50,6 +50,6 @@
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
index a2fbf53d3..764fb1fbb 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_virama.xml
@@ -28,6 +28,6 @@
diff --git a/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
index ac56cb77b..b047893a6 100644
--- a/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
+++ b/java/res/xml-v16/keystyle_devanagari_sign_visarga.xml
@@ -28,6 +28,6 @@
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 8e256032c..fe9264b78 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_aa.xml
@@ -44,6 +44,6 @@
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 e79033971..fdb53bb2c 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ai.xml
@@ -51,6 +51,6 @@
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 43387a388..653e79e0f 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_au.xml
@@ -43,6 +43,6 @@
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 c70d9d944..7240a2ca1 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_e.xml
@@ -52,6 +52,6 @@
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 845c1b02e..5a006f033 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_i.xml
@@ -43,6 +43,6 @@
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 0de9650be..a2b07fe5a 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_ii.xml
@@ -43,6 +43,6 @@
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 06f07fac9..4b764cdee 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_o.xml
@@ -45,6 +45,6 @@
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 469a27bdf..18d485afe 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_u.xml
@@ -44,6 +44,6 @@
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 25867c086..d770ee6c5 100644
--- a/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml-v16/keystyle_devanagari_vowel_sign_uu.xml
@@ -44,6 +44,6 @@
diff --git a/java/res/xml/key_armenian_sha.xml b/java/res/xml/key_armenian_sha.xml
index 3865c1984..b6418f26f 100644
--- a/java/res/xml/key_armenian_sha.xml
+++ b/java/res/xml/key_armenian_sha.xml
@@ -23,6 +23,6 @@
>
diff --git a/java/res/xml/key_armenian_xeh.xml b/java/res/xml/key_armenian_xeh.xml
index 007a5802d..cfc5bc0f9 100644
--- a/java/res/xml/key_armenian_xeh.xml
+++ b/java/res/xml/key_armenian_xeh.xml
@@ -23,6 +23,6 @@
>
diff --git a/java/res/xml/key_azerty3_right.xml b/java/res/xml/key_azerty3_right.xml
index 65789ea69..85a066613 100644
--- a/java/res/xml/key_azerty3_right.xml
+++ b/java/res/xml/key_azerty3_right.xml
@@ -26,11 +26,11 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
>
+ latin:keySpec="\?" />
diff --git a/java/res/xml/key_colemak_colon.xml b/java/res/xml/key_colemak_colon.xml
index 307b4ebca..9330be9a5 100644
--- a/java/res/xml/key_colemak_colon.xml
+++ b/java/res/xml/key_colemak_colon.xml
@@ -26,13 +26,13 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
>
diff --git a/java/res/xml/key_devanagari_sign_anusvara.xml b/java/res/xml/key_devanagari_sign_anusvara.xml
index ed9cfbba1..5d7c01890 100644
--- a/java/res/xml/key_devanagari_sign_anusvara.xml
+++ b/java/res/xml/key_devanagari_sign_anusvara.xml
@@ -28,6 +28,6 @@
diff --git a/java/res/xml/key_devanagari_sign_candrabindu.xml b/java/res/xml/key_devanagari_sign_candrabindu.xml
index 225d2a6e6..9e9c371a7 100644
--- a/java/res/xml/key_devanagari_sign_candrabindu.xml
+++ b/java/res/xml/key_devanagari_sign_candrabindu.xml
@@ -44,6 +44,6 @@
U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU -->
diff --git a/java/res/xml/key_devanagari_sign_nukta.xml b/java/res/xml/key_devanagari_sign_nukta.xml
index 8f8da2709..b56eb0af3 100644
--- a/java/res/xml/key_devanagari_sign_nukta.xml
+++ b/java/res/xml/key_devanagari_sign_nukta.xml
@@ -46,6 +46,6 @@
U+093C: "़" DEVANAGARI SIGN NUKTA -->
diff --git a/java/res/xml/key_devanagari_vowel_sign_candra_o.xml b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
index 8d5368c46..6d7d000b3 100644
--- a/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
+++ b/java/res/xml/key_devanagari_vowel_sign_candra_o.xml
@@ -28,6 +28,6 @@
diff --git a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
index fb912253d..badea3e2c 100644
--- a/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
+++ b/java/res/xml/key_devanagari_vowel_sign_vocalic_r.xml
@@ -52,6 +52,6 @@
U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R -->
diff --git a/java/res/xml/key_f1.xml b/java/res/xml/key_f1.xml
index 0e9d497b6..d3a753948 100644
--- a/java/res/xml/key_f1.xml
+++ b/java/res/xml/key_f1.xml
@@ -26,21 +26,21 @@
latin:mode="url"
>
@@ -55,7 +55,7 @@
diff --git a/java/res/xml/key_greek_semicolon.xml b/java/res/xml/key_greek_semicolon.xml
index ae73a59f6..9001e4dfb 100644
--- a/java/res/xml/key_greek_semicolon.xml
+++ b/java/res/xml/key_greek_semicolon.xml
@@ -26,14 +26,14 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
>
diff --git a/java/res/xml/key_period.xml b/java/res/xml/key_period.xml
index 838db25c3..edb4f9456 100644
--- a/java/res/xml/key_period.xml
+++ b/java/res/xml/key_period.xml
@@ -39,7 +39,7 @@
@@ -60,70 +60,70 @@
>
diff --git a/java/res/xml/key_styles_currency.xml b/java/res/xml/key_styles_currency.xml
index 84c2abc08..ed40ebc58 100644
--- a/java/res/xml/key_styles_currency.xml
+++ b/java/res/xml/key_styles_currency.xml
@@ -113,21 +113,21 @@
U+00A2: "¢" CENT SIGN -->
+ latin:keySpec="£" />
+ latin:keySpec="€" />
+ latin:keySpec="¢" />
+ latin:keySpec="€" />
+ latin:keySpec="¥" />
+ latin:keySpec="¢" />
diff --git a/java/res/xml/key_styles_currency_dollar.xml b/java/res/xml/key_styles_currency_dollar.xml
index 674a3966d..a02c9bfa1 100644
--- a/java/res/xml/key_styles_currency_dollar.xml
+++ b/java/res/xml/key_styles_currency_dollar.xml
@@ -25,18 +25,18 @@
U+00A5: "¥" YEN SIGN -->
+ latin:keySpec="£" />
+ latin:keySpec="¢" />
+ latin:keySpec="€" />
+ latin:keySpec="¥" />
diff --git a/java/res/xml/key_styles_currency_euro.xml b/java/res/xml/key_styles_currency_euro.xml
index c1b5e0384..c2ae87bea 100644
--- a/java/res/xml/key_styles_currency_euro.xml
+++ b/java/res/xml/key_styles_currency_euro.xml
@@ -26,19 +26,19 @@
U+20B1: "₱" PESO SIGN -->
+ latin:keySpec="£" />
+ latin:keySpec="¥" />
+ latin:keySpec="¢" />
diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml
index b3def1fb4..64d09b107 100644
--- a/java/res/xml/key_styles_enter.xml
+++ b/java/res/xml/key_styles_enter.xml
@@ -261,7 +261,7 @@
latin:parentStyle="navigateMoreKeysStyle" />
@@ -287,7 +287,7 @@
>
@@ -296,7 +296,7 @@
>
@@ -305,7 +305,7 @@
>
@@ -314,7 +314,7 @@
>
@@ -323,7 +323,7 @@
>
@@ -332,7 +332,7 @@
>
@@ -341,7 +341,7 @@
>
@@ -350,7 +350,7 @@
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index 3c0cf720e..7136e1070 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -43,74 +43,74 @@
latin:parentStyle="numKeyStyle" />
diff --git a/java/res/xml/keys_arabic3_left.xml b/java/res/xml/keys_arabic3_left.xml
index 157af4a52..2b3e12c03 100644
--- a/java/res/xml/keys_arabic3_left.xml
+++ b/java/res/xml/keys_arabic3_left.xml
@@ -23,6 +23,6 @@
>
diff --git a/java/res/xml/keys_comma_period_symbols.xml b/java/res/xml/keys_comma_period_symbols.xml
index 880fe40d9..5221d34e3 100644
--- a/java/res/xml/keys_comma_period_symbols.xml
+++ b/java/res/xml/keys_comma_period_symbols.xml
@@ -22,10 +22,10 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/keys_curly_brackets.xml b/java/res/xml/keys_curly_brackets.xml
index fd736c07d..da6dfc0fd 100644
--- a/java/res/xml/keys_curly_brackets.xml
+++ b/java/res/xml/keys_curly_brackets.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="{|!code/key_left_curly_bracket" />
+ latin:keySpec="}|!code/key_right_curly_bracket" />
diff --git a/java/res/xml/keys_dvorak_123.xml b/java/res/xml/keys_dvorak_123.xml
index fa94f1f28..6efc7f2c5 100644
--- a/java/res/xml/keys_dvorak_123.xml
+++ b/java/res/xml/keys_dvorak_123.xml
@@ -26,7 +26,7 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
>
@@ -34,7 +34,7 @@
latin:mode="url"
>
@@ -42,13 +42,13 @@
latin:mode="email"
>
@@ -59,22 +59,22 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
>
diff --git a/java/res/xml/keys_farsi3_right.xml b/java/res/xml/keys_farsi3_right.xml
index 77efb0a21..2618e478c 100644
--- a/java/res/xml/keys_farsi3_right.xml
+++ b/java/res/xml/keys_farsi3_right.xml
@@ -23,6 +23,6 @@
>
diff --git a/java/res/xml/keys_less_greater.xml b/java/res/xml/keys_less_greater.xml
index 98dcef6b5..3304e4c07 100644
--- a/java/res/xml/keys_less_greater.xml
+++ b/java/res/xml/keys_less_greater.xml
@@ -29,21 +29,21 @@
diff --git a/java/res/xml/keys_parentheses.xml b/java/res/xml/keys_parentheses.xml
index fe4e5de84..ab33ef561 100644
--- a/java/res/xml/keys_parentheses.xml
+++ b/java/res/xml/keys_parentheses.xml
@@ -22,9 +22,9 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/keys_pcqwerty2_right3.xml b/java/res/xml/keys_pcqwerty2_right3.xml
index 6f86477da..9e62b09c2 100644
--- a/java/res/xml/keys_pcqwerty2_right3.xml
+++ b/java/res/xml/keys_pcqwerty2_right3.xml
@@ -26,23 +26,23 @@
latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
>
+ latin:keySpec="{" />
+ latin:keySpec="}" />
+ latin:keySpec="|" />
diff --git a/java/res/xml/keys_pcqwerty3_right2.xml b/java/res/xml/keys_pcqwerty3_right2.xml
index 8da145b20..d889216c0 100644
--- a/java/res/xml/keys_pcqwerty3_right2.xml
+++ b/java/res/xml/keys_pcqwerty3_right2.xml
@@ -26,19 +26,19 @@
latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
>
+ latin:keySpec=":" />
diff --git a/java/res/xml/keys_pcqwerty4_right3.xml b/java/res/xml/keys_pcqwerty4_right3.xml
index a5d5a429c..f32d80908 100644
--- a/java/res/xml/keys_pcqwerty4_right3.xml
+++ b/java/res/xml/keys_pcqwerty4_right3.xml
@@ -26,13 +26,13 @@
latin:keyboardLayoutSetElement="alphabet|alphabetAutomaticShifted"
>
@@ -45,13 +45,13 @@
U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
diff --git a/java/res/xml/keys_square_brackets.xml b/java/res/xml/keys_square_brackets.xml
index a9cf6a6db..8f0dec54a 100644
--- a/java/res/xml/keys_square_brackets.xml
+++ b/java/res/xml/keys_square_brackets.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="[|!code/key_left_square_bracket" />
+ latin:keySpec="]|!code/key_right_square_bracket" />
diff --git a/java/res/xml/keystyle_devanagari_sign_virama.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml
index 9d007919d..5e0e10823 100644
--- a/java/res/xml/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml/keystyle_devanagari_sign_virama.xml
@@ -29,6 +29,6 @@
U+094D: "्" DEVANAGARI SIGN VIRAMA -->
diff --git a/java/res/xml/keystyle_devanagari_sign_visarga.xml b/java/res/xml/keystyle_devanagari_sign_visarga.xml
index 42facd7fa..45f519a43 100644
--- a/java/res/xml/keystyle_devanagari_sign_visarga.xml
+++ b/java/res/xml/keystyle_devanagari_sign_visarga.xml
@@ -29,6 +29,6 @@
U+0903: "ः" DEVANAGARI SIGN VISARGA -->
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
index 8013b0d72..97f98e328 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_aa.xml
@@ -46,6 +46,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
index fd74ab52b..4d1b2c514 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ai.xml
@@ -53,6 +53,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
index 15d4f901b..66628b5ed 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_au.xml
@@ -44,6 +44,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
index 89d8fc7c8..de1d94974 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_e.xml
@@ -53,6 +53,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
index 9e3c6ed76..d1d56c185 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_i.xml
@@ -45,6 +45,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
index 3d064b595..fd0ce77f8 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_ii.xml
@@ -45,6 +45,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
index 3eddbe5e0..edc3bef0f 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_o.xml
@@ -47,6 +47,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
index 9a00adebc..c7de4fdd8 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_u.xml
@@ -46,6 +46,6 @@
diff --git a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
index 06b51eb72..6029d6d2b 100644
--- a/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
+++ b/java/res/xml/keystyle_devanagari_vowel_sign_uu.xml
@@ -46,6 +46,6 @@
diff --git a/java/res/xml/row_dvorak4.xml b/java/res/xml/row_dvorak4.xml
index b78872fe4..0658079b2 100644
--- a/java/res/xml/row_dvorak4.xml
+++ b/java/res/xml/row_dvorak4.xml
@@ -28,7 +28,7 @@
latin:keyStyle="toSymbolKeyStyle"
latin:keyWidth="15%p" />
@@ -36,7 +36,7 @@
latin:keyXPos="25%p"
latin:keyboardLayout="@xml/key_space_5kw" />
+ latin:keySpec="_" />
+ latin:keySpec="/" />
@@ -47,7 +47,7 @@
U+0664: "٤" ARABIC-INDIC DIGIT FOUR -->
@@ -84,7 +84,7 @@
U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER
U+0668: "٨" ARABIC-INDIC DIGIT EIGHT -->
diff --git a/java/res/xml/rowkeys_arabic2.xml b/java/res/xml/rowkeys_arabic2.xml
index 4f8090d01..9bc91e8c7 100644
--- a/java/res/xml/rowkeys_arabic2.xml
+++ b/java/res/xml/rowkeys_arabic2.xml
@@ -25,24 +25,24 @@
U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
diff --git a/java/res/xml/rowkeys_arabic3.xml b/java/res/xml/rowkeys_arabic3.xml
index 8a17b4b98..0bfc66a7d 100644
--- a/java/res/xml/rowkeys_arabic3.xml
+++ b/java/res/xml/rowkeys_arabic3.xml
@@ -25,42 +25,42 @@
latin:keyboardLayout="@xml/keys_arabic3_left" />
diff --git a/java/res/xml/rowkeys_armenian_phonetic1.xml b/java/res/xml/rowkeys_armenian_phonetic1.xml
index 1984fae8a..8ca78dab4 100644
--- a/java/res/xml/rowkeys_armenian_phonetic1.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic1.xml
@@ -23,61 +23,61 @@
>
diff --git a/java/res/xml/rowkeys_armenian_phonetic2.xml b/java/res/xml/rowkeys_armenian_phonetic2.xml
index 3764d0dbb..9991f739d 100644
--- a/java/res/xml/rowkeys_armenian_phonetic2.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic2.xml
@@ -23,45 +23,45 @@
>
diff --git a/java/res/xml/rowkeys_armenian_phonetic3.xml b/java/res/xml/rowkeys_armenian_phonetic3.xml
index 3116811b3..2b79386ac 100644
--- a/java/res/xml/rowkeys_armenian_phonetic3.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic3.xml
@@ -23,38 +23,38 @@
>
diff --git a/java/res/xml/rowkeys_armenian_phonetic4.xml b/java/res/xml/rowkeys_armenian_phonetic4.xml
index 922481add..f8cdd1221 100644
--- a/java/res/xml/rowkeys_armenian_phonetic4.xml
+++ b/java/res/xml/rowkeys_armenian_phonetic4.xml
@@ -23,30 +23,30 @@
>
diff --git a/java/res/xml/rowkeys_azerty1.xml b/java/res/xml/rowkeys_azerty1.xml
index 42b27463f..adb66b70f 100644
--- a/java/res/xml/rowkeys_azerty1.xml
+++ b/java/res/xml/rowkeys_azerty1.xml
@@ -22,52 +22,52 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_azerty2.xml b/java/res/xml/rowkeys_azerty2.xml
index 2eee214e5..db0686721 100644
--- a/java/res/xml/rowkeys_azerty2.xml
+++ b/java/res/xml/rowkeys_azerty2.xml
@@ -22,30 +22,30 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="q" />
+ latin:keySpec="f" />
+ latin:keySpec="m" />
diff --git a/java/res/xml/rowkeys_azerty3.xml b/java/res/xml/rowkeys_azerty3.xml
index 2643f3283..0aa215305 100644
--- a/java/res/xml/rowkeys_azerty3.xml
+++ b/java/res/xml/rowkeys_azerty3.xml
@@ -22,20 +22,20 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="x" />
+ latin:keySpec="b" />
diff --git a/java/res/xml/rowkeys_bulgarian1.xml b/java/res/xml/rowkeys_bulgarian1.xml
index 441b079f1..e84719302 100644
--- a/java/res/xml/rowkeys_bulgarian1.xml
+++ b/java/res/xml/rowkeys_bulgarian1.xml
@@ -23,57 +23,57 @@
>
+ latin:keySpec="ч" />
diff --git a/java/res/xml/rowkeys_bulgarian2.xml b/java/res/xml/rowkeys_bulgarian2.xml
index a4e93d862..e572a221d 100644
--- a/java/res/xml/rowkeys_bulgarian2.xml
+++ b/java/res/xml/rowkeys_bulgarian2.xml
@@ -23,35 +23,35 @@
>
+ latin:keySpec="а" />
+ latin:keySpec="с" />
+ latin:keySpec="д" />
+ latin:keySpec="ф" />
+ latin:keySpec="г" />
+ latin:keySpec="х" />
+ latin:keySpec="й" />
+ latin:keySpec="к" />
+ latin:keySpec="л" />
+ latin:keySpec="ш" />
+ latin:keySpec="щ" />
diff --git a/java/res/xml/rowkeys_bulgarian3.xml b/java/res/xml/rowkeys_bulgarian3.xml
index 258219c27..2509793b2 100644
--- a/java/res/xml/rowkeys_bulgarian3.xml
+++ b/java/res/xml/rowkeys_bulgarian3.xml
@@ -23,26 +23,26 @@
>
+ latin:keySpec="з" />
+ latin:keySpec="ь" />
+ latin:keySpec="ц" />
+ latin:keySpec="ж" />
+ latin:keySpec="б" />
+ latin:keySpec="н" />
+ latin:keySpec="м" />
+ latin:keySpec="ю" />
diff --git a/java/res/xml/rowkeys_bulgarian_bds1.xml b/java/res/xml/rowkeys_bulgarian_bds1.xml
index eed1fcb8f..9d6428268 100644
--- a/java/res/xml/rowkeys_bulgarian_bds1.xml
+++ b/java/res/xml/rowkeys_bulgarian_bds1.xml
@@ -23,57 +23,57 @@
>
+ latin:keySpec="б" />
diff --git a/java/res/xml/rowkeys_bulgarian_bds2.xml b/java/res/xml/rowkeys_bulgarian_bds2.xml
index ff1bff895..e078ae7d3 100644
--- a/java/res/xml/rowkeys_bulgarian_bds2.xml
+++ b/java/res/xml/rowkeys_bulgarian_bds2.xml
@@ -23,35 +23,35 @@
>
+ latin:keySpec="ь" />
+ latin:keySpec="я" />
+ latin:keySpec="а" />
+ latin:keySpec="о" />
+ latin:keySpec="ж" />
+ latin:keySpec="г" />
+ latin:keySpec="т" />
+ latin:keySpec="н" />
+ latin:keySpec="в" />
+ latin:keySpec="м" />
+ latin:keySpec="ч" />
diff --git a/java/res/xml/rowkeys_bulgarian_bds3.xml b/java/res/xml/rowkeys_bulgarian_bds3.xml
index 7bb780ac7..8302d6922 100644
--- a/java/res/xml/rowkeys_bulgarian_bds3.xml
+++ b/java/res/xml/rowkeys_bulgarian_bds3.xml
@@ -23,29 +23,29 @@
>
+ latin:keySpec="ю" />
+ latin:keySpec="й" />
+ latin:keySpec="ъ" />
+ latin:keySpec="э" />
+ latin:keySpec="ф" />
+ latin:keySpec="х" />
+ latin:keySpec="п" />
+ latin:keySpec="р" />
+ latin:keySpec="л" />
diff --git a/java/res/xml/rowkeys_colemak1.xml b/java/res/xml/rowkeys_colemak1.xml
index f1c30756b..819a69d2b 100644
--- a/java/res/xml/rowkeys_colemak1.xml
+++ b/java/res/xml/rowkeys_colemak1.xml
@@ -22,44 +22,44 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_colemak2.xml b/java/res/xml/rowkeys_colemak2.xml
index f73d7e95f..644d845bf 100644
--- a/java/res/xml/rowkeys_colemak2.xml
+++ b/java/res/xml/rowkeys_colemak2.xml
@@ -22,33 +22,33 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_colemak3.xml b/java/res/xml/rowkeys_colemak3.xml
index f0f915142..946910cb5 100644
--- a/java/res/xml/rowkeys_colemak3.xml
+++ b/java/res/xml/rowkeys_colemak3.xml
@@ -22,21 +22,21 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="x" />
+ latin:keySpec="b" />
+ latin:keySpec="m" />
diff --git a/java/res/xml/rowkeys_dvorak1.xml b/java/res/xml/rowkeys_dvorak1.xml
index 033308acb..831bfafff 100644
--- a/java/res/xml/rowkeys_dvorak1.xml
+++ b/java/res/xml/rowkeys_dvorak1.xml
@@ -24,35 +24,35 @@
diff --git a/java/res/xml/rowkeys_dvorak2.xml b/java/res/xml/rowkeys_dvorak2.xml
index 943e3f549..7c734730a 100644
--- a/java/res/xml/rowkeys_dvorak2.xml
+++ b/java/res/xml/rowkeys_dvorak2.xml
@@ -22,33 +22,33 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_dvorak3.xml b/java/res/xml/rowkeys_dvorak3.xml
index b035f41cd..a9da6b950 100644
--- a/java/res/xml/rowkeys_dvorak3.xml
+++ b/java/res/xml/rowkeys_dvorak3.xml
@@ -22,21 +22,21 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="x" />
+ latin:keySpec="b" />
+ latin:keySpec="m" />
diff --git a/java/res/xml/rowkeys_east_slavic1.xml b/java/res/xml/rowkeys_east_slavic1.xml
index 5b3b4b48d..7e95a8b35 100644
--- a/java/res/xml/rowkeys_east_slavic1.xml
+++ b/java/res/xml/rowkeys_east_slavic1.xml
@@ -23,59 +23,59 @@
>
+ latin:keySpec="х" />
diff --git a/java/res/xml/rowkeys_east_slavic2.xml b/java/res/xml/rowkeys_east_slavic2.xml
index 2e412f08c..20d963cb3 100644
--- a/java/res/xml/rowkeys_east_slavic2.xml
+++ b/java/res/xml/rowkeys_east_slavic2.xml
@@ -23,37 +23,37 @@
>
+ latin:keySpec="ф" />
+ latin:keySpec="в" />
+ latin:keySpec="п" />
+ latin:keySpec="р" />
+ latin:keySpec="л" />
+ latin:keySpec="д" />
+ latin:keySpec="ж" />
diff --git a/java/res/xml/rowkeys_east_slavic3.xml b/java/res/xml/rowkeys_east_slavic3.xml
index c3a171b49..b7d19b223 100644
--- a/java/res/xml/rowkeys_east_slavic3.xml
+++ b/java/res/xml/rowkeys_east_slavic3.xml
@@ -23,29 +23,29 @@
>
+ latin:keySpec="я" />
+ latin:keySpec="ч" />
+ latin:keySpec="с" />
+ latin:keySpec="м" />
+ latin:keySpec="!text/keylabel_for_east_slavic_row3_5" />
+ latin:keySpec="т" />
+ latin:keySpec="б" />
+ latin:keySpec="ю" />
diff --git a/java/res/xml/rowkeys_farsi1.xml b/java/res/xml/rowkeys_farsi1.xml
index 5a22a2462..46fef4236 100644
--- a/java/res/xml/rowkeys_farsi1.xml
+++ b/java/res/xml/rowkeys_farsi1.xml
@@ -24,49 +24,49 @@
@@ -77,7 +77,7 @@
U+0629: "ة" ARABIC LETTER TEH MARBUTA
U+06F8: "۸" EXTENDED ARABIC-INDIC DIGIT EIGHT -->
diff --git a/java/res/xml/rowkeys_farsi2.xml b/java/res/xml/rowkeys_farsi2.xml
index 590161f62..f94ee8e49 100644
--- a/java/res/xml/rowkeys_farsi2.xml
+++ b/java/res/xml/rowkeys_farsi2.xml
@@ -23,11 +23,11 @@
>
diff --git a/java/res/xml/rowkeys_farsi3.xml b/java/res/xml/rowkeys_farsi3.xml
index 98949f4c0..edc22f95a 100644
--- a/java/res/xml/rowkeys_farsi3.xml
+++ b/java/res/xml/rowkeys_farsi3.xml
@@ -23,40 +23,40 @@
>
diff --git a/java/res/xml/rowkeys_georgian2.xml b/java/res/xml/rowkeys_georgian2.xml
index cdccda31f..162960d75 100644
--- a/java/res/xml/rowkeys_georgian2.xml
+++ b/java/res/xml/rowkeys_georgian2.xml
@@ -26,64 +26,64 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
>
+ latin:keySpec="A" />
+ latin:keySpec="შ" />
+ latin:keySpec="D" />
+ latin:keySpec="F" />
+ latin:keySpec="G" />
+ latin:keySpec="H" />
+ latin:keySpec="ჟ" />
+ latin:keySpec="K" />
+ latin:keySpec="L" />
+ latin:keySpec="ს" />
+ latin:keySpec="დ" />
+ latin:keySpec="კ" />
+ latin:keySpec="ლ" />
diff --git a/java/res/xml/rowkeys_georgian3.xml b/java/res/xml/rowkeys_georgian3.xml
index a3714586f..a16acf8d3 100644
--- a/java/res/xml/rowkeys_georgian3.xml
+++ b/java/res/xml/rowkeys_georgian3.xml
@@ -27,49 +27,49 @@
>
+ latin:keySpec="ძ" />
+ latin:keySpec="X" />
+ latin:keySpec="ჩ" />
+ latin:keySpec="V" />
+ latin:keySpec="B" />
+ latin:keySpec="N" />
+ latin:keySpec="M" />
+ latin:keySpec="ზ" />
+ latin:keySpec="ც" />
+ latin:keySpec="ბ" />
+ latin:keySpec="მ" />
diff --git a/java/res/xml/rowkeys_greek1.xml b/java/res/xml/rowkeys_greek1.xml
index 5777d3b85..5080dc843 100644
--- a/java/res/xml/rowkeys_greek1.xml
+++ b/java/res/xml/rowkeys_greek1.xml
@@ -29,7 +29,7 @@
>
U+0385: "΅" GREEK DIALYTIKA TONOS
@@ -37,7 +37,7 @@
-->
@@ -48,18 +48,18 @@
diff --git a/java/res/xml/rowkeys_greek2.xml b/java/res/xml/rowkeys_greek2.xml
index 91bdc1165..d8769caa9 100644
--- a/java/res/xml/rowkeys_greek2.xml
+++ b/java/res/xml/rowkeys_greek2.xml
@@ -24,32 +24,32 @@
+ latin:keySpec="σ" />
+ latin:keySpec="δ" />
+ latin:keySpec="φ" />
+ latin:keySpec="γ" />
+ latin:keySpec="ξ" />
+ latin:keySpec="κ" />
+ latin:keySpec="λ" />
diff --git a/java/res/xml/rowkeys_greek3.xml b/java/res/xml/rowkeys_greek3.xml
index 8a99db925..3f989bc9c 100644
--- a/java/res/xml/rowkeys_greek3.xml
+++ b/java/res/xml/rowkeys_greek3.xml
@@ -23,25 +23,25 @@
>
+ latin:keySpec="ζ" />
+ latin:keySpec="χ" />
+ latin:keySpec="ψ" />
+ latin:keySpec="β" />
+ latin:keySpec="ν" />
+ latin:keySpec="μ" />
diff --git a/java/res/xml/rowkeys_hebrew1.xml b/java/res/xml/rowkeys_hebrew1.xml
index 81a00e367..e888977ae 100644
--- a/java/res/xml/rowkeys_hebrew1.xml
+++ b/java/res/xml/rowkeys_hebrew1.xml
@@ -26,22 +26,22 @@
latin:mode="email|url"
>
@@ -49,42 +49,42 @@
diff --git a/java/res/xml/rowkeys_hebrew2.xml b/java/res/xml/rowkeys_hebrew2.xml
index e4ecac335..d43f5a8f2 100644
--- a/java/res/xml/rowkeys_hebrew2.xml
+++ b/java/res/xml/rowkeys_hebrew2.xml
@@ -23,38 +23,38 @@
>
+ latin:keySpec="ש" />
+ latin:keySpec="ד" />
+ latin:keySpec="כ" />
+ latin:keySpec="ע" />
+ latin:keySpec="ל" />
+ latin:keySpec="ך" />
+ latin:keySpec="ף" />
diff --git a/java/res/xml/rowkeys_hebrew3.xml b/java/res/xml/rowkeys_hebrew3.xml
index 805a7a596..928e6b255 100644
--- a/java/res/xml/rowkeys_hebrew3.xml
+++ b/java/res/xml/rowkeys_hebrew3.xml
@@ -24,36 +24,36 @@
+ latin:keySpec="ס" />
+ latin:keySpec="ב" />
+ latin:keySpec="ה" />
+ latin:keySpec="נ" />
+ latin:keySpec="מ" />
diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml
index c0b3cb913..914618a76 100644
--- a/java/res/xml/rowkeys_hindi1.xml
+++ b/java/res/xml/rowkeys_hindi1.xml
@@ -28,38 +28,38 @@
@@ -143,7 +143,7 @@
U+096C: "६" DEVANAGARI DIGIT SIX
U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA -->
@@ -161,7 +161,7 @@
U+0917/U+0952: "ग॒" DEVANAGARI LETTER GA/DEVANAGARI STRESS SIGN ANUDATTA
U+096E: "८" DEVANAGARI DIGIT EIGHT -->
@@ -179,7 +179,7 @@
U+091C/U+093C: "ज़" DEVANAGARI LETTER JA/DEVANAGARI SIGN NUKTA
U+0966: "०" DEVANAGARI DIGIT ZERO -->
diff --git a/java/res/xml/rowkeys_hindi2.xml b/java/res/xml/rowkeys_hindi2.xml
index 70ac66ee4..7ba4ee1ec 100644
--- a/java/res/xml/rowkeys_hindi2.xml
+++ b/java/res/xml/rowkeys_hindi2.xml
@@ -30,7 +30,7 @@
U+0911: "ऑ" DEVANAGARI LETTER CANDRA O
U+0912: "ऒ" DEVANAGARI LETTER SHORT O -->
@@ -133,35 +133,35 @@
latin:keyStyle="baseKeyDevanagariVowelSignU" />
diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml
index 136bc5f22..a9be47266 100644
--- a/java/res/xml/rowkeys_hindi3.xml
+++ b/java/res/xml/rowkeys_hindi3.xml
@@ -27,7 +27,7 @@
>
+ latin:keySpec="ऩ" />
@@ -76,7 +76,7 @@
diff --git a/java/res/xml/rowkeys_khmer2.xml b/java/res/xml/rowkeys_khmer2.xml
index 801f23ff6..4146895f7 100644
--- a/java/res/xml/rowkeys_khmer2.xml
+++ b/java/res/xml/rowkeys_khmer2.xml
@@ -28,106 +28,106 @@
diff --git a/java/res/xml/rowkeys_khmer3.xml b/java/res/xml/rowkeys_khmer3.xml
index f35ba5c56..7a2efa7da 100644
--- a/java/res/xml/rowkeys_khmer3.xml
+++ b/java/res/xml/rowkeys_khmer3.xml
@@ -27,109 +27,109 @@
>
diff --git a/java/res/xml/rowkeys_khmer4.xml b/java/res/xml/rowkeys_khmer4.xml
index 598aed8d5..5523d86b7 100644
--- a/java/res/xml/rowkeys_khmer4.xml
+++ b/java/res/xml/rowkeys_khmer4.xml
@@ -27,86 +27,86 @@
>
+ latin:keySpec="\?" />
diff --git a/java/res/xml/rowkeys_lao1.xml b/java/res/xml/rowkeys_lao1.xml
index fa1ad97d8..a5085a540 100644
--- a/java/res/xml/rowkeys_lao1.xml
+++ b/java/res/xml/rowkeys_lao1.xml
@@ -27,58 +27,58 @@
>
diff --git a/java/res/xml/rowkeys_lao2.xml b/java/res/xml/rowkeys_lao2.xml
index fca58ac0e..67c474f98 100644
--- a/java/res/xml/rowkeys_lao2.xml
+++ b/java/res/xml/rowkeys_lao2.xml
@@ -27,100 +27,100 @@
>
+ latin:keySpec="_" />
+ latin:keySpec="+" />
+ latin:keySpec="”" />
diff --git a/java/res/xml/rowkeys_lao3.xml b/java/res/xml/rowkeys_lao3.xml
index 2a6c2d1dd..172716dde 100644
--- a/java/res/xml/rowkeys_lao3.xml
+++ b/java/res/xml/rowkeys_lao3.xml
@@ -27,84 +27,84 @@
>
+ latin:keySpec=";" />
+ latin:keySpec="." />
+ latin:keySpec="," />
+ latin:keySpec=":" />
+ latin:keySpec="!" />
+ latin:keySpec="\?" />
+ latin:keySpec="%" />
+ latin:keySpec="=" />
+ latin:keySpec="“" />
+ latin:keySpec="“" />
diff --git a/java/res/xml/rowkeys_lao4.xml b/java/res/xml/rowkeys_lao4.xml
index fae9cc923..ed4b9b1f1 100644
--- a/java/res/xml/rowkeys_lao4.xml
+++ b/java/res/xml/rowkeys_lao4.xml
@@ -27,76 +27,76 @@
>
+ latin:keySpec="₭" />
+ latin:keySpec="(" />
+ latin:keySpec="\@" />
+ latin:keySpec="$" />
+ latin:keySpec=")" />
diff --git a/java/res/xml/rowkeys_mongolian1.xml b/java/res/xml/rowkeys_mongolian1.xml
index 6c8c8e2fd..4d3375545 100644
--- a/java/res/xml/rowkeys_mongolian1.xml
+++ b/java/res/xml/rowkeys_mongolian1.xml
@@ -23,61 +23,61 @@
>
+ latin:keySpec="к" />
diff --git a/java/res/xml/rowkeys_mongolian2.xml b/java/res/xml/rowkeys_mongolian2.xml
index a8aa00620..f11f4f230 100644
--- a/java/res/xml/rowkeys_mongolian2.xml
+++ b/java/res/xml/rowkeys_mongolian2.xml
@@ -23,35 +23,35 @@
>
+ latin:keySpec="й" />
+ latin:keySpec="ы" />
+ latin:keySpec="б" />
+ latin:keySpec="ө" />
+ latin:keySpec="а" />
+ latin:keySpec="х" />
+ latin:keySpec="р" />
+ latin:keySpec="о" />
+ latin:keySpec="л" />
+ latin:keySpec="д" />
+ latin:keySpec="п" />
diff --git a/java/res/xml/rowkeys_mongolian3.xml b/java/res/xml/rowkeys_mongolian3.xml
index dc80c37ab..cf57d1c2a 100644
--- a/java/res/xml/rowkeys_mongolian3.xml
+++ b/java/res/xml/rowkeys_mongolian3.xml
@@ -23,35 +23,35 @@
>
+ latin:keySpec="я" />
+ latin:keySpec="ч" />
+ latin:keySpec="с" />
+ latin:keySpec="м" />
+ latin:keySpec="и" />
+ latin:keySpec="т" />
diff --git a/java/res/xml/rowkeys_nepali_romanized1.xml b/java/res/xml/rowkeys_nepali_romanized1.xml
index 408a96648..3c082c2fe 100644
--- a/java/res/xml/rowkeys_nepali_romanized1.xml
+++ b/java/res/xml/rowkeys_nepali_romanized1.xml
@@ -27,11 +27,11 @@
>
@@ -85,7 +85,7 @@
U+0967: "१" DEVANAGARI DIGIT ONE
U+093C: "़" DEVANAGARI SIGN NUKTA -->
@@ -164,13 +164,13 @@
diff --git a/java/res/xml/rowkeys_nepali_romanized2.xml b/java/res/xml/rowkeys_nepali_romanized2.xml
index 66359ffb5..561ae6c93 100644
--- a/java/res/xml/rowkeys_nepali_romanized2.xml
+++ b/java/res/xml/rowkeys_nepali_romanized2.xml
@@ -27,43 +27,43 @@
>
diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml
index 166d028a3..232d96e02 100644
--- a/java/res/xml/rowkeys_nepali_romanized3.xml
+++ b/java/res/xml/rowkeys_nepali_romanized3.xml
@@ -27,15 +27,15 @@
>
diff --git a/java/res/xml/rowkeys_nepali_traditional2.xml b/java/res/xml/rowkeys_nepali_traditional2.xml
index 45620a9d7..5ea14ea0d 100644
--- a/java/res/xml/rowkeys_nepali_traditional2.xml
+++ b/java/res/xml/rowkeys_nepali_traditional2.xml
@@ -27,15 +27,15 @@
>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right3.xml b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
index b2e01e481..d6a74d46a 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_right3.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
@@ -32,7 +32,7 @@
latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right5.xml b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
index 87f061610..a34f40097 100644
--- a/java/res/xml/rowkeys_nepali_traditional3_right5.xml
+++ b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
@@ -32,7 +32,7 @@
latin:keyboardLayout="@xml/key_devanagari_sign_anusvara" />
+ latin:keySpec="\?" />
diff --git a/java/res/xml/rowkeys_pcqwerty1_shift.xml b/java/res/xml/rowkeys_pcqwerty1_shift.xml
index 718acfd24..b9597c066 100644
--- a/java/res/xml/rowkeys_pcqwerty1_shift.xml
+++ b/java/res/xml/rowkeys_pcqwerty1_shift.xml
@@ -22,39 +22,39 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="~" />
+ latin:keySpec="\@" />
+ latin:keySpec="\#" />
+ latin:keySpec="^" />
+ latin:keySpec="&" />
+ latin:keySpec="(" />
+ latin:keySpec=")" />
+ latin:keySpec="_" />
diff --git a/java/res/xml/rowkeys_qwerty1.xml b/java/res/xml/rowkeys_qwerty1.xml
index e7c9b590b..7ebde8d00 100644
--- a/java/res/xml/rowkeys_qwerty1.xml
+++ b/java/res/xml/rowkeys_qwerty1.xml
@@ -22,52 +22,52 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_qwerty2.xml b/java/res/xml/rowkeys_qwerty2.xml
index d9777d920..0700ccecd 100644
--- a/java/res/xml/rowkeys_qwerty2.xml
+++ b/java/res/xml/rowkeys_qwerty2.xml
@@ -22,29 +22,29 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="f" />
diff --git a/java/res/xml/rowkeys_qwerty3.xml b/java/res/xml/rowkeys_qwerty3.xml
index b70fd729f..b48606c25 100644
--- a/java/res/xml/rowkeys_qwerty3.xml
+++ b/java/res/xml/rowkeys_qwerty3.xml
@@ -22,22 +22,22 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="b" />
+ latin:keySpec="m" />
diff --git a/java/res/xml/rowkeys_qwertz1.xml b/java/res/xml/rowkeys_qwertz1.xml
index d87f03ddc..61ce97b83 100644
--- a/java/res/xml/rowkeys_qwertz1.xml
+++ b/java/res/xml/rowkeys_qwertz1.xml
@@ -22,51 +22,51 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_qwertz3.xml b/java/res/xml/rowkeys_qwertz3.xml
index 9e39fe08e..55a8ffa18 100644
--- a/java/res/xml/rowkeys_qwertz3.xml
+++ b/java/res/xml/rowkeys_qwertz3.xml
@@ -22,21 +22,21 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="x" />
+ latin:keySpec="b" />
+ latin:keySpec="m" />
diff --git a/java/res/xml/rowkeys_south_slavic1.xml b/java/res/xml/rowkeys_south_slavic1.xml
index 6117d46f1..8b1d696b7 100644
--- a/java/res/xml/rowkeys_south_slavic1.xml
+++ b/java/res/xml/rowkeys_south_slavic1.xml
@@ -23,56 +23,56 @@
>
+ latin:keySpec="ш" />
diff --git a/java/res/xml/rowkeys_south_slavic2.xml b/java/res/xml/rowkeys_south_slavic2.xml
index 88e894053..fa2426442 100644
--- a/java/res/xml/rowkeys_south_slavic2.xml
+++ b/java/res/xml/rowkeys_south_slavic2.xml
@@ -23,34 +23,34 @@
>
+ latin:keySpec="а" />
+ latin:keySpec="с" />
+ latin:keySpec="д" />
+ latin:keySpec="ф" />
+ latin:keySpec="г" />
+ latin:keySpec="х" />
+ latin:keySpec="ј" />
+ latin:keySpec="к" />
+ latin:keySpec="л" />
+ latin:keySpec="ч" />
+ latin:keySpec="!text/keylabel_for_south_slavic_row2_11" />
diff --git a/java/res/xml/rowkeys_south_slavic3.xml b/java/res/xml/rowkeys_south_slavic3.xml
index b01550911..8b54ec8c1 100644
--- a/java/res/xml/rowkeys_south_slavic3.xml
+++ b/java/res/xml/rowkeys_south_slavic3.xml
@@ -22,28 +22,28 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="!text/keylabel_for_south_slavic_row3_1" />
+ latin:keySpec="џ" />
+ latin:keySpec="ц" />
+ latin:keySpec="в" />
+ latin:keySpec="б" />
+ latin:keySpec="н" />
+ latin:keySpec="м" />
+ latin:keySpec="!text/keylabel_for_south_slavic_row3_8" />
+ latin:keySpec="ж" />
diff --git a/java/res/xml/rowkeys_spanish2.xml b/java/res/xml/rowkeys_spanish2.xml
index 335dff33c..68632fd2c 100644
--- a/java/res/xml/rowkeys_spanish2.xml
+++ b/java/res/xml/rowkeys_spanish2.xml
@@ -25,5 +25,5 @@
latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+ latin:keySpec="!text/keylabel_for_spanish_row2_10" />
diff --git a/java/res/xml/rowkeys_swiss1.xml b/java/res/xml/rowkeys_swiss1.xml
index e3b842619..458771d0c 100644
--- a/java/res/xml/rowkeys_swiss1.xml
+++ b/java/res/xml/rowkeys_swiss1.xml
@@ -24,6 +24,6 @@
diff --git a/java/res/xml/rowkeys_swiss2.xml b/java/res/xml/rowkeys_swiss2.xml
index 5364a448c..0c25fe806 100644
--- a/java/res/xml/rowkeys_swiss2.xml
+++ b/java/res/xml/rowkeys_swiss2.xml
@@ -24,9 +24,9 @@
diff --git a/java/res/xml/rowkeys_symbols1.xml b/java/res/xml/rowkeys_symbols1.xml
index 6e2f92dd9..b35b18079 100644
--- a/java/res/xml/rowkeys_symbols1.xml
+++ b/java/res/xml/rowkeys_symbols1.xml
@@ -22,43 +22,43 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
diff --git a/java/res/xml/rowkeys_symbols2.xml b/java/res/xml/rowkeys_symbols2.xml
index 76cbf6259..fe8653d1c 100644
--- a/java/res/xml/rowkeys_symbols2.xml
+++ b/java/res/xml/rowkeys_symbols2.xml
@@ -28,36 +28,36 @@
+ latin:keySpec="\@" />
+ latin:keySpec="\#" />
+ latin:keySpec="&" />
diff --git a/java/res/xml/rowkeys_symbols3.xml b/java/res/xml/rowkeys_symbols3.xml
index 43fe1082c..01ca0301d 100644
--- a/java/res/xml/rowkeys_symbols3.xml
+++ b/java/res/xml/rowkeys_symbols3.xml
@@ -22,7 +22,7 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec=":" />
diff --git a/java/res/xml/rowkeys_symbols_shift1.xml b/java/res/xml/rowkeys_symbols_shift1.xml
index 6013493e5..7cb3213f0 100644
--- a/java/res/xml/rowkeys_symbols_shift1.xml
+++ b/java/res/xml/rowkeys_symbols_shift1.xml
@@ -22,35 +22,35 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="~" />
+ latin:keySpec="`" />
+ latin:keySpec="|" />
+ latin:keySpec="√" />
+ latin:keySpec="÷" />
+ latin:keySpec="×" />
+ latin:keySpec="∆" />
diff --git a/java/res/xml/rowkeys_symbols_shift2.xml b/java/res/xml/rowkeys_symbols_shift2.xml
index 36f92143f..39a58030b 100644
--- a/java/res/xml/rowkeys_symbols_shift2.xml
+++ b/java/res/xml/rowkeys_symbols_shift2.xml
@@ -34,19 +34,19 @@
U+2190: "←" LEFTWARDS ARROW
U+2192: "→" RIGHTWARDS ARROW -->
diff --git a/java/res/xml/rowkeys_symbols_shift3.xml b/java/res/xml/rowkeys_symbols_shift3.xml
index 5fe1c7450..92ff97bb0 100644
--- a/java/res/xml/rowkeys_symbols_shift3.xml
+++ b/java/res/xml/rowkeys_symbols_shift3.xml
@@ -22,19 +22,19 @@
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ latin:keySpec="\\" />
+ latin:keySpec="©" />
+ latin:keySpec="®" />
+ latin:keySpec="™" />
+ latin:keySpec="℅" />
diff --git a/java/res/xml/rowkeys_thai1.xml b/java/res/xml/rowkeys_thai1.xml
index 805822f06..e42bda391 100644
--- a/java/res/xml/rowkeys_thai1.xml
+++ b/java/res/xml/rowkeys_thai1.xml
@@ -26,76 +26,76 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
>
+ latin:keySpec="+" />
+ latin:keySpec="/" />
+ latin:keySpec="_" />
+ latin:keySpec=""" />
+ latin:keySpec="," />
diff --git a/java/res/xml/rowkeys_thai3.xml b/java/res/xml/rowkeys_thai3.xml
index e326f9f57..4af4d232b 100644
--- a/java/res/xml/rowkeys_thai3.xml
+++ b/java/res/xml/rowkeys_thai3.xml
@@ -27,103 +27,103 @@
>
+ latin:keySpec="." />
diff --git a/java/res/xml/rowkeys_thai4.xml b/java/res/xml/rowkeys_thai4.xml
index 1564d9753..332d09d7e 100644
--- a/java/res/xml/rowkeys_thai4.xml
+++ b/java/res/xml/rowkeys_thai4.xml
@@ -26,92 +26,92 @@
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
>
+ latin:keySpec="(" />
+ latin:keySpec=")" />
+ latin:keySpec="\?" />
diff --git a/java/res/xml/rows_number_normal.xml b/java/res/xml/rows_number_normal.xml
index c461eb009..8c9267a53 100644
--- a/java/res/xml/rows_number_normal.xml
+++ b/java/res/xml/rows_number_normal.xml
@@ -23,16 +23,16 @@
>
@@ -61,7 +61,7 @@
latin:mode="time|datetime"
>
@@ -77,13 +77,13 @@
diff --git a/java/res/xml/rows_phone.xml b/java/res/xml/rows_phone.xml
index 6f05e51be..03e45419a 100644
--- a/java/res/xml/rows_phone.xml
+++ b/java/res/xml/rows_phone.xml
@@ -33,7 +33,7 @@
@@ -68,7 +68,7 @@
diff --git a/java/res/xml/rows_phone_symbols.xml b/java/res/xml/rows_phone_symbols.xml
index 8c10a2d71..983bfb5c8 100644
--- a/java/res/xml/rows_phone_symbols.xml
+++ b/java/res/xml/rows_phone_symbols.xml
@@ -27,16 +27,16 @@
latin:keyboardLayout="@xml/key_styles_number" />
@@ -65,7 +65,7 @@
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index ed691f874..1c8bada15 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -315,7 +315,7 @@ public class Key implements Comparable {
}
mActionFlags = actionFlags;
- final String keySpec = style.getString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
+ final String keySpec = style.getString(keyAttr, R.styleable.Keyboard_Key_keySpec);
if (TextUtils.isEmpty(keySpec)) {
throw new RuntimeException("Empty keySpec");
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
index 8ce820cf3..209966606 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
@@ -42,6 +42,7 @@ import com.android.inputmethod.latin.utils.StringUtils;
* Note that the '\' is also parsed by XML parser and {@link MoreKeySpec#splitKeySpecs(String)}
* as well.
*/
+// TODO: Rename to KeySpec and make this class to the key specification object.
public final class KeySpecParser {
// Constants for parsing.
private static final char BACKSLASH = Constants.CODE_BACKSLASH;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
index f6180e32a..700c9b07c 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
@@ -136,7 +136,7 @@ public final class KeyStylesSet {
public void readKeyAttributes(final TypedArray keyAttr) {
// TODO: Currently not all Key attributes can be declared as style.
readString(keyAttr, R.styleable.Keyboard_Key_altCode);
- readString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
+ readString(keyAttr, R.styleable.Keyboard_Key_keySpec);
readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
readStringArray(keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
index 4322345cb..377ec092a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
@@ -460,8 +460,8 @@ public final class KeyboardTextsSet {
/* 128 */ "!icon/shortcut_key|!code/key_shortcut",
/* 129 */ "!hasLabels!,!text/label_next_key|!code/key_action_next",
/* 130 */ "!hasLabels!,!text/label_previous_key|!code/key_action_previous",
- // Label for "switch to more symbol" modifier key. Must be short to fit on key!
- /* 131 */ "= \\ <",
+ // Label for "switch to more symbol" modifier key ("= \ <"). Must be short to fit on key!
+ /* 131 */ "= \\\\ <",
// Label for "switch to more symbol" modifier key on tablets. Must be short to fit on key!
/* 132 */ "~ [ <",
// Label for "Tab" key. Must be short to fit on key!
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
index 0551e9e98..bd440b875 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
@@ -38,6 +38,7 @@ import java.util.Locale;
* Note that the '\' is also parsed by XML parser and {@link MoreKeySpec#splitKeySpecs(String)}
* as well.
*/
+// TODO: Should extend the key specification object.
public final class MoreKeySpec {
public final int mCode;
public final String mLabel;