Merge "Support addtionalMoreKeys"

This commit is contained in:
Tadashi G. Takaoka 2012-01-30 00:11:29 -08:00 committed by Android (Google) Code Review
commit 3b0f2bf169
58 changed files with 568 additions and 358 deletions

View file

@ -50,18 +50,18 @@
<string name="keylabel_for_symbols_8">"٨"</string> <string name="keylabel_for_symbols_8">"٨"</string>
<string name="keylabel_for_symbols_9">"٩"</string> <string name="keylabel_for_symbols_9">"٩"</string>
<string name="keylabel_for_symbols_0">"٠"</string> <string name="keylabel_for_symbols_0">"٠"</string>
<string name="more_keys_for_symbols_1">1</string> <string name="additional_more_keys_for_symbols_1">1</string>
<string name="more_keys_for_symbols_2">2</string> <string name="additional_more_keys_for_symbols_2">2</string>
<string name="more_keys_for_symbols_3">3</string> <string name="additional_more_keys_for_symbols_3">3</string>
<string name="more_keys_for_symbols_4">4</string> <string name="additional_more_keys_for_symbols_4">4</string>
<string name="more_keys_for_symbols_5">5</string> <string name="additional_more_keys_for_symbols_5">5</string>
<string name="more_keys_for_symbols_6">6</string> <string name="additional_more_keys_for_symbols_6">6</string>
<string name="more_keys_for_symbols_7">7</string> <string name="additional_more_keys_for_symbols_7">7</string>
<string name="more_keys_for_symbols_8">8</string> <string name="additional_more_keys_for_symbols_8">8</string>
<string name="more_keys_for_symbols_9">9</string> <string name="additional_more_keys_for_symbols_9">9</string>
<!-- \u066b: ARABIC DECIMAL SEPARATOR <!-- \u066b: ARABIC DECIMAL SEPARATOR
\u066c: ARABIC THOUSANDS SEPARATOR --> \u066c: ARABIC THOUSANDS SEPARATOR -->
<string name="more_keys_for_symbols_0">0,\u066b,\u066c</string> <string name="additional_more_keys_for_symbols_0">0,\u066b,\u066c</string>
<string name="keylabel_for_comma">\u060c</string> <string name="keylabel_for_comma">\u060c</string>
<string name="keylabel_for_f1">\u060c</string> <string name="keylabel_for_f1">\u060c</string>
<string name="keylabel_for_symbols_question">\u061f</string> <string name="keylabel_for_symbols_question">\u061f</string>

View file

@ -19,10 +19,10 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,á,ä,â,ã,å,ą,æ,ā,ª</string> <string name="more_keys_for_a">à,á,ä,â,ã,å,ą,æ,ā,ª</string>
<string name="more_keys_for_e">3,è,é,ë,ê,ę,ė,ē</string> <string name="more_keys_for_e">è,é,ë,ê,ę,ė,ē</string>
<string name="more_keys_for_i">8,í,ï,ì,î,į,ī</string> <string name="more_keys_for_i">í,ï,ì,î,į,ī</string>
<string name="more_keys_for_o">9,ò,ó,ö,ô,õ,ø,œ,ō,º</string> <string name="more_keys_for_o">ò,ó,ö,ô,õ,ø,œ,ō,º</string>
<string name="more_keys_for_u">7,ú,ü,ù,û,ū</string> <string name="more_keys_for_u">ú,ü,ù,û,ū</string>
<string name="more_keys_for_n">ñ,ń</string> <string name="more_keys_for_n">ñ,ń</string>
<string name="more_keys_for_c">ç,ć,č</string> <string name="more_keys_for_c">ç,ć,č</string>
<string name="more_keys_for_l">ŀ,ł</string> <string name="more_keys_for_l">ŀ,ł</string>

View file

@ -19,16 +19,16 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string> <string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string>
<string name="more_keys_for_e">3,é,ě,è,ê,ë,ę,ė,ē</string> <string name="more_keys_for_e">é,ě,è,ê,ë,ę,ė,ē</string>
<string name="more_keys_for_i">8,í,î,ï,ì,į,ī</string> <string name="more_keys_for_i">í,î,ï,ì,į,ī</string>
<string name="more_keys_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string> <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string>
<string name="more_keys_for_u">7,ú,ů,û,ü,ù,ū</string> <string name="more_keys_for_u">ú,ů,û,ü,ù,ū</string>
<string name="more_keys_for_s">š,ß,ś</string> <string name="more_keys_for_s">š,ß,ś</string>
<string name="more_keys_for_n">ň,ñ,ń</string> <string name="more_keys_for_n">ň,ñ,ń</string>
<string name="more_keys_for_c">č,ç,ć</string> <string name="more_keys_for_c">č,ç,ć</string>
<string name="more_keys_for_y">ý,ÿ</string> <string name="more_keys_for_y">ý,ÿ</string>
<string name="more_keys_for_d">ď</string> <string name="more_keys_for_d">ď</string>
<string name="more_keys_for_r">4,ř</string> <string name="more_keys_for_r">ř</string>
<string name="more_keys_for_t">5,ť</string> <string name="more_keys_for_t">ť</string>
<string name="more_keys_for_z">6,ž,ź,ż</string> <string name="more_keys_for_z">ž,ź,ż</string>
</resources> </resources>

View file

@ -19,13 +19,13 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,ä,à,â,ã,ā</string> <string name="more_keys_for_a">á,ä,à,â,ã,ā</string>
<string name="more_keys_for_e">3,é,ë</string> <string name="more_keys_for_e">é,ë</string>
<string name="more_keys_for_i">8,í,ï</string> <string name="more_keys_for_i">í,ï</string>
<string name="more_keys_for_o">9,ó,ô,ò,õ,œ,ō</string> <string name="more_keys_for_o">ó,ô,ò,õ,œ,ō</string>
<string name="more_keys_for_u">7,ú,ü,û,ù,ū</string> <string name="more_keys_for_u">ú,ü,û,ù,ū</string>
<string name="more_keys_for_s">ß,ś,š</string> <string name="more_keys_for_s">ß,ś,š</string>
<string name="more_keys_for_n">ñ,ń</string> <string name="more_keys_for_n">ñ,ń</string>
<string name="more_keys_for_y">6,ý,ÿ</string> <string name="more_keys_for_y">ý,ÿ</string>
<string name="more_keys_for_d">ð</string> <string name="more_keys_for_d">ð</string>
<string name="more_keys_for_l">ł</string> <string name="more_keys_for_l">ł</string>
<string name="keylabel_for_scandinavia_row1_11">å</string> <string name="keylabel_for_scandinavia_row1_11">å</string>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2011, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_y">6</string>
<string name="more_keys_for_z"></string>
</resources>

View file

@ -19,11 +19,9 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">ä,â,à,á,æ,ã,å,ā</string> <string name="more_keys_for_a">ä,â,à,á,æ,ã,å,ā</string>
<string name="more_keys_for_e">3,ė</string> <string name="more_keys_for_e">ė</string>
<string name="more_keys_for_o">9,ö,ô,ò,ó,õ,œ,ø,ō</string> <string name="more_keys_for_o">ö,ô,ò,ó,õ,œ,ø,ō</string>
<string name="more_keys_for_u">7,ü,û,ù,ú,ū</string> <string name="more_keys_for_u">ü,û,ù,ú,ū</string>
<string name="more_keys_for_s">ß,ś,š</string> <string name="more_keys_for_s">ß,ś,š</string>
<string name="more_keys_for_n">ñ,ń</string> <string name="more_keys_for_n">ñ,ń</string>
<string name="more_keys_for_y"></string>
<string name="more_keys_for_z">6</string>
</resources> </resources>

View file

@ -19,11 +19,11 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā</string> <string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā</string>
<string name="more_keys_for_e">3,è,é,ê,ë,ē</string> <string name="more_keys_for_e">è,é,ê,ë,ē</string>
<string name="more_keys_for_i">8,î,ï,í,ī,ì</string> <string name="more_keys_for_i">î,ï,í,ī,ì</string>
<string name="more_keys_for_o">9,ô,ö,ò,ó,œ,ø,ō,õ</string> <string name="more_keys_for_o">ô,ö,ò,ó,œ,ø,ō,õ</string>
<string name="more_keys_for_s">ß</string> <string name="more_keys_for_s">ß</string>
<string name="more_keys_for_u">7,û,ü,ù,ú,ū</string> <string name="more_keys_for_u">û,ü,ù,ú,ū</string>
<string name="more_keys_for_n">ñ</string> <string name="more_keys_for_n">ñ</string>
<string name="more_keys_for_c">ç</string> <string name="more_keys_for_c">ç</string>
</resources> </resources>

View file

@ -19,10 +19,10 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,à,ä,â,ã,å,ą,æ,ā,ª</string> <string name="more_keys_for_a">á,à,ä,â,ã,å,ą,æ,ā,ª</string>
<string name="more_keys_for_e">3,é,è,ë,ê,ę,ė,ē</string> <string name="more_keys_for_e">é,è,ë,ê,ę,ė,ē</string>
<string name="more_keys_for_i">8,í,ï,ì,î,į,ī</string> <string name="more_keys_for_i">í,ï,ì,î,į,ī</string>
<string name="more_keys_for_o">9,ó,ò,ö,ô,õ,ø,œ,ō,º</string> <string name="more_keys_for_o">ó,ò,ö,ô,õ,ø,œ,ō,º</string>
<string name="more_keys_for_u">7,ú,ü,ù,û,ū</string> <string name="more_keys_for_u">ú,ü,ù,û,ū</string>
<string name="more_keys_for_n">ñ,ń</string> <string name="more_keys_for_n">ñ,ń</string>
<string name="more_keys_for_c">ç,ć,č</string> <string name="more_keys_for_c">ç,ć,č</string>
<string name="more_keys_for_punctuation">"\\,,\?,!,¿,¡,:,-,\',\",),(,/,;,+,&amp;,\@"</string> <string name="more_keys_for_punctuation">"\\,,\?,!,¿,¡,:,-,\',\",),(,/,;,+,&amp;,\@"</string>

View file

@ -19,17 +19,17 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">ä,ā,à,á,â,ã,å,æ,ą</string> <string name="more_keys_for_a">ä,ā,à,á,â,ã,å,æ,ą</string>
<string name="more_keys_for_e">3,ē,è,ė,é,ê,ë,ę,ě</string> <string name="more_keys_for_e">ē,è,ė,é,ê,ë,ę,ě</string>
<string name="more_keys_for_i">8,ī,ì,į,í,î,ï,ı</string> <string name="more_keys_for_i">ī,ì,į,í,î,ï,ı</string>
<string name="more_keys_for_o">9,ö,õ,ò,ó,ô,œ,ő,ø</string> <string name="more_keys_for_o">ö,õ,ò,ó,ô,œ,ő,ø</string>
<string name="more_keys_for_u">7,ü,ū,ų,ù,ú,û,ů,ű</string> <string name="more_keys_for_u">ü,ū,ų,ù,ú,û,ů,ű</string>
<string name="more_keys_for_s">š,ß,ś,ş</string> <string name="more_keys_for_s">š,ß,ś,ş</string>
<string name="more_keys_for_n">ņ,ñ,ń,ń</string> <string name="more_keys_for_n">ņ,ñ,ń,ń</string>
<string name="more_keys_for_c">č,ç,ć</string> <string name="more_keys_for_c">č,ç,ć</string>
<string name="more_keys_for_y">6,ý,ÿ</string> <string name="more_keys_for_y">ý,ÿ</string>
<string name="more_keys_for_d">ď</string> <string name="more_keys_for_d">ď</string>
<string name="more_keys_for_r">4,ŗ,ř,ŕ</string> <string name="more_keys_for_r">ŗ,ř,ŕ</string>
<string name="more_keys_for_t">5,ţ,ť</string> <string name="more_keys_for_t">ţ,ť</string>
<string name="more_keys_for_z">ž,ż,ź</string> <string name="more_keys_for_z">ž,ż,ź</string>
<string name="more_keys_for_k">ķ</string> <string name="more_keys_for_k">ķ</string>
<string name="more_keys_for_l">ļ,ł,ĺ,ľ</string> <string name="more_keys_for_l">ļ,ł,ĺ,ľ</string>

View file

@ -19,8 +19,8 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">æ,à,á,â,ã,ā</string> <string name="more_keys_for_a">æ,à,á,â,ã,ā</string>
<string name="more_keys_for_o">9,ø,ô,ò,ó,õ,œ,ō</string> <string name="more_keys_for_o">ø,ô,ò,ó,õ,œ,ō</string>
<string name="more_keys_for_u">7,ü</string> <string name="more_keys_for_u">ü</string>
<string name="more_keys_for_s">š,ß,ś</string> <string name="more_keys_for_s">š,ß,ś</string>
<string name="more_keys_for_z">ž,ź,ż</string> <string name="more_keys_for_z">ž,ź,ż</string>
<string name="keylabel_for_scandinavia_row1_11">å</string> <string name="keylabel_for_scandinavia_row1_11">å</string>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2011, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,â,æ,á,ä,ã,å,ā,ª</string>
<string name="more_keys_for_q">1</string>
<string name="more_keys_for_w">2</string>
<string name="more_keys_for_z"></string>
</resources>

View file

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2011, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,â,æ,á,ä,ã,å,ā,ª</string>
<string name="more_keys_for_y">ÿ</string>
<string name="more_keys_for_q">1</string>
<string name="more_keys_for_w">2</string>
<string name="more_keys_for_z">6</string>
</resources>

View file

@ -18,14 +18,11 @@
*/ */
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,â,1,æ,á,ä,ã,å,ā,ª</string> <string name="more_keys_for_a">à,â,%,æ,á,ä,ã,å,ā,ª</string>
<string name="more_keys_for_e">é,è,ê,ë,3,ę,ė,ē</string> <string name="more_keys_for_e">é,è,ê,ë,%,ę,ė,ē</string>
<string name="more_keys_for_i">î,8,ï,ì,í,į,ī</string> <string name="more_keys_for_i">î,%,ï,ì,í,į,ī</string>
<string name="more_keys_for_o">ô,œ,9,ö,ò,ó,õ,ø,ō,º</string> <string name="more_keys_for_o">ô,œ,%,ö,ò,ó,õ,ø,ō,º</string>
<string name="more_keys_for_u">ù,û,7,ü,ú,ū</string> <string name="more_keys_for_u">ù,û,%,ü,ú,ū</string>
<string name="more_keys_for_c">ç,ć,č</string> <string name="more_keys_for_c">ç,ć,č</string>
<string name="more_keys_for_y">6,ÿ</string> <string name="more_keys_for_y">%,ÿ</string>
<string name="more_keys_for_q"></string>
<string name="more_keys_for_w"></string>
<string name="more_keys_for_z">2</string>
</resources> </resources>

View file

@ -21,7 +21,7 @@
<string name="more_keys_for_s">š,ś,ß</string> <string name="more_keys_for_s">š,ś,ß</string>
<string name="more_keys_for_n">ñ,ń</string> <string name="more_keys_for_n">ñ,ń</string>
<string name="more_keys_for_y"></string> <string name="more_keys_for_y"></string>
<string name="more_keys_for_z">6,ž,ź,ż</string> <string name="more_keys_for_z">ž,ź,ż</string>
<string name="more_keys_for_c">č,ć,ç</string> <string name="more_keys_for_c">č,ć,ç</string>
<string name="more_keys_for_d">đ</string> <string name="more_keys_for_d">đ</string>
</resources> </resources>

View file

@ -19,10 +19,8 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string> <string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string>
<string name="more_keys_for_e">3,é,è,ê,ë,ę,ė,ē</string> <string name="more_keys_for_e">é,è,ê,ë,ę,ė,ē</string>
<string name="more_keys_for_i">8,í,î,ï,ì,į,ī</string> <string name="more_keys_for_i">í,î,ï,ì,į,ī</string>
<string name="more_keys_for_o">9,ó,ö,ő,ô,ò,õ,œ,ø,ō</string> <string name="more_keys_for_o">ó,ö,ő,ô,ò,õ,œ,ø,ō</string>
<string name="more_keys_for_u">7,ú,ü,ű,û,ù,ū</string> <string name="more_keys_for_u">ú,ü,ű,û,ù,ū</string>
<string name="more_keys_for_y"></string>
<string name="more_keys_for_z">6</string>
</resources> </resources>

View file

@ -19,8 +19,8 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā,ª</string> <string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā,ª</string>
<string name="more_keys_for_e">3,è,é,ê,ë,ę,ė,ē</string> <string name="more_keys_for_e">è,é,ê,ë,ę,ė,ē</string>
<string name="more_keys_for_i">8,ì,í,î,ï,į,ī</string> <string name="more_keys_for_i">ì,í,î,ï,į,ī</string>
<string name="more_keys_for_o">9,ò,ó,ô,ö,õ,œ,ø,ō,º</string> <string name="more_keys_for_o">ò,ó,ô,ö,õ,œ,ø,ō,º</string>
<string name="more_keys_for_u">7,ù,ú,û,ü,ū</string> <string name="more_keys_for_u">ù,ú,û,ü,ū</string>
</resources> </resources>

View file

@ -18,7 +18,7 @@
*/ */
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_slavic_u">3,ү</string> <string name="more_keys_for_slavic_u">ү</string>
<string name="more_keys_for_slavic_en">6,ң</string> <string name="more_keys_for_slavic_en">ң</string>
<string name="more_keys_for_slavic_o">ө</string> <string name="more_keys_for_slavic_o">ө</string>
</resources> </resources>

View file

@ -19,17 +19,17 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">ą,ä,ā,à,á,â,ã,å,æ</string> <string name="more_keys_for_a">ą,ä,ā,à,á,â,ã,å,æ</string>
<string name="more_keys_for_e">3,ė,ę,ē,è,é,ê,ë,ě</string> <string name="more_keys_for_e">ė,ę,ē,è,é,ê,ë,ě</string>
<string name="more_keys_for_i">8,į,ī,ì,í,î,ï,ı</string> <string name="more_keys_for_i">į,ī,ì,í,î,ï,ı</string>
<string name="more_keys_for_o">9,ö,õ,ò,ó,ô,œ,ő,ø</string> <string name="more_keys_for_o">ö,õ,ò,ó,ô,œ,ő,ø</string>
<string name="more_keys_for_u">7,ū,ų,ü,ū,ù,ú,û,ů,ű</string> <string name="more_keys_for_u">ū,ų,ü,ū,ù,ú,û,ů,ű</string>
<string name="more_keys_for_s">š,ß,ś,ş</string> <string name="more_keys_for_s">š,ß,ś,ş</string>
<string name="more_keys_for_n">ņ,ñ,ń,ń</string> <string name="more_keys_for_n">ņ,ñ,ń,ń</string>
<string name="more_keys_for_c">č,ç,ć</string> <string name="more_keys_for_c">č,ç,ć</string>
<string name="more_keys_for_y">6,ý,ÿ</string> <string name="more_keys_for_y">ý,ÿ</string>
<string name="more_keys_for_d">ď</string> <string name="more_keys_for_d">ď</string>
<string name="more_keys_for_r">4,ŗ,ř,ŕ</string> <string name="more_keys_for_r">ŗ,ř,ŕ</string>
<string name="more_keys_for_t">5,ţ,ť</string> <string name="more_keys_for_t">ţ,ť</string>
<string name="more_keys_for_z">ž,ż,ź</string> <string name="more_keys_for_z">ž,ż,ź</string>
<string name="more_keys_for_k">ķ</string> <string name="more_keys_for_k">ķ</string>
<string name="more_keys_for_l">ļ,ł,ĺ,ľ</string> <string name="more_keys_for_l">ļ,ł,ĺ,ľ</string>

View file

@ -19,17 +19,17 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">ā,à,á,â,ã,ä,å,æ,ą</string> <string name="more_keys_for_a">ā,à,á,â,ã,ä,å,æ,ą</string>
<string name="more_keys_for_e">3,ē,ė,è,é,ê,ë,ę,ě</string> <string name="more_keys_for_e">ē,ė,è,é,ê,ë,ę,ě</string>
<string name="more_keys_for_i">8,ī,į,ì,í,î,ï,ı</string> <string name="more_keys_for_i">ī,į,ì,í,î,ï,ı</string>
<string name="more_keys_for_o">9,ò,ó,ô,õ,ö,œ,ő,ø</string> <string name="more_keys_for_o">ò,ó,ô,õ,ö,œ,ő,ø</string>
<string name="more_keys_for_u">7,ū,ų,ù,ú,û,ü,ů,ű</string> <string name="more_keys_for_u">ū,ų,ù,ú,û,ü,ů,ű</string>
<string name="more_keys_for_s">š,ß,ś,ş</string> <string name="more_keys_for_s">š,ß,ś,ş</string>
<string name="more_keys_for_n">ņ,ñ,ń,ń</string> <string name="more_keys_for_n">ņ,ñ,ń,ń</string>
<string name="more_keys_for_c">č,ç,ć</string> <string name="more_keys_for_c">č,ç,ć</string>
<string name="more_keys_for_y">6,ý,ÿ</string> <string name="more_keys_for_y">ý,ÿ</string>
<string name="more_keys_for_d">ď</string> <string name="more_keys_for_d">ď</string>
<string name="more_keys_for_r">4,ŗ,ř,ŕ</string> <string name="more_keys_for_r">ŗ,ř,ŕ</string>
<string name="more_keys_for_t">5,ţ,ť</string> <string name="more_keys_for_t">ţ,ť</string>
<string name="more_keys_for_z">ž,ż,ź</string> <string name="more_keys_for_z">ž,ż,ź</string>
<string name="more_keys_for_k">ķ</string> <string name="more_keys_for_k">ķ</string>
<string name="more_keys_for_l">ļ,ł,ĺ,ľ</string> <string name="more_keys_for_l">ļ,ł,ĺ,ľ</string>

View file

@ -19,9 +19,9 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,ä,á,â,ã,ā</string> <string name="more_keys_for_a">à,ä,á,â,ã,ā</string>
<string name="more_keys_for_e">3,é,è,ê,ë,ę,ė,ē</string> <string name="more_keys_for_e">é,è,ê,ë,ę,ė,ē</string>
<string name="more_keys_for_o">9,ô,ò,ó,ö,õ,œ,ō</string> <string name="more_keys_for_o">ô,ò,ó,ö,õ,œ,ō</string>
<string name="more_keys_for_u">7,ü,û,ù,ú,ū</string> <string name="more_keys_for_u">ü,û,ù,ú,ū</string>
<string name="keylabel_for_scandinavia_row1_11">å</string> <string name="keylabel_for_scandinavia_row1_11">å</string>
<string name="keylabel_for_scandinavia_row2_10">ø</string> <string name="keylabel_for_scandinavia_row2_10">ø</string>
<string name="keylabel_for_scandinavia_row2_11">æ</string> <string name="keylabel_for_scandinavia_row2_11">æ</string>

View file

@ -19,9 +19,9 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,ä,â,à,æ,ã,å,ā</string> <string name="more_keys_for_a">á,ä,â,à,æ,ã,å,ā</string>
<string name="more_keys_for_e">3,é,ë,ê,è,ę,ė,ē</string> <string name="more_keys_for_e">é,ë,ê,è,ę,ė,ē</string>
<string name="more_keys_for_i">8,í,ï,ì,î,į,ī</string> <string name="more_keys_for_i">í,ï,ì,î,į,ī</string>
<string name="more_keys_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string> <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string>
<string name="more_keys_for_u">7,ú,ü,û,ù,ū</string> <string name="more_keys_for_u">ú,ü,û,ù,ū</string>
<string name="more_keys_for_n">ñ,ń</string> <string name="more_keys_for_n">ñ,ń</string>
</resources> </resources>

View file

@ -19,8 +19,8 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">ą,á,à,â,ä,æ,ã,å,ā</string> <string name="more_keys_for_a">ą,á,à,â,ä,æ,ã,å,ā</string>
<string name="more_keys_for_e">3,ę,è,é,ê,ë,ė,ē</string> <string name="more_keys_for_e">ę,è,é,ê,ë,ė,ē</string>
<string name="more_keys_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string> <string name="more_keys_for_o">ó,ö,ô,ò,õ,œ,ø,ō</string>
<string name="more_keys_for_s">ś,ß,š</string> <string name="more_keys_for_s">ś,ß,š</string>
<string name="more_keys_for_n">ń,ñ</string> <string name="more_keys_for_n">ń,ñ</string>
<string name="more_keys_for_c">ć,ç,č</string> <string name="more_keys_for_c">ć,ç,č</string>

View file

@ -19,9 +19,9 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,ã,à,â,ä,å,æ,ª</string> <string name="more_keys_for_a">á,ã,à,â,ä,å,æ,ª</string>
<string name="more_keys_for_e">3,é,ê,è,ę,ė,ē,ë</string> <string name="more_keys_for_e">é,ê,è,ę,ė,ē,ë</string>
<string name="more_keys_for_i">8,í,î,ì,ï,į,ī</string> <string name="more_keys_for_i">í,î,ì,ï,į,ī</string>
<string name="more_keys_for_o">9,ó,õ,ô,ò,ö,œ,ø,ō,º</string> <string name="more_keys_for_o">ó,õ,ô,ò,ö,œ,ø,ō,º</string>
<string name="more_keys_for_u">7,ú,ü,ù,û,ū</string> <string name="more_keys_for_u">ú,ü,ù,û,ū</string>
<string name="more_keys_for_c">ç,č,ć</string> <string name="more_keys_for_c">ç,č,ć</string>
</resources> </resources>

View file

@ -18,5 +18,5 @@
*/ */
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_o">9,ò,ó,ö,ô,õ,œ,ø</string> <string name="more_keys_for_o">ò,ó,ö,ô,õ,œ,ø</string>
</resources> </resources>

View file

@ -19,7 +19,7 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">â,ã,ă,à,á,ä,æ,å,ā</string> <string name="more_keys_for_a">â,ã,ă,à,á,ä,æ,å,ā</string>
<string name="more_keys_for_i">8,î,ï,ì,í,į,ī</string> <string name="more_keys_for_i">î,ï,ì,í,į,ī</string>
<string name="more_keys_for_s">ș,ß,ś,š</string> <string name="more_keys_for_s">ș,ß,ś,š</string>
<string name="more_keys_for_t">5,ț</string> <string name="more_keys_for_t">ț</string>
</resources> </resources>

View file

@ -18,5 +18,5 @@
*/ */
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_slavic_ye">5,ё</string> <string name="more_keys_for_slavic_ye">ё</string>
</resources> </resources>

View file

@ -19,17 +19,17 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">á,ä,ā,à,â,ã,å,æ,ą</string> <string name="more_keys_for_a">á,ä,ā,à,â,ã,å,æ,ą</string>
<string name="more_keys_for_e">3,é,ě,ē,ė,è,ê,ë,ę</string> <string name="more_keys_for_e">é,ě,ē,ė,è,ê,ë,ę</string>
<string name="more_keys_for_i">8,í,ī,į,ì,î,ï,ı</string> <string name="more_keys_for_i">í,ī,į,ì,î,ï,ı</string>
<string name="more_keys_for_o">9,ô,ó,ö,ò,õ,œ,ő,ø</string> <string name="more_keys_for_o">ô,ó,ö,ò,õ,œ,ő,ø</string>
<string name="more_keys_for_u">7,ú,ů,ü,ū,ų,ù,û,ű</string> <string name="more_keys_for_u">ú,ů,ü,ū,ų,ù,û,ű</string>
<string name="more_keys_for_s">š,ß,ś,ş</string> <string name="more_keys_for_s">š,ß,ś,ş</string>
<string name="more_keys_for_n">ň,ņ,ñ,ń,ń</string> <string name="more_keys_for_n">ň,ņ,ñ,ń,ń</string>
<string name="more_keys_for_c">č,ç,ć</string> <string name="more_keys_for_c">č,ç,ć</string>
<string name="more_keys_for_y">6,ý,ÿ</string> <string name="more_keys_for_y">ý,ÿ</string>
<string name="more_keys_for_d">ď</string> <string name="more_keys_for_d">ď</string>
<string name="more_keys_for_r">4,ŕ,ř,ŗ</string> <string name="more_keys_for_r">ŕ,ř,ŗ</string>
<string name="more_keys_for_t">5,ť,ţ</string> <string name="more_keys_for_t">ť,ţ</string>
<string name="more_keys_for_z">ž,ż,ź</string> <string name="more_keys_for_z">ž,ż,ź</string>
<string name="more_keys_for_k">ķ</string> <string name="more_keys_for_k">ķ</string>
<string name="more_keys_for_l">ľ,ĺ,ļ,ł</string> <string name="more_keys_for_l">ľ,ĺ,ļ,ł</string>

View file

@ -18,9 +18,9 @@
*/ */
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_e">3,é,è,ê,ë,ę</string> <string name="more_keys_for_e">é,è,ê,ë,ę</string>
<string name="more_keys_for_o">9,œ,ô,ò,ó,õ,ō</string> <string name="more_keys_for_o">œ,ô,ò,ó,õ,ō</string>
<string name="more_keys_for_u">7,ü,û,ù,ú,ū</string> <string name="more_keys_for_u">ü,û,ù,ú,ū</string>
<string name="more_keys_for_s">ß,ś,š</string> <string name="more_keys_for_s">ß,ś,š</string>
<string name="keylabel_for_scandinavia_row1_11">å</string> <string name="keylabel_for_scandinavia_row1_11">å</string>
<string name="keylabel_for_scandinavia_row2_10">ö</string> <string name="keylabel_for_scandinavia_row2_10">ö</string>

View file

@ -24,7 +24,6 @@
<bool name="config_enable_show_voice_key_option">false</bool> <bool name="config_enable_show_voice_key_option">false</bool>
<bool name="config_enable_show_popup_on_keypress_option">false</bool> <bool name="config_enable_show_popup_on_keypress_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool> <bool name="config_enable_bigram_suggestions_option">false</bool>
<bool name="config_digit_more_keys_enabled">false</bool>
<!-- Whether or not Popup on key press is enabled by default --> <!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">false</bool> <bool name="config_default_popup_preview">false</bool>
<bool name="config_default_sound_enabled">true</bool> <bool name="config_default_sound_enabled">true</bool>

View file

@ -24,7 +24,6 @@
<bool name="config_enable_show_voice_key_option">false</bool> <bool name="config_enable_show_voice_key_option">false</bool>
<bool name="config_enable_show_popup_on_keypress_option">false</bool> <bool name="config_enable_show_popup_on_keypress_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool> <bool name="config_enable_bigram_suggestions_option">false</bool>
<bool name="config_digit_more_keys_enabled">false</bool>
<!-- Whether or not Popup on key press is enabled by default --> <!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">false</bool> <bool name="config_default_popup_preview">false</bool>
<bool name="config_default_sound_enabled">true</bool> <bool name="config_default_sound_enabled">true</bool>

View file

@ -19,9 +19,9 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">â</string> <string name="more_keys_for_a">â</string>
<string name="more_keys_for_i">8,ı,î,ï,ì,í,į,ī</string> <string name="more_keys_for_i">ı,î,ï,ì,í,į,ī</string>
<string name="more_keys_for_o">9,ö,ô,œ,ò,ó,õ,ø,ō</string> <string name="more_keys_for_o">ö,ô,œ,ò,ó,õ,ø,ō</string>
<string name="more_keys_for_u">7,ü,û,ù,ú,ū</string> <string name="more_keys_for_u">ü,û,ù,ú,ū</string>
<string name="more_keys_for_s">ş,ß,ś,š</string> <string name="more_keys_for_s">ş,ß,ś,š</string>
<string name="more_keys_for_g">ğ</string> <string name="more_keys_for_g">ğ</string>
<string name="more_keys_for_c">ç,ć,č</string> <string name="more_keys_for_c">ç,ć,č</string>

View file

@ -19,10 +19,10 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a">à,á,ả,ã,ạ,ă,ằ,ắ,ẳ,ẵ,ặ,â,ầ,ấ,ẩ,ẫ,ậ</string> <string name="more_keys_for_a">à,á,ả,ã,ạ,ă,ằ,ắ,ẳ,ẵ,ặ,â,ầ,ấ,ẩ,ẫ,ậ</string>
<string name="more_keys_for_e">3,è,é,ẻ,ẽ,ẹ,ê,ề,ế,ể,ễ,ệ</string> <string name="more_keys_for_e">è,é,ẻ,ẽ,ẹ,ê,ề,ế,ể,ễ,ệ</string>
<string name="more_keys_for_i">8,ì,í,ỉ,ĩ,ị</string> <string name="more_keys_for_i">ì,í,ỉ,ĩ,ị</string>
<string name="more_keys_for_o">9,ò,ó,ỏ,õ,ọ,ô,ồ,ố,ổ,ỗ,ộ,ơ,ờ,ớ,ở,ỡ,ợ</string> <string name="more_keys_for_o">ò,ó,ỏ,õ,ọ,ô,ồ,ố,ổ,ỗ,ộ,ơ,ờ,ớ,ở,ỡ,ợ</string>
<string name="more_keys_for_u">7,ù,ú,ủ,ũ,ụ,ư,ừ,ứ,ử,ữ,ự</string> <string name="more_keys_for_u">ù,ú,ủ,ũ,ụ,ư,ừ,ứ,ử,ữ,ự</string>
<string name="more_keys_for_y">6,ỳ,ý,ỷ,ỹ,ỵ</string> <string name="more_keys_for_y">ỳ,ý,ỷ,ỹ,ỵ</string>
<string name="more_keys_for_d">đ</string> <string name="more_keys_for_d">đ</string>
</resources> </resources>

View file

@ -227,6 +227,12 @@
<attr name="altCode" format="integer" /> <attr name="altCode" format="integer" />
<!-- The keys to display in the more keys keyboard. --> <!-- The keys to display in the more keys keyboard. -->
<attr name="moreKeys" format="string" /> <attr name="moreKeys" format="string" />
<!-- The keys to display in the more keys keyboard in addition to moreKeys.
The additional more keys are inserted at the '%' markers in the moreKeys if any.
They are inserted at the head of moreKeys if none.
If there are remaining entries of additionalMoreKeys even after all '%' markers have
been replaced, those remaining entries are appended at the end of moreKeys. -->
<attr name="additionalMoreKeys" format="string" />
<!-- Maximum column of more keys keyboard --> <!-- Maximum column of more keys keyboard -->
<attr name="maxMoreKeysColumn" format="integer" /> <attr name="maxMoreKeysColumn" format="integer" />
<attr name="backgroundType" format="enum"> <attr name="backgroundType" format="enum">

View file

@ -27,7 +27,6 @@
<bool name="config_enable_bigram_suggestions_option">true</bool> <bool name="config_enable_bigram_suggestions_option">true</bool>
<!-- TODO: Disable the following configuration for production. --> <!-- TODO: Disable the following configuration for production. -->
<bool name="config_enable_usability_study_mode_option">true</bool> <bool name="config_enable_usability_study_mode_option">true</bool>
<bool name="config_digit_more_keys_enabled">true</bool>
<!-- Whether or not Popup on key press is enabled by default --> <!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">true</bool> <bool name="config_default_popup_preview">true</bool>
<!-- Default value for bigram suggestion: while showing suggestions for a word should we weigh <!-- Default value for bigram suggestion: while showing suggestions for a word should we weigh

View file

@ -19,24 +19,21 @@
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="more_keys_for_a"></string> <string name="more_keys_for_a"></string>
<string name="more_keys_for_e">3</string> <string name="more_keys_for_e"></string>
<string name="more_keys_for_i">8</string> <string name="more_keys_for_i"></string>
<string name="more_keys_for_o">9</string> <string name="more_keys_for_o"></string>
<string name="more_keys_for_u">7</string> <string name="more_keys_for_u"></string>
<string name="more_keys_for_s"></string> <string name="more_keys_for_s"></string>
<string name="more_keys_for_n"></string> <string name="more_keys_for_n"></string>
<string name="more_keys_for_c"></string> <string name="more_keys_for_c"></string>
<string name="more_keys_for_y">6</string> <string name="more_keys_for_y"></string>
<string name="more_keys_for_q">1</string>
<string name="more_keys_for_w">2</string>
<string name="more_keys_for_d"></string> <string name="more_keys_for_d"></string>
<string name="more_keys_for_r">4</string> <string name="more_keys_for_r"></string>
<string name="more_keys_for_t">5</string> <string name="more_keys_for_t"></string>
<string name="more_keys_for_z"></string> <string name="more_keys_for_z"></string>
<string name="more_keys_for_k"></string> <string name="more_keys_for_k"></string>
<string name="more_keys_for_l"></string> <string name="more_keys_for_l"></string>
<string name="more_keys_for_g"></string> <string name="more_keys_for_g"></string>
<string name="more_keys_for_p">0</string>
<string name="more_keys_for_v"></string> <string name="more_keys_for_v"></string>
<string name="keylabel_for_scandinavia_row1_11"></string> <string name="keylabel_for_scandinavia_row1_11"></string>
<string name="keylabel_for_scandinavia_row2_10"></string> <string name="keylabel_for_scandinavia_row2_10"></string>
@ -46,9 +43,9 @@
<string name="keylabel_for_slavic_shcha">щ</string> <string name="keylabel_for_slavic_shcha">щ</string>
<string name="keylabel_for_slavic_yery">ы</string> <string name="keylabel_for_slavic_yery">ы</string>
<string name="keylabel_for_slavic_i">и</string> <string name="keylabel_for_slavic_i">и</string>
<string name="more_keys_for_slavic_u">3</string> <string name="more_keys_for_slavic_u"></string>
<string name="more_keys_for_slavic_ye">5</string> <string name="more_keys_for_slavic_ye"></string>
<string name="more_keys_for_slavic_en">6</string> <string name="more_keys_for_slavic_en"></string>
<string name="more_keys_for_slavic_ha">ъ</string> <string name="more_keys_for_slavic_ha">ъ</string>
<string name="more_keys_for_slavic_yery"></string> <string name="more_keys_for_slavic_yery"></string>
<string name="more_keys_for_slavic_o"></string> <string name="more_keys_for_slavic_o"></string>
@ -74,6 +71,16 @@
<string name="keylabel_for_symbols_8">8</string> <string name="keylabel_for_symbols_8">8</string>
<string name="keylabel_for_symbols_9">9</string> <string name="keylabel_for_symbols_9">9</string>
<string name="keylabel_for_symbols_0">0</string> <string name="keylabel_for_symbols_0">0</string>
<string name="additional_more_keys_for_symbols_1"></string>
<string name="additional_more_keys_for_symbols_2"></string>
<string name="additional_more_keys_for_symbols_3"></string>
<string name="additional_more_keys_for_symbols_4"></string>
<string name="additional_more_keys_for_symbols_5"></string>
<string name="additional_more_keys_for_symbols_6"></string>
<string name="additional_more_keys_for_symbols_7"></string>
<string name="additional_more_keys_for_symbols_8"></string>
<string name="additional_more_keys_for_symbols_9"></string>
<string name="additional_more_keys_for_symbols_0"></string>
<string name="more_keys_for_symbols_1">¹,½,⅓,¼,⅛</string> <string name="more_keys_for_symbols_1">¹,½,⅓,¼,⅛</string>
<string name="more_keys_for_symbols_2">²,⅔</string> <string name="more_keys_for_symbols_2">²,⅔</string>
<string name="more_keys_for_symbols_3">³,¾,⅜</string> <string name="more_keys_for_symbols_3">³,¾,⅜</string>

View file

@ -25,11 +25,9 @@
latin:keyWidth="9.0%p" latin:keyWidth="9.0%p"
> >
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
@ -52,8 +50,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p" latin:keyXPos="-10.0%p"

View file

@ -54,8 +54,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p" latin:keyXPos="-10.0%p"
@ -66,7 +65,6 @@
> >
<Key <Key
latin:keyLabel="q" latin:keyLabel="q"
latin:moreKeys="@string/more_keys_for_q"
latin:keyXPos="5.0%p" /> latin:keyXPos="5.0%p" />
<Key <Key
latin:keyLabel="s" latin:keyLabel="s"
@ -103,8 +101,7 @@
latin:keyStyle="shiftKeyStyle" latin:keyStyle="shiftKeyStyle"
latin:keyWidth="10.0%p" /> latin:keyWidth="10.0%p" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="x" /> latin:keyLabel="x" />
<Key <Key

View file

@ -27,11 +27,9 @@
latin:keyWidth="9.0%p" latin:keyWidth="9.0%p"
> >
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
@ -54,8 +52,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p" latin:keyXPos="-10.0%p"

View file

@ -27,11 +27,9 @@
latin:keyWidth="7.9%p" latin:keyWidth="7.9%p"
> >
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
@ -54,8 +52,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" /> latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" />
<Key <Key

View file

@ -30,33 +30,43 @@
> >
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_1" latin:keyLabel="@string/keylabel_for_symbols_1"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_1"
latin:moreKeys="@string/more_keys_for_symbols_1" /> latin:moreKeys="@string/more_keys_for_symbols_1" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_2" latin:keyLabel="@string/keylabel_for_symbols_2"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_2"
latin:moreKeys="@string/more_keys_for_symbols_2" /> latin:moreKeys="@string/more_keys_for_symbols_2" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_3" latin:keyLabel="@string/keylabel_for_symbols_3"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_3"
latin:moreKeys="@string/more_keys_for_symbols_3" /> latin:moreKeys="@string/more_keys_for_symbols_3" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_4" latin:keyLabel="@string/keylabel_for_symbols_4"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_4"
latin:moreKeys="@string/more_keys_for_symbols_4" /> latin:moreKeys="@string/more_keys_for_symbols_4" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_5" latin:keyLabel="@string/keylabel_for_symbols_5"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_5"
latin:moreKeys="@string/more_keys_for_symbols_5" /> latin:moreKeys="@string/more_keys_for_symbols_5" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_6" latin:keyLabel="@string/keylabel_for_symbols_6"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_6"
latin:moreKeys="@string/more_keys_for_symbols_6" /> latin:moreKeys="@string/more_keys_for_symbols_6" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_7" latin:keyLabel="@string/keylabel_for_symbols_7"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_7"
latin:moreKeys="@string/more_keys_for_symbols_7" /> latin:moreKeys="@string/more_keys_for_symbols_7" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_8" latin:keyLabel="@string/keylabel_for_symbols_8"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_8"
latin:moreKeys="@string/more_keys_for_symbols_8" /> latin:moreKeys="@string/more_keys_for_symbols_8" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_9" latin:keyLabel="@string/keylabel_for_symbols_9"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_9"
latin:moreKeys="@string/more_keys_for_symbols_9" /> latin:moreKeys="@string/more_keys_for_symbols_9" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_0" latin:keyLabel="@string/keylabel_for_symbols_0"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_0"
latin:moreKeys="@string/more_keys_for_symbols_0" /> latin:moreKeys="@string/more_keys_for_symbols_0" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"

View file

@ -29,11 +29,9 @@
latin:keyLabelFlags="alignLeft" latin:keyLabelFlags="alignLeft"
latin:keyWidth="7.969%p" /> latin:keyWidth="7.969%p" />
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
@ -56,8 +54,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p" latin:keyXPos="-9.219%p"

View file

@ -58,8 +58,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p" latin:keyXPos="-9.219%p"
@ -73,8 +72,7 @@
latin:keyLabelFlags="alignLeft" latin:keyLabelFlags="alignLeft"
latin:keyWidth="10.167%p" /> latin:keyWidth="10.167%p" />
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="s" latin:keyLabel="s"
latin:moreKeys="@string/more_keys_for_s" /> latin:moreKeys="@string/more_keys_for_s" />
@ -110,8 +108,7 @@
latin:keyStyle="shiftKeyStyle" latin:keyStyle="shiftKeyStyle"
latin:keyWidth="13.829%p" /> latin:keyWidth="13.829%p" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="x" /> latin:keyLabel="x" />
<Key <Key

View file

@ -31,11 +31,9 @@
latin:keyLabelFlags="alignLeft" latin:keyLabelFlags="alignLeft"
latin:keyWidth="7.969%p" /> latin:keyWidth="7.969%p" />
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
@ -58,8 +56,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p" latin:keyXPos="-9.219%p"

View file

@ -31,11 +31,9 @@
latin:keyLabelFlags="alignLeft" latin:keyLabelFlags="alignLeft"
latin:keyWidth="7.500%p" /> latin:keyWidth="7.500%p" />
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
@ -58,8 +56,7 @@
latin:keyLabel="o" latin:keyLabel="o"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p" />
latin:moreKeys="@string/more_keys_for_p" />
<Key <Key
latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" /> latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" />
<Key <Key

View file

@ -34,33 +34,43 @@
latin:keyWidth="7.969%p" /> latin:keyWidth="7.969%p" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_1" latin:keyLabel="@string/keylabel_for_symbols_1"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_1"
latin:moreKeys="@string/more_keys_for_symbols_1" /> latin:moreKeys="@string/more_keys_for_symbols_1" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_2" latin:keyLabel="@string/keylabel_for_symbols_2"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_2"
latin:moreKeys="@string/more_keys_for_symbols_2" /> latin:moreKeys="@string/more_keys_for_symbols_2" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_3" latin:keyLabel="@string/keylabel_for_symbols_3"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_3"
latin:moreKeys="@string/more_keys_for_symbols_3" /> latin:moreKeys="@string/more_keys_for_symbols_3" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_4" latin:keyLabel="@string/keylabel_for_symbols_4"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_4"
latin:moreKeys="@string/more_keys_for_symbols_4" /> latin:moreKeys="@string/more_keys_for_symbols_4" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_5" latin:keyLabel="@string/keylabel_for_symbols_5"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_5"
latin:moreKeys="@string/more_keys_for_symbols_5" /> latin:moreKeys="@string/more_keys_for_symbols_5" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_6" latin:keyLabel="@string/keylabel_for_symbols_6"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_6"
latin:moreKeys="@string/more_keys_for_symbols_6" /> latin:moreKeys="@string/more_keys_for_symbols_6" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_7" latin:keyLabel="@string/keylabel_for_symbols_7"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_7"
latin:moreKeys="@string/more_keys_for_symbols_7" /> latin:moreKeys="@string/more_keys_for_symbols_7" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_8" latin:keyLabel="@string/keylabel_for_symbols_8"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_8"
latin:moreKeys="@string/more_keys_for_symbols_8" /> latin:moreKeys="@string/more_keys_for_symbols_8" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_9" latin:keyLabel="@string/keylabel_for_symbols_9"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_9"
latin:moreKeys="@string/more_keys_for_symbols_9" /> latin:moreKeys="@string/more_keys_for_symbols_9" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_0" latin:keyLabel="@string/keylabel_for_symbols_0"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_0"
latin:moreKeys="@string/more_keys_for_symbols_0" /> latin:moreKeys="@string/more_keys_for_symbols_0" />
<Key <Key
latin:keyStyle="deleteKeyStyle" latin:keyStyle="deleteKeyStyle"

View file

@ -27,43 +27,50 @@
<Key <Key
latin:keyLabel="q" latin:keyLabel="q"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="@string/more_keys_for_q" /> latin:additionalMoreKeys="1" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="@string/more_keys_for_w" /> latin:additionalMoreKeys="2" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:additionalMoreKeys="3"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
<Key <Key
latin:keyLabel="r" latin:keyLabel="r"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:additionalMoreKeys="4"
latin:moreKeys="@string/more_keys_for_r" /> latin:moreKeys="@string/more_keys_for_r" />
<Key <Key
latin:keyLabel="t" latin:keyLabel="t"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:additionalMoreKeys="5"
latin:moreKeys="@string/more_keys_for_t" /> latin:moreKeys="@string/more_keys_for_t" />
<Key <Key
latin:keyLabel="y" latin:keyLabel="y"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:additionalMoreKeys="6"
latin:moreKeys="@string/more_keys_for_y" /> latin:moreKeys="@string/more_keys_for_y" />
<Key <Key
latin:keyLabel="u" latin:keyLabel="u"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:additionalMoreKeys="7"
latin:moreKeys="@string/more_keys_for_u" /> latin:moreKeys="@string/more_keys_for_u" />
<Key <Key
latin:keyLabel="i" latin:keyLabel="i"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:additionalMoreKeys="8"
latin:moreKeys="@string/more_keys_for_i" /> latin:moreKeys="@string/more_keys_for_i" />
<Key <Key
latin:keyLabel="o" latin:keyLabel="o"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:additionalMoreKeys="9"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="@string/more_keys_for_p" latin:additionalMoreKeys="0"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />
</Row> </Row>
</merge> </merge>

View file

@ -30,18 +30,19 @@
<Key <Key
latin:keyLabel="ض" latin:keyLabel="ض"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="1,١" /> latin:additionalMoreKeys="1,١" />
<!-- \u0635: ARABIC LETTER SAD --> <!-- \u0635: ARABIC LETTER SAD -->
<Key <Key
latin:keyLabel="ص" latin:keyLabel="ص"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="2,٢" /> latin:additionalMoreKeys="2,٢" />
<!-- \u0642: ARABIC LETTER QAF <!-- \u0642: ARABIC LETTER QAF
\u06a8: ARABIC LETTER QAF WITH THREE DOTS ABOVE --> \u06a8: ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
<Key <Key
latin:keyLabel="ق" latin:keyLabel="ق"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:moreKeys="3,٣,\u06a8" /> latin:additionalMoreKeys="3,٣"
latin:moreKeys="\u06a8" />
<!-- \u0641: ARABIC LETTER FEH <!-- \u0641: ARABIC LETTER FEH
\u06a4: ARABIC LETTER VEH \u06a4: ARABIC LETTER VEH
\u06a2: ARABIC LETTER FEH WITH DOT MOVED BELOW \u06a2: ARABIC LETTER FEH WITH DOT MOVED BELOW
@ -49,40 +50,43 @@
<Key <Key
latin:keyLabel="ف" latin:keyLabel="ف"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:moreKeys="4,٤,\u06a4,\u06a2,\u06a5" /> latin:additionalMoreKeys="4,٤"
latin:moreKeys="\u06a4,\u06a2,\u06a5" />
<!-- \u063a: ARABIC LETTER GHAIN --> <!-- \u063a: ARABIC LETTER GHAIN -->
<Key <Key
latin:keyLabel="غ" latin:keyLabel="غ"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:moreKeys="5,٥" /> latin:additionalMoreKeys="5,٥" />
<!-- \u0639: ARABIC LETTER AIN --> <!-- \u0639: ARABIC LETTER AIN -->
<Key <Key
latin:keyLabel="ع" latin:keyLabel="ع"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:moreKeys="6,٦" /> latin:additionalMoreKeys="6,٦" />
<!-- \u0647: ARABIC LETTER HEH <!-- \u0647: ARABIC LETTER HEH
\ufeeb: ARABIC LETTER HEH INITIAL FORM \ufeeb: ARABIC LETTER HEH INITIAL FORM
\u0647\u0640: ARABIC LETTER HEH + Zero width joiner --> \u0647\u0640: ARABIC LETTER HEH + Zero width joiner -->
<Key <Key
latin:keyLabel="ه" latin:keyLabel="ه"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:moreKeys="7,٧,\ufeeb|\u0647\u200D" /> latin:additionalMoreKeys="7,٧"
latin:moreKeys="\ufeeb|\u0647\u200D" />
<!-- \u062e: ARABIC LETTER KHAH --> <!-- \u062e: ARABIC LETTER KHAH -->
<Key <Key
latin:keyLabel="خ" latin:keyLabel="خ"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:moreKeys="8,٨" /> latin:additionalMoreKeys="8,٨" />
<!-- \u062d: ARABIC LETTER HAH --> <!-- \u062d: ARABIC LETTER HAH -->
<Key <Key
latin:keyLabel="ح" latin:keyLabel="ح"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:moreKeys="9,٩" /> latin:additionalMoreKeys="9,٩" />
<!-- \u062c: ARABIC LETTER JEEM <!-- \u062c: ARABIC LETTER JEEM
\u0686: ARABIC LETTER TCHEH --> \u0686: ARABIC LETTER TCHEH -->
<Key <Key
latin:keyLabel="ج" latin:keyLabel="ج"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="0,٠,\u0686" latin:additionalMoreKeys="0,٠"
latin:moreKeys="\u0686"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />
</Row> </Row>
<Row <Row

View file

@ -29,51 +29,59 @@
<Key <Key
latin:keyLabel="a" latin:keyLabel="a"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:additionalMoreKeys="1"
latin:moreKeys="@string/more_keys_for_a" /> latin:moreKeys="@string/more_keys_for_a" />
<Key <Key
latin:keyLabel="z" latin:keyLabel="z"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:additionalMoreKeys="2"
latin:moreKeys="@string/more_keys_for_z" /> latin:moreKeys="@string/more_keys_for_z" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:additionalMoreKeys="3"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
<Key <Key
latin:keyLabel="r" latin:keyLabel="r"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:additionalMoreKeys="4"
latin:moreKeys="@string/more_keys_for_r" /> latin:moreKeys="@string/more_keys_for_r" />
<Key <Key
latin:keyLabel="t" latin:keyLabel="t"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:additionalMoreKeys="5"
latin:moreKeys="@string/more_keys_for_t" /> latin:moreKeys="@string/more_keys_for_t" />
<Key <Key
latin:keyLabel="y" latin:keyLabel="y"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:additionalMoreKeys="6"
latin:moreKeys="@string/more_keys_for_y" /> latin:moreKeys="@string/more_keys_for_y" />
<Key <Key
latin:keyLabel="u" latin:keyLabel="u"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:additionalMoreKeys="7"
latin:moreKeys="@string/more_keys_for_u" /> latin:moreKeys="@string/more_keys_for_u" />
<Key <Key
latin:keyLabel="i" latin:keyLabel="i"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:additionalMoreKeys="8"
latin:moreKeys="@string/more_keys_for_i" /> latin:moreKeys="@string/more_keys_for_i" />
<Key <Key
latin:keyLabel="o" latin:keyLabel="o"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:additionalMoreKeys="9"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="@string/more_keys_for_p" latin:additionalMoreKeys="0"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />
</Row> </Row>
<Row <Row
latin:keyWidth="10%p" latin:keyWidth="10%p"
> >
<Key <Key
latin:keyLabel="q" latin:keyLabel="q" />
latin:moreKeys="@string/more_keys_for_q" />
<Key <Key
latin:keyLabel="s" latin:keyLabel="s"
latin:moreKeys="@string/more_keys_for_s" /> latin:moreKeys="@string/more_keys_for_s" />
@ -107,8 +115,7 @@
latin:keyWidth="15%p" latin:keyWidth="15%p"
latin:visualInsetsRight="1%p" /> latin:visualInsetsRight="1%p" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w" />
latin:moreKeys="@string/more_keys_for_w" />
<Key <Key
latin:keyLabel="x" /> latin:keyLabel="x" />
<Key <Key

View file

@ -29,43 +29,44 @@
<Key <Key
latin:keyLabel="ч" latin:keyLabel="ч"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="1" /> latin:additionalMoreKeys="1" />
<Key <Key
latin:keyLabel="ш" latin:keyLabel="ш"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="2" /> latin:additionalMoreKeys="2" />
<Key <Key
latin:keyLabel="е" latin:keyLabel="е"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:moreKeys="3" /> latin:additionalMoreKeys="3" />
<Key <Key
latin:keyLabel="р" latin:keyLabel="р"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:moreKeys="4" /> latin:additionalMoreKeys="4" />
<Key <Key
latin:keyLabel="т" latin:keyLabel="т"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:moreKeys="5" /> latin:additionalMoreKeys="5" />
<Key <Key
latin:keyLabel="ъ" latin:keyLabel="ъ"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:moreKeys="6" /> latin:additionalMoreKeys="6" />
<Key <Key
latin:keyLabel="у" latin:keyLabel="у"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:moreKeys="7" /> latin:additionalMoreKeys="7" />
<Key <Key
latin:keyLabel="и" latin:keyLabel="и"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:moreKeys="8,ѝ" /> latin:additionalMoreKeys="8"
latin:moreKeys="ѝ" />
<Key <Key
latin:keyLabel="о" latin:keyLabel="о"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:moreKeys="9" /> latin:additionalMoreKeys="9" />
<Key <Key
latin:keyLabel="п" latin:keyLabel="п"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="0" /> latin:additionalMoreKeys="0" />
<Key <Key
latin:keyLabel="я" latin:keyLabel="я"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />

View file

@ -29,43 +29,50 @@
<Key <Key
latin:keyLabel="q" latin:keyLabel="q"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="@string/more_keys_for_q" /> latin:additionalMoreKeys="1" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="@string/more_keys_for_w" /> latin:additionalMoreKeys="2" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:additionalMoreKeys="3"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
<Key <Key
latin:keyLabel="r" latin:keyLabel="r"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:additionalMoreKeys="4"
latin:moreKeys="@string/more_keys_for_r" /> latin:moreKeys="@string/more_keys_for_r" />
<Key <Key
latin:keyLabel="t" latin:keyLabel="t"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:additionalMoreKeys="5"
latin:moreKeys="@string/more_keys_for_t" /> latin:moreKeys="@string/more_keys_for_t" />
<Key <Key
latin:keyLabel="z" latin:keyLabel="z"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:additionalMoreKeys="6"
latin:moreKeys="@string/more_keys_for_z" /> latin:moreKeys="@string/more_keys_for_z" />
<Key <Key
latin:keyLabel="u" latin:keyLabel="u"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:additionalMoreKeys="7"
latin:moreKeys="@string/more_keys_for_u" /> latin:moreKeys="@string/more_keys_for_u" />
<Key <Key
latin:keyLabel="i" latin:keyLabel="i"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:additionalMoreKeys="8"
latin:moreKeys="@string/more_keys_for_i" /> latin:moreKeys="@string/more_keys_for_i" />
<Key <Key
latin:keyLabel="o" latin:keyLabel="o"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:additionalMoreKeys="9"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="@string/more_keys_for_p" latin:additionalMoreKeys="0"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />
</Row> </Row>
<include <include

View file

@ -29,43 +29,50 @@
<Key <Key
latin:keyLabel="q" latin:keyLabel="q"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="@string/more_keys_for_q" /> latin:additionalMoreKeys="1" />
<Key <Key
latin:keyLabel="w" latin:keyLabel="w"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="@string/more_keys_for_w" /> latin:additionalMoreKeys="2" />
<Key <Key
latin:keyLabel="e" latin:keyLabel="e"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:additionalMoreKeys="3"
latin:moreKeys="@string/more_keys_for_e" /> latin:moreKeys="@string/more_keys_for_e" />
<Key <Key
latin:keyLabel="r" latin:keyLabel="r"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:additionalMoreKeys="4"
latin:moreKeys="@string/more_keys_for_r" /> latin:moreKeys="@string/more_keys_for_r" />
<Key <Key
latin:keyLabel="t" latin:keyLabel="t"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:additionalMoreKeys="5"
latin:moreKeys="@string/more_keys_for_t" /> latin:moreKeys="@string/more_keys_for_t" />
<Key <Key
latin:keyLabel="y" latin:keyLabel="y"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:additionalMoreKeys="6"
latin:moreKeys="@string/more_keys_for_y" /> latin:moreKeys="@string/more_keys_for_y" />
<Key <Key
latin:keyLabel="u" latin:keyLabel="u"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:additionalMoreKeys="7"
latin:moreKeys="@string/more_keys_for_u" /> latin:moreKeys="@string/more_keys_for_u" />
<Key <Key
latin:keyLabel="i" latin:keyLabel="i"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:additionalMoreKeys="8"
latin:moreKeys="@string/more_keys_for_i" /> latin:moreKeys="@string/more_keys_for_i" />
<Key <Key
latin:keyLabel="o" latin:keyLabel="o"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:additionalMoreKeys="9"
latin:moreKeys="@string/more_keys_for_o" /> latin:moreKeys="@string/more_keys_for_o" />
<Key <Key
latin:keyLabel="p" latin:keyLabel="p"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="@string/more_keys_for_p" /> latin:additionalMoreKeys="0" />
<Key <Key
latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" latin:keyLabel="@string/keylabel_for_scandinavia_row1_11"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />

View file

@ -29,43 +29,43 @@
<Key <Key
latin:keyLabel="љ" latin:keyLabel="љ"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="1" /> latin:additionalMoreKeys="1" />
<Key <Key
latin:keyLabel="њ" latin:keyLabel="њ"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="2" /> latin:additionalMoreKeys="2" />
<Key <Key
latin:keyLabel="е" latin:keyLabel="е"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:moreKeys="3" /> latin:additionalMoreKeys="3" />
<Key <Key
latin:keyLabel="р" latin:keyLabel="р"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:moreKeys="4" /> latin:additionalMoreKeys="4" />
<Key <Key
latin:keyLabel="т" latin:keyLabel="т"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:moreKeys="5" /> latin:additionalMoreKeys="5" />
<Key <Key
latin:keyLabel="з" latin:keyLabel="з"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:moreKeys="6" /> latin:additionalMoreKeys="6" />
<Key <Key
latin:keyLabel="у" latin:keyLabel="у"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:moreKeys="7" /> latin:additionalMoreKeys="7" />
<Key <Key
latin:keyLabel="и" latin:keyLabel="и"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:moreKeys="8" /> latin:additionalMoreKeys="8" />
<Key <Key
latin:keyLabel="о" latin:keyLabel="о"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:moreKeys="9" /> latin:additionalMoreKeys="9" />
<Key <Key
latin:keyLabel="п" latin:keyLabel="п"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="0" /> latin:additionalMoreKeys="0" />
<Key <Key
latin:keyLabel="ш" latin:keyLabel="ш"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />

View file

@ -29,43 +29,46 @@
<Key <Key
latin:keyLabel="й" latin:keyLabel="й"
latin:keyHintLabel="1" latin:keyHintLabel="1"
latin:moreKeys="1" /> latin:additionalMoreKeys="1" />
<Key <Key
latin:keyLabel="ц" latin:keyLabel="ц"
latin:keyHintLabel="2" latin:keyHintLabel="2"
latin:moreKeys="2" /> latin:additionalMoreKeys="2" />
<Key <Key
latin:keyLabel="у" latin:keyLabel="у"
latin:keyHintLabel="3" latin:keyHintLabel="3"
latin:additionalMoreKeys="3"
latin:moreKeys="@string/more_keys_for_slavic_u" /> latin:moreKeys="@string/more_keys_for_slavic_u" />
<Key <Key
latin:keyLabel="к" latin:keyLabel="к"
latin:keyHintLabel="4" latin:keyHintLabel="4"
latin:moreKeys="4" /> latin:additionalMoreKeys="4" />
<Key <Key
latin:keyLabel="е" latin:keyLabel="е"
latin:keyHintLabel="5" latin:keyHintLabel="5"
latin:additionalMoreKeys="5"
latin:moreKeys="@string/more_keys_for_slavic_ye" /> latin:moreKeys="@string/more_keys_for_slavic_ye" />
<Key <Key
latin:keyLabel="н" latin:keyLabel="н"
latin:keyHintLabel="6" latin:keyHintLabel="6"
latin:additionalMoreKeys="6"
latin:moreKeys="@string/more_keys_for_slavic_en" /> latin:moreKeys="@string/more_keys_for_slavic_en" />
<Key <Key
latin:keyLabel="г" latin:keyLabel="г"
latin:keyHintLabel="7" latin:keyHintLabel="7"
latin:moreKeys="7" /> latin:additionalMoreKeys="7" />
<Key <Key
latin:keyLabel="ш" latin:keyLabel="ш"
latin:keyHintLabel="8" latin:keyHintLabel="8"
latin:moreKeys="8" /> latin:additionalMoreKeys="8" />
<Key <Key
latin:keyLabel="@string/keylabel_for_slavic_shcha" latin:keyLabel="@string/keylabel_for_slavic_shcha"
latin:keyHintLabel="9" latin:keyHintLabel="9"
latin:moreKeys="9" /> latin:additionalMoreKeys="9" />
<Key <Key
latin:keyLabel="з" latin:keyLabel="з"
latin:keyHintLabel="0" latin:keyHintLabel="0"
latin:moreKeys="0" /> latin:additionalMoreKeys="0" />
<Key <Key
latin:keyLabel="х" latin:keyLabel="х"
latin:moreKeys="@string/more_keys_for_slavic_ha" latin:moreKeys="@string/more_keys_for_slavic_ha"

View file

@ -30,33 +30,43 @@
> >
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_1" latin:keyLabel="@string/keylabel_for_symbols_1"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_1"
latin:moreKeys="@string/more_keys_for_symbols_1" /> latin:moreKeys="@string/more_keys_for_symbols_1" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_2" latin:keyLabel="@string/keylabel_for_symbols_2"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_2"
latin:moreKeys="@string/more_keys_for_symbols_2" /> latin:moreKeys="@string/more_keys_for_symbols_2" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_3" latin:keyLabel="@string/keylabel_for_symbols_3"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_3"
latin:moreKeys="@string/more_keys_for_symbols_3" /> latin:moreKeys="@string/more_keys_for_symbols_3" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_4" latin:keyLabel="@string/keylabel_for_symbols_4"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_4"
latin:moreKeys="@string/more_keys_for_symbols_4" /> latin:moreKeys="@string/more_keys_for_symbols_4" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_5" latin:keyLabel="@string/keylabel_for_symbols_5"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_5"
latin:moreKeys="@string/more_keys_for_symbols_5" /> latin:moreKeys="@string/more_keys_for_symbols_5" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_6" latin:keyLabel="@string/keylabel_for_symbols_6"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_6"
latin:moreKeys="@string/more_keys_for_symbols_6" /> latin:moreKeys="@string/more_keys_for_symbols_6" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_7" latin:keyLabel="@string/keylabel_for_symbols_7"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_7"
latin:moreKeys="@string/more_keys_for_symbols_7" /> latin:moreKeys="@string/more_keys_for_symbols_7" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_8" latin:keyLabel="@string/keylabel_for_symbols_8"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_8"
latin:moreKeys="@string/more_keys_for_symbols_8" /> latin:moreKeys="@string/more_keys_for_symbols_8" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_9" latin:keyLabel="@string/keylabel_for_symbols_9"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_9"
latin:moreKeys="@string/more_keys_for_symbols_9" /> latin:moreKeys="@string/more_keys_for_symbols_9" />
<Key <Key
latin:keyLabel="@string/keylabel_for_symbols_0" latin:keyLabel="@string/keylabel_for_symbols_0"
latin:additionalMoreKeys="@string/additional_more_keys_for_symbols_0"
latin:moreKeys="@string/more_keys_for_symbols_0" latin:moreKeys="@string/more_keys_for_symbols_0"
latin:keyWidth="fillRight" /> latin:keyWidth="fillRight" />
</Row> </Row>

View file

@ -285,22 +285,17 @@ public class Key {
mLabelFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags, 0); mLabelFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags, 0);
final boolean preserveCase = (mLabelFlags & LABEL_FLAGS_PRESERVE_CASE) != 0; final boolean preserveCase = (mLabelFlags & LABEL_FLAGS_PRESERVE_CASE) != 0;
final String[] moreKeys = style.getStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys); final String[] additionalMoreKeys = style.getStringArray(
keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys);
final String[] moreKeys = MoreKeySpecParser.insertAddtionalMoreKeys(style.getStringArray(
keyAttr, R.styleable.Keyboard_Key_moreKeys), additionalMoreKeys);
if (moreKeys != null) { if (moreKeys != null) {
for (int i = 0; i < moreKeys.length; i++) { for (int i = 0; i < moreKeys.length; i++) {
moreKeys[i] = adjustCaseOfStringForKeyboardId( moreKeys[i] = adjustCaseOfStringForKeyboardId(
moreKeys[i], preserveCase, params.mId); moreKeys[i], preserveCase, params.mId);
} }
} }
// TODO: Add new key label flag to control this.
// In Arabic symbol layouts, we'd like to keep digits in more keys regardless of
// config_digit_more_keys_enabled.
if (params.mId.isAlphabetKeyboard()
&& !res.getBoolean(R.bool.config_digit_more_keys_enabled)) {
mMoreKeys = MoreKeySpecParser.filterOut(res, moreKeys, MoreKeySpecParser.DIGIT_FILTER);
} else {
mMoreKeys = moreKeys; mMoreKeys = moreKeys;
}
mMaxMoreKeysColumn = style.getInt(keyAttr, mMaxMoreKeysColumn = style.getInt(keyAttr,
R.styleable.Keyboard_Key_maxMoreKeysColumn, params.mMaxMiniKeyboardColumn); R.styleable.Keyboard_Key_maxMoreKeysColumn, params.mMaxMiniKeyboardColumn);

View file

@ -173,6 +173,7 @@ public class KeyStyles {
readString(keyAttr, R.styleable.Keyboard_Key_keyOutputText); readString(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel); readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys); readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
readStringArray(keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys);
readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags); readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon); readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled); readInt(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled);

View file

@ -20,10 +20,12 @@ import android.content.res.Resources;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.Utils; import com.android.inputmethod.latin.Utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
/** /**
* String parser of moreKeys attribute of Key. * String parser of moreKeys attribute of Key.
@ -38,9 +40,11 @@ import java.util.ArrayList;
* See {@link KeyboardIconsSet} about icon_number. * See {@link KeyboardIconsSet} about icon_number.
*/ */
public class MoreKeySpecParser { public class MoreKeySpecParser {
private static final boolean DEBUG = LatinImeLogger.sDBG;
private static final char LABEL_END = '|'; private static final char LABEL_END = '|';
private static final String PREFIX_ICON = Utils.PREFIX_AT + "icon" + Utils.SUFFIX_SLASH; private static final String PREFIX_ICON = Utils.PREFIX_AT + "icon" + Utils.SUFFIX_SLASH;
private static final String PREFIX_CODE = Utils.PREFIX_AT + "integer" + Utils.SUFFIX_SLASH; private static final String PREFIX_CODE = Utils.PREFIX_AT + "integer" + Utils.SUFFIX_SLASH;
private static final String ADDITIONAL_MORE_KEY_MARKER = "%";
private MoreKeySpecParser() { private MoreKeySpecParser() {
// Intentional empty constructor for utility class. // Intentional empty constructor for utility class.
@ -173,51 +177,80 @@ public class MoreKeySpecParser {
return KeyboardIconsSet.ICON_UNDEFINED; return KeyboardIconsSet.ICON_UNDEFINED;
} }
public static String[] insertAddtionalMoreKeys(String[] moreKeys, String[] additionalMoreKeys) {
final int moreKeysCount = (moreKeys != null) ? moreKeys.length : 0;
final int additionalCount = (additionalMoreKeys != null) ? additionalMoreKeys.length : 0;
ArrayList<String> out = null;
int additionalIndex = 0;
for (int moreKeyIndex = 0; moreKeyIndex < moreKeysCount; moreKeyIndex++) {
final String moreKeySpec = moreKeys[moreKeyIndex];
if (moreKeySpec.equals(ADDITIONAL_MORE_KEY_MARKER)) {
if (additionalIndex < additionalCount) {
// Replace '%' marker with additional more key specification.
final String additionalMoreKey = additionalMoreKeys[additionalIndex];
if (out != null) {
out.add(additionalMoreKey);
} else {
moreKeys[moreKeyIndex] = additionalMoreKey;
}
additionalIndex++;
} else {
// Filter out excessive '%' marker.
if (out == null) {
out = new ArrayList<String>(moreKeyIndex);
for (int i = 0; i < moreKeyIndex; i++) {
out.add(moreKeys[i]);
}
}
}
} else {
if (out != null) {
out.add(moreKeySpec);
}
}
}
if (additionalCount > 0 && additionalIndex == 0) {
// No '%' marker is found in more keys.
// Insert all additional more keys to the head of more keys.
if (DEBUG && out != null) {
throw new RuntimeException("Internal logic error:"
+ " moreKeys=" + Arrays.toString(moreKeys)
+ " additionalMoreKeys=" + Arrays.toString(additionalMoreKeys));
}
out = new ArrayList<String>(additionalCount + moreKeysCount);
for (int i = additionalIndex; i < additionalCount; i++) {
out.add(additionalMoreKeys[i]);
}
for (int i = 0; i < moreKeysCount; i++) {
out.add(moreKeys[i]);
}
} else if (additionalIndex < additionalCount) {
// The number of '%' markers are less than additional more keys.
// Append remained additional more keys to the tail of more keys.
if (DEBUG && out != null) {
throw new RuntimeException("Internal logic error:"
+ " moreKeys=" + Arrays.toString(moreKeys)
+ " additionalMoreKeys=" + Arrays.toString(additionalMoreKeys));
}
out = new ArrayList<String>(moreKeysCount);
for (int i = 0; i < moreKeysCount; i++) {
out.add(moreKeys[i]);
}
for (int i = additionalIndex; i < additionalCount; i++) {
out.add(additionalMoreKeys[additionalIndex]);
}
}
if (out != null) {
return out.size() > 0 ? out.toArray(new String[out.size()]) : null;
} else {
return moreKeys;
}
}
@SuppressWarnings("serial") @SuppressWarnings("serial")
public static class MoreKeySpecParserError extends RuntimeException { public static class MoreKeySpecParserError extends RuntimeException {
public MoreKeySpecParserError(String message) { public MoreKeySpecParserError(String message) {
super(message); super(message);
} }
} }
public interface CodeFilter {
public boolean shouldFilterOut(int code);
}
public static final CodeFilter DIGIT_FILTER = new CodeFilter() {
@Override
public boolean shouldFilterOut(int code) {
return Character.isDigit(code);
}
};
public static String[] filterOut(Resources res, String[] moreKeys, CodeFilter filter) {
if (moreKeys == null || moreKeys.length < 1) {
return null;
}
if (moreKeys.length == 1 && filter.shouldFilterOut(getCode(res, moreKeys[0]))) {
return null;
}
ArrayList<String> filtered = null;
for (int i = 0; i < moreKeys.length; i++) {
final String moreKeySpec = moreKeys[i];
if (filter.shouldFilterOut(getCode(res, moreKeySpec))) {
if (filtered == null) {
filtered = new ArrayList<String>();
for (int j = 0; j < i; j++) {
filtered.add(moreKeys[j]);
}
}
} else if (filtered != null) {
filtered.add(moreKeySpec);
}
}
if (filtered == null) {
return moreKeys;
}
if (filtered.size() == 0) {
return null;
}
return filtered.toArray(new String[filtered.size()]);
}
} }

View file

@ -22,6 +22,8 @@ import android.test.AndroidTestCase;
import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R;
import java.util.Arrays;
public class MoreKeySpecParserTests extends AndroidTestCase { public class MoreKeySpecParserTests extends AndroidTestCase {
private Resources mRes; private Resources mRes;
@ -217,4 +219,212 @@ public class MoreKeySpecParserTests extends AndroidTestCase {
ICON_SETTINGS + "|" + CODE_SETTINGS + "|c", ICON_SETTINGS + "|" + CODE_SETTINGS + "|c",
null, null, ICON_SETTINGS_KEY, mCodeSettings); null, null, ICON_SETTINGS_KEY, mCodeSettings);
} }
private void assertMoreKeys(String message, String[] moreKeys, String[] additionalMoreKeys,
String[] expected) {
final String[] actual = MoreKeySpecParser.insertAddtionalMoreKeys(
moreKeys, additionalMoreKeys);
if (expected == null && actual == null) {
return;
}
if (expected == null || actual == null) {
assertEquals(message, Arrays.toString(expected), Arrays.toString(actual));
} else {
if (expected.length != actual.length) {
assertEquals(message, Arrays.toString(expected), Arrays.toString(actual));
}
for (int i = 0; i < expected.length; i++) {
if (!actual[i].equals(expected[i])) {
assertEquals(message, Arrays.toString(expected), Arrays.toString(actual));
}
}
}
}
public void testInsertAdditionalMoreKeys() {
// Escaped marker.
assertMoreKeys("escaped marker",
new String[] { "\\%", "%-)" },
new String[] { "1", "2" },
new String[] { "1", "2", "\\%", "%-)" });
// 0 more key.
assertMoreKeys("null & null", null, null, null);
assertMoreKeys("null & 1 additional",
null,
new String[] { "1" },
new String[] { "1" });
assertMoreKeys("null & 2 additionals",
null,
new String[] { "1", "2" },
new String[] { "1", "2" });
// 0 additional more key.
assertMoreKeys("1 more key & null",
new String[] { "A" },
null,
new String[] { "A" });
assertMoreKeys("2 more keys & null",
new String[] { "A", "B" },
null,
new String[] { "A", "B" });
// No marker.
assertMoreKeys("1 more key & 1 addtional & no marker",
new String[] { "A" },
new String[] { "1" },
new String[] { "1", "A" });
assertMoreKeys("1 more key & 2 addtionals & no marker",
new String[] { "A" },
new String[] { "1", "2" },
new String[] { "1", "2", "A" });
assertMoreKeys("2 more keys & 1 addtional & no marker",
new String[] { "A", "B" },
new String[] { "1" },
new String[] { "1", "A", "B" });
assertMoreKeys("2 more keys & 2 addtionals & no marker",
new String[] { "A", "B" },
new String[] { "1", "2" },
new String[] { "1", "2", "A", "B" });
// 1 marker.
assertMoreKeys("1 more key & 1 additional & marker at head",
new String[] { "%", "A" },
new String[] { "1" },
new String[] { "1", "A" });
assertMoreKeys("1 more key & 1 additional & marker at tail",
new String[] { "A", "%" },
new String[] { "1" },
new String[] { "A", "1" });
assertMoreKeys("2 more keys & 1 additional & marker at middle",
new String[] { "A", "%", "B" },
new String[] { "1" },
new String[] { "A", "1", "B" });
// 1 marker & excess additional more keys.
assertMoreKeys("1 more key & 2 additionals & marker at head",
new String[] { "%", "A", "B" },
new String[] { "1", "2" },
new String[] { "1", "A", "B", "2" });
assertMoreKeys("1 more key & 2 additionals & marker at tail",
new String[] { "A", "B", "%" },
new String[] { "1", "2" },
new String[] { "A", "B", "1", "2" });
assertMoreKeys("2 more keys & 2 additionals & marker at middle",
new String[] { "A", "%", "B" },
new String[] { "1", "2" },
new String[] { "A", "1", "B", "2" });
// 2 markers.
assertMoreKeys("0 more key & 2 addtional & 2 markers",
new String[] { "%", "%" },
new String[] { "1", "2" },
new String[] { "1", "2" });
assertMoreKeys("1 more key & 2 addtional & 2 markers at head",
new String[] { "%", "%", "A" },
new String[] { "1", "2" },
new String[] { "1", "2", "A" });
assertMoreKeys("1 more key & 2 addtional & 2 markers at tail",
new String[] { "A", "%", "%" },
new String[] { "1", "2" },
new String[] { "A", "1", "2" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at middle",
new String[] { "A", "%", "%", "B" },
new String[] { "1", "2" },
new String[] { "A", "1", "2", "B" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at head & middle",
new String[] { "%", "A", "%", "B" },
new String[] { "1", "2" },
new String[] { "1", "A", "2", "B" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at head & tail",
new String[] { "%", "A", "B", "%" },
new String[] { "1", "2" },
new String[] { "1", "A", "B", "2" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at middle & tail",
new String[] { "A", "%", "B", "%" },
new String[] { "1", "2" },
new String[] { "A", "1", "B", "2" });
// 2 markers & excess additional keys.
assertMoreKeys("0 more key & 2 addtional & 2 markers",
new String[] { "%", "%" },
new String[] { "1", "2", "3" },
new String[] { "1", "2", "3" });
assertMoreKeys("1 more key & 2 addtional & 2 markers at head",
new String[] { "%", "%", "A" },
new String[] { "1", "2", "3" },
new String[] { "1", "2", "A", "3" });
assertMoreKeys("1 more key & 2 addtional & 2 markers at tail",
new String[] { "A", "%", "%" },
new String[] { "1", "2", "3" },
new String[] { "A", "1", "2", "3" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at middle",
new String[] { "A", "%", "%", "B" },
new String[] { "1", "2", "3" },
new String[] { "A", "1", "2", "B", "3" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at head & middle",
new String[] { "%", "A", "%", "B" },
new String[] { "1", "2", "3" },
new String[] { "1", "A", "2", "B", "3" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at head & tail",
new String[] { "%", "A", "B", "%" },
new String[] { "1", "2", "3" },
new String[] { "1", "A", "B", "2", "3" });
assertMoreKeys("2 more keys & 2 addtional & 2 markers at middle & tail",
new String[] { "A", "%", "B", "%" },
new String[] { "1", "2", "3" },
new String[] { "A", "1", "B", "2", "3" });
// 0 addtional more key and excess markers.
assertMoreKeys("0 more key & null & excess marker",
new String[] { "%" },
null,
null);
assertMoreKeys("1 more key & null & excess marker at head",
new String[] { "%", "A" },
null,
new String[] { "A" });
assertMoreKeys("1 more key & null & excess marker at tail",
new String[] { "A", "%" },
null,
new String[] { "A" });
assertMoreKeys("2 more keys & null & excess marker at middle",
new String[] { "A", "%", "B" },
null,
new String[] { "A", "B" });
assertMoreKeys("2 more keys & null & excess markers",
new String[] { "%", "A", "%", "B", "%" },
null,
new String[] { "A", "B" });
// Excess markers.
assertMoreKeys("0 more key & 1 addtional & excess marker",
new String[] { "%", "%" },
new String[] { "1" },
new String[] { "1" });
assertMoreKeys("1 more key & 1 addtional & excess marker at head",
new String[] { "%", "%", "A" },
new String[] { "1" },
new String[] { "1", "A" });
assertMoreKeys("1 more key & 1 addtional & excess marker at tail",
new String[] { "A", "%", "%" },
new String[] { "1" },
new String[] { "A", "1" });
assertMoreKeys("2 more keys & 1 addtional & excess marker at middle",
new String[] { "A", "%", "%", "B" },
new String[] { "1" },
new String[] { "A", "1", "B" });
assertMoreKeys("2 more keys & 1 addtional & excess markers",
new String[] { "%", "A", "%", "B", "%" },
new String[] { "1" },
new String[] { "1", "A", "B" });
assertMoreKeys("2 more keys & 2 addtionals & excess markers",
new String[] { "%", "A", "%", "B", "%" },
new String[] { "1", "2" },
new String[] { "1", "A", "2", "B" });
assertMoreKeys("2 more keys & 3 addtionals & excess markers",
new String[] { "%", "A", "%", "%", "B", "%" },
new String[] { "1", "2", "3" },
new String[] { "1", "A", "2", "3", "B" });
}
} }