aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/res/values-af/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-am/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ar/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-az-rAZ/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-az-rAZ/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-bg/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ca/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-cs/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-da/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-de/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-el/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-en-rGB/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-en-rIN/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-es-rUS/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-es/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-et-rEE/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-fa/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-fi/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-fi/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-fr-rCA/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-fr/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-hi/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-hr/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-hu/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-hy-rAM/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-hy-rAM/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-in/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-it/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-iw/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ja/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ka-rGE/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-ka-rGE/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-km-rKH/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-km-rKH/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ko/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-lo-rLA/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-lo-rLA/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-lt/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-lv/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-mn-rMN/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-mn-rMN/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ms-rMY/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-ms-rMY/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-nb/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ne-rNP/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-ne-rNP/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-nl/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-pl/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-pt-rPT/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-pt/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-pt/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ro/strings-emoji-descriptions.xml5
-rw-r--r--java/res/values-ro/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-ru/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-sk/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-sl/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-sr/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-sv/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-sw/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-th/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-tl/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-tr/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-uk/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-vi/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-zh-rCN/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-zh-rHK/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-zh-rTW/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values-zu/strings-talkback-descriptions.xml5
-rw-r--r--java/res/values/config-common.xml1
-rw-r--r--java/res/values/strings-production.xml (renamed from java/res/xml/keys_comma_period_symbols.xml)16
-rw-r--r--java/res/values/strings-talkback-descriptions.xml10
-rw-r--r--java/res/values/strings.xml3
-rw-r--r--java/res/xml-sw600dp/key_comma.xml47
-rw-r--r--java/res/xml-sw600dp/key_period.xml (renamed from java/res/xml-sw600dp/keys_comma_period.xml)11
-rw-r--r--java/res/xml-sw600dp/key_styles_common.xml3
-rw-r--r--java/res/xml-sw600dp/row_dvorak4.xml14
-rw-r--r--java/res/xml-sw600dp/row_qwerty4.xml11
-rw-r--r--java/res/xml/key_f1.xml6
-rw-r--r--java/res/xml/key_styles_common.xml6
-rw-r--r--java/res/xml/key_styles_less_greater.xml (renamed from java/res/xml/keys_less_greater.xml)14
-rw-r--r--java/res/xml/key_styles_settings.xml (renamed from java/res/xml/key_styles_f1.xml)6
-rw-r--r--java/res/xml/prefs.xml6
-rw-r--r--java/res/xml/row_dvorak4.xml2
-rw-r--r--java/res/xml/row_symbols4.xml12
-rw-r--r--java/res/xml/row_symbols_shift4.xml15
-rw-r--r--java/src/com/android/inputmethod/accessibility/AccessibilityLongPressTimer.java67
-rw-r--r--java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java65
-rw-r--r--java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java78
-rw-r--r--java/src/com/android/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate.java114
-rw-r--r--java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java37
-rw-r--r--java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java48
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java8
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java4
-rw-r--r--java/src/com/android/inputmethod/latin/InputView.java20
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java24
-rw-r--r--java/src/com/android/inputmethod/latin/settings/SettingsFragment.java15
-rw-r--r--java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java14
-rw-r--r--java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java34
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Arabic.java11
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java12
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java5
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Farsi.java16
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Khmer.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Lao.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java7
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java14
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Symbols.java2
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java3
-rw-r--r--tests/src/com/android/inputmethod/keyboard/layout/Thai.java2
-rw-r--r--tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java26
-rw-r--r--tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml2
-rw-r--r--tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml2
113 files changed, 956 insertions, 203 deletions
diff --git a/java/res/values-af/strings-talkback-descriptions.xml b/java/res/values-af/strings-talkback-descriptions.xml
index aee891bf0..3c2cb63ef 100644
--- a/java/res/values-af/strings-talkback-descriptions.xml
+++ b/java/res/values-af/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Geen teks is ingevoer nie"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korrigeer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> voer outokorrigering uit"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Sleutelkode %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer simbole"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-am/strings-talkback-descriptions.xml b/java/res/values-am/strings-talkback-descriptions.xml
index aab15878d..2e1243a1f 100644
--- a/java/res/values-am/strings-talkback-descriptions.xml
+++ b/java/res/values-am/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ምንም ፅሁፍ አልገባም"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>ን ወደ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> ያርመዋል"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> የራስ ሰር እርማት ያከናውናል"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"የቁልፍ ኮድ %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"ቀይር"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"ተጨማሪ ምልክቶች"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ar/strings-talkback-descriptions.xml b/java/res/values-ar/strings-talkback-descriptions.xml
index 1e5ec4494..0ca701bbe 100644
--- a/java/res/values-ar/strings-talkback-descriptions.xml
+++ b/java/res/values-ar/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"لم يتم إدخال نص"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> لتصحيح <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> إلى <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> لإجراء التصحيح التلقائي"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"‏رمز المفتاح %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"المزيد من الرموز"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-az-rAZ/strings-emoji-descriptions.xml b/java/res/values-az-rAZ/strings-emoji-descriptions.xml
index a9bfb7763..b6c259f73 100644
--- a/java/res/values-az-rAZ/strings-emoji-descriptions.xml
+++ b/java/res/values-az-rAZ/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Müəllif hüququ nişanı"</string>
diff --git a/java/res/values-az-rAZ/strings-talkback-descriptions.xml b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
index 3a0596e56..5dd303aec 100644
--- a/java/res/values-az-rAZ/strings-talkback-descriptions.xml
+++ b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Mətn daxil edilməyib"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sözünü <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> sözü ilə əvəzləyərək düzəldir"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> avto-korreksiyanı həyata keçirir"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"%d açar kodu"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Sürüşdürmə"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Daha çox simvol"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Sürüşdürmə"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-bg/strings-talkback-descriptions.xml b/java/res/values-bg/strings-talkback-descriptions.xml
index 3f0ac83fc..50025b535 100644
--- a/java/res/values-bg/strings-talkback-descriptions.xml
+++ b/java/res/values-bg/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Няма въведен текст"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"„<xliff:g id="KEY_NAME">%1$s</xliff:g>“ коригира „<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>“ на „<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>“"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"„<xliff:g id="KEY_NAME">%1$s</xliff:g>“ изпълнява автоматично коригиране"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Код на клавишa %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Още символи"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 4097d9375..3127feb1c 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No s\'ha introduït cap text."</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregeix <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> per <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa la correcció automàtica."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Clau de codi %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Més símbols"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maj"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-cs/strings-talkback-descriptions.xml b/java/res/values-cs/strings-talkback-descriptions.xml
index dae9b7886..a80957929 100644
--- a/java/res/values-cs/strings-talkback-descriptions.xml
+++ b/java/res/values-cs/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Není zadán žádný text"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Klávesou <xliff:g id="KEY_NAME">%1$s</xliff:g> opravíte <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesou <xliff:g id="KEY_NAME">%1$s</xliff:g> provedete automatickou opravu"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Kód klávesy %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Další symboly"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index 53326b344..ffcdb442c 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Der er ingen indtastet tekst"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> retter <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> til <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> udfører automatisk stavekontrol"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Tastekode %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Flere symboler"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift-tast"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-de/strings-talkback-descriptions.xml b/java/res/values-de/strings-talkback-descriptions.xml
index f926b9a59..e2fe2b7c5 100644
--- a/java/res/values-de/strings-talkback-descriptions.xml
+++ b/java/res/values-de/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Kein Text eingegeben"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Mit <xliff:g id="KEY_NAME">%1$s</xliff:g> wird \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" in \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\" geändert."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Mit <xliff:g id="KEY_NAME">%1$s</xliff:g> erfolgt eine Autokorrektur."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Tastencode %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Umschalttaste"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Weitere Symbole"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift-Taste"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-el/strings-talkback-descriptions.xml b/java/res/values-el/strings-talkback-descriptions.xml
index 3b990ad3f..60a6d174a 100644
--- a/java/res/values-el/strings-talkback-descriptions.xml
+++ b/java/res/values-el/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Δεν υπάρχει κείμενο"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> διορθώνει το <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> σε <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> εκτελεί αυτόματη διόρθωση"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Κωδικός πλήκτρου %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Περισσότερα σύμβολα"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-en-rGB/strings-talkback-descriptions.xml b/java/res/values-en-rGB/strings-talkback-descriptions.xml
index 225df1ad6..0f726ddaf 100644
--- a/java/res/values-en-rGB/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rGB/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Key code %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-en-rIN/strings-talkback-descriptions.xml b/java/res/values-en-rIN/strings-talkback-descriptions.xml
index 225df1ad6..0f726ddaf 100644
--- a/java/res/values-en-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rIN/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Key code %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-es-rUS/strings-talkback-descriptions.xml b/java/res/values-es-rUS/strings-talkback-descriptions.xml
index bdf2babbd..52f791631 100644
--- a/java/res/values-es-rUS/strings-talkback-descriptions.xml
+++ b/java/res/values-es-rUS/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No se ingresó texto."</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> por <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige automáticamente."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Clave de código %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Mayúsculas"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Más símbolos"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Mayúscula"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-es/strings-talkback-descriptions.xml b/java/res/values-es/strings-talkback-descriptions.xml
index 9cc6f5de4..86c970f81 100644
--- a/java/res/values-es/strings-talkback-descriptions.xml
+++ b/java/res/values-es/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"No se ha introducido texto"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> a <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregirá la palabra automáticamente"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Código del teclado: %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Mayús"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Más símbolos"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Mayús"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-et-rEE/strings-talkback-descriptions.xml b/java/res/values-et-rEE/strings-talkback-descriptions.xml
index 092298730..2a7493e71 100644
--- a/java/res/values-et-rEE/strings-talkback-descriptions.xml
+++ b/java/res/values-et-rEE/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Teksti ei ole sisestatud"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> parandab sõna <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> järgmiselt: <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> teeb automaatse paranduse"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Klahvi kood: %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Tõstuklahv"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Rohkem sümboleid"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Tõstuklahv"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index bc3a5bf7c..b36b88a6a 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"نوشتاری وارد نشده است"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>، ‏<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> را به <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> تصحیح می‌کند"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> تصحیح خودکار را انجام می‌دهد"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"‏کد کلید %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"نمادهای بیشتر"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"تبدیل"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-fi/strings-emoji-descriptions.xml b/java/res/values-fi/strings-emoji-descriptions.xml
index 74f8a091d..ad08bbda2 100644
--- a/java/res/values-fi/strings-emoji-descriptions.xml
+++ b/java/res/values-fi/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyright-merkki"</string>
diff --git a/java/res/values-fi/strings-talkback-descriptions.xml b/java/res/values-fi/strings-talkback-descriptions.xml
index ffc7eef33..e6050fb67 100644
--- a/java/res/values-fi/strings-talkback-descriptions.xml
+++ b/java/res/values-fi/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Ei kirjoitettua tekstiä"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korjaa sanan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sanaksi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> suorittaa automaattisen korjauksen"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Näppäimen koodi %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Vaihto"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Lisää symboleita"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Vaihto"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-fr-rCA/strings-talkback-descriptions.xml b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
index 2ddffc86d..263792c66 100644
--- a/java/res/values-fr-rCA/strings-talkback-descriptions.xml
+++ b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Aucun texte entré"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet de remplacer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> par <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Code touche %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Majuscule"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Autres symboles"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Majuscule"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-fr/strings-talkback-descriptions.xml b/java/res/values-fr/strings-talkback-descriptions.xml
index d0b5c3bd5..37904262e 100644
--- a/java/res/values-fr/strings-talkback-descriptions.xml
+++ b/java/res/values-fr/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Aucun texte saisi"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet de remplacer \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" par \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\"."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Code touche %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Autres symboles"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maj"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml
index 582314e93..9747aeb34 100644
--- a/java/res/values-hi/strings-talkback-descriptions.xml
+++ b/java/res/values-hi/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई पाठ नहीं डाला गया"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> को सुधार कर <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> करता है"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वत: सुधार करता है"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"कुंजी कोड %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"शिफ़्ट"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"और प्रतीक"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"शिफ़्ट"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-hr/strings-talkback-descriptions.xml b/java/res/values-hr/strings-talkback-descriptions.xml
index 75d168447..a5c4dfaee 100644
--- a/java/res/values-hr/strings-talkback-descriptions.xml
+++ b/java/res/values-hr/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nije unesen tekst"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ispravlja <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> u <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> vrši samoispravljanje"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Kôd tipke %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Više simbola"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-hu/strings-talkback-descriptions.xml b/java/res/values-hu/strings-talkback-descriptions.xml
index a03895b25..1b514b2d4 100644
--- a/java/res/values-hu/strings-talkback-descriptions.xml
+++ b/java/res/values-hu/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nincs szöveg megadva"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> billentyű – <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> szóra javítja a következőt: <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> billentyű automatikus javítást végez"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Billentyűkód: %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"További szimbólumok"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-hy-rAM/strings-emoji-descriptions.xml b/java/res/values-hy-rAM/strings-emoji-descriptions.xml
index 21a439fa5..f41f2fc96 100644
--- a/java/res/values-hy-rAM/strings-emoji-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Հեղինակային իրավունքի նշան"</string>
diff --git a/java/res/values-hy-rAM/strings-talkback-descriptions.xml b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
index 7df498ee7..d9c9b6d82 100644
--- a/java/res/values-hy-rAM/strings-talkback-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Տեքստ չի մուտքագրվել"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>-ը շտկում է <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ը՝ դարձնելով <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ստեղնը ինքնաշտկում է կատարում"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Բանալու կոդը՝ %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Հավելյալ նշաններ"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-in/strings-talkback-descriptions.xml b/java/res/values-in/strings-talkback-descriptions.xml
index 1f206ee85..07c5bf749 100644
--- a/java/res/values-in/strings-talkback-descriptions.xml
+++ b/java/res/values-in/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Tidak ada teks yang dimasukkan"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> mengoreksi <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan koreksi otomatis"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Kode tombol %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Simbol lainnya"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-it/strings-talkback-descriptions.xml b/java/res/values-it/strings-talkback-descriptions.xml
index 3b4cca377..e48f7715e 100644
--- a/java/res/values-it/strings-talkback-descriptions.xml
+++ b/java/res/values-it/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nessun testo inserito"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregge <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> con <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> esegue la correzione automatica"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Codice tasto %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Maiusc"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Altri simboli"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maiusc"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-iw/strings-talkback-descriptions.xml b/java/res/values-iw/strings-talkback-descriptions.xml
index d6c2878cd..f3f07af03 100644
--- a/java/res/values-iw/strings-talkback-descriptions.xml
+++ b/java/res/values-iw/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"לא הוזן טקסט"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> מתקן את <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ל-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> מבצע תיקון אוטומטי"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"‏קוד מקש %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"סמלים נוספים"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ja/strings-talkback-descriptions.xml b/java/res/values-ja/strings-talkback-descriptions.xml
index b218b49ba..757b83209 100644
--- a/java/res/values-ja/strings-talkback-descriptions.xml
+++ b/java/res/values-ja/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"テキストが入力されていません"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>は<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>を<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>に修正します"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g>で自動修正が実行されます"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"キーコード: %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"記号拡張"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ka-rGE/strings-emoji-descriptions.xml b/java/res/values-ka-rGE/strings-emoji-descriptions.xml
index 81c6661ef..1840efc10 100644
--- a/java/res/values-ka-rGE/strings-emoji-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"საავტორო უფლების ნიშანი"</string>
diff --git a/java/res/values-ka-rGE/strings-talkback-descriptions.xml b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
index 147031664..daf818005 100644
--- a/java/res/values-ka-rGE/strings-talkback-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ტექსტი შეყვანილი არ არის"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> შეასწორებს <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ს <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>-ად"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ასრულებს ავტოკორექციას"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"კლავიატურის კოდი %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"დამატებითი სიმბოლოები"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-km-rKH/strings-emoji-descriptions.xml b/java/res/values-km-rKH/strings-emoji-descriptions.xml
index c81e5e1ca..9f1d9973e 100644
--- a/java/res/values-km-rKH/strings-emoji-descriptions.xml
+++ b/java/res/values-km-rKH/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"សញ្ញា​រក្សា​សិទ្ធ"</string>
diff --git a/java/res/values-km-rKH/strings-talkback-descriptions.xml b/java/res/values-km-rKH/strings-talkback-descriptions.xml
index bb8c38376..67934c702 100644
--- a/java/res/values-km-rKH/strings-talkback-descriptions.xml
+++ b/java/res/values-km-rKH/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"គ្មាន​អត្ថបទ​​​បាន​បញ្ចូល"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> កែ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ទៅ​ជា <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> អនុវត្ត​ការ​កែ​ស្វ័យ​ប្រវត្តិ"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"កូដ​គ្រាប់​ចុច %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"និមិត្ត​សញ្ញា​​ច្រើន​ទៀត"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ko/strings-talkback-descriptions.xml b/java/res/values-ko/strings-talkback-descriptions.xml
index 459571627..117c09539 100644
--- a/java/res/values-ko/strings-talkback-descriptions.xml
+++ b/java/res/values-ko/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"입력한 텍스트 없음"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>을(를) 누르면 <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>을(를) <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>(으)로 수정합니다."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g>을(를) 누르면 자동 수정됩니다."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"키 코드 %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift 키"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"기호 더보기"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift 키"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-lo-rLA/strings-emoji-descriptions.xml b/java/res/values-lo-rLA/strings-emoji-descriptions.xml
index ae66e1474..83a702e95 100644
--- a/java/res/values-lo-rLA/strings-emoji-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"ເຄື່ອງ​ໝາຍ​ລິຂະສິດ"</string>
diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
index 9d07735b2..4a63b02c7 100644
--- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ບໍ່ມີ​ການໃສ່​ຂໍ້ຄວາມ"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ແກ້​ໄຂ​ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ເປັນ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ດຳ​ເນີນ​ການ​ແກ້​ໄຂ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"ລະຫັດ​ກະແຈ %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"​ສັນ​ຍາ​ລັກ​ເພີ່ມ​ເຕີມ"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-lt/strings-talkback-descriptions.xml b/java/res/values-lt/strings-talkback-descriptions.xml
index a5cb62c21..8baf25b56 100644
--- a/java/res/values-lt/strings-talkback-descriptions.xml
+++ b/java/res/values-lt/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nėra įvesto teksto"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> pataiso <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> į <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> atlieka automatinį taisymą"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Klavišo kodas %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Klavišas „Shift“"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Daugiau simbolių"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Klavišas „Shift“"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-lv/strings-talkback-descriptions.xml b/java/res/values-lv/strings-talkback-descriptions.xml
index 544fe9a4d..bd15c3fce 100644
--- a/java/res/values-lv/strings-talkback-descriptions.xml
+++ b/java/res/values-lv/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Teksts nav ievadīts"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Nospiežot taustiņu <xliff:g id="KEY_NAME">%1$s</xliff:g>, “<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>” tiek labots uz “<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>”."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Taustiņam <xliff:g id="KEY_NAME">%1$s</xliff:g> ir automātiskas labošanas funkcija."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Taustiņu kods %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Pārslēgšanas taustiņš"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Citi simboli"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Pārslēgšanas taustiņš"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-mn-rMN/strings-emoji-descriptions.xml b/java/res/values-mn-rMN/strings-emoji-descriptions.xml
index 048672b10..f09a51dd9 100644
--- a/java/res/values-mn-rMN/strings-emoji-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Зохиогчийн эрхийн тэмдэг"</string>
diff --git a/java/res/values-mn-rMN/strings-talkback-descriptions.xml b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
index 982495044..c28ac209a 100644
--- a/java/res/values-mn-rMN/strings-talkback-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст оруулаагүй"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> нь <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-г <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> руу залруулна"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> авто-залруулалт хийдэг"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Товчийн код %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Шифт"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Өөр тэмдэгтүүд"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Шифт"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ms-rMY/strings-emoji-descriptions.xml b/java/res/values-ms-rMY/strings-emoji-descriptions.xml
index c945c81fb..1595a99a7 100644
--- a/java/res/values-ms-rMY/strings-emoji-descriptions.xml
+++ b/java/res/values-ms-rMY/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Tanda hak cipta"</string>
diff --git a/java/res/values-ms-rMY/strings-talkback-descriptions.xml b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
index 842a2bf69..ad0a62793 100644
--- a/java/res/values-ms-rMY/strings-talkback-descriptions.xml
+++ b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Tiada teks dimasukkan"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> membetulkan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan auto pembetulan"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Kod kunci %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Lagi simbol"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-nb/strings-talkback-descriptions.xml b/java/res/values-nb/strings-talkback-descriptions.xml
index 27c68fdc4..899491afb 100644
--- a/java/res/values-nb/strings-talkback-descriptions.xml
+++ b/java/res/values-nb/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Ingen tekst er skrevet inn"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> retter <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> til <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> utfører automatisk retting"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Tastaturkode %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Flere symboler"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ne-rNP/strings-emoji-descriptions.xml b/java/res/values-ne-rNP/strings-emoji-descriptions.xml
index 3cf2971c8..a3419b86d 100644
--- a/java/res/values-ne-rNP/strings-emoji-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"प्रतिलिपि अधिकार चिन्ह"</string>
diff --git a/java/res/values-ne-rNP/strings-talkback-descriptions.xml b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
index c8e5a7529..548e21a88 100644
--- a/java/res/values-ne-rNP/strings-talkback-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"कुनै पाठ प्रविष्टि गरिएको छैन"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ले <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> लाई <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> मा सच्याउँछ"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ले स्वतः सच्याउने गर्छ"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"कुञ्जी कोड %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"सिफ्ट"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"थप प्रतीकहरु"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"सिफ्ट"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-nl/strings-talkback-descriptions.xml b/java/res/values-nl/strings-talkback-descriptions.xml
index a7fe2073d..4393e568a 100644
--- a/java/res/values-nl/strings-talkback-descriptions.xml
+++ b/java/res/values-nl/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Geen tekst ingevoerd"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Met <xliff:g id="KEY_NAME">%1$s</xliff:g> wordt <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> gecorrigeerd naar <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Met <xliff:g id="KEY_NAME">%1$s</xliff:g> voert u automatische correctie uit"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Toetscode %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer symbolen"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-pl/strings-talkback-descriptions.xml b/java/res/values-pl/strings-talkback-descriptions.xml
index 1ec691e46..9a97b2642 100644
--- a/java/res/values-pl/strings-talkback-descriptions.xml
+++ b/java/res/values-pl/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nie wpisano tekstu"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> poprawia <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> wykonuje autokorektę"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Kod klawisza: %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Więcej symboli"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-pt-rPT/strings-talkback-descriptions.xml b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
index 854136479..fac1969c1 100644
--- a/java/res/values-pt-rPT/strings-talkback-descriptions.xml
+++ b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nenhum texto digitado"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> para <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa a correção automática"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Código da tecla %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mais símbolos"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-pt/strings-emoji-descriptions.xml b/java/res/values-pt/strings-emoji-descriptions.xml
index 1c6ad71f9..84e2cc08c 100644
--- a/java/res/values-pt/strings-emoji-descriptions.xml
+++ b/java/res/values-pt/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Símbolo de copyright"</string>
diff --git a/java/res/values-pt/strings-talkback-descriptions.xml b/java/res/values-pt/strings-talkback-descriptions.xml
index 7ad42ad19..e026dbab1 100644
--- a/java/res/values-pt/strings-talkback-descriptions.xml
+++ b/java/res/values-pt/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nenhum texto digitado"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> para <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> realiza correção automática"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Código de tecla %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mais símbolos"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ro/strings-emoji-descriptions.xml b/java/res/values-ro/strings-emoji-descriptions.xml
index a4a1a9527..f44a0b974 100644
--- a/java/res/values-ro/strings-emoji-descriptions.xml
+++ b/java/res/values-ro/strings-emoji-descriptions.xml
@@ -18,6 +18,11 @@
*/
-->
+<!--
+ These Emoji symbols are unsupported by TTS.
+ TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="spoken_emoji_00A9" msgid="2859822817116803638">"Semnul Copyright"</string>
diff --git a/java/res/values-ro/strings-talkback-descriptions.xml b/java/res/values-ro/strings-talkback-descriptions.xml
index 40821758b..34bfd8fc8 100644
--- a/java/res/values-ro/strings-talkback-descriptions.xml
+++ b/java/res/values-ro/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nu a fost introdus text"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corectează <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> cu <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> efectuează corectare automată"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Tasta cu codul %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mai multe simboluri"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-ru/strings-talkback-descriptions.xml b/java/res/values-ru/strings-talkback-descriptions.xml
index 09fbb454c..d79e4b8f0 100644
--- a/java/res/values-ru/strings-talkback-descriptions.xml
+++ b/java/res/values-ru/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст не введен."</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"При нажатии клавиши <xliff:g id="KEY_NAME">%1$s</xliff:g> слово <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> будет исправлено на <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Клавиша <xliff:g id="KEY_NAME">%1$s</xliff:g> выполняет автоисправление."</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Код клавиши %d."</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Клавиша верхнего регистра."</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Дополнительные символы."</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Клавиша верхнего регистра."</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-sk/strings-talkback-descriptions.xml b/java/res/values-sk/strings-talkback-descriptions.xml
index 68bd175ae..e2f0eb191 100644
--- a/java/res/values-sk/strings-talkback-descriptions.xml
+++ b/java/res/values-sk/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Nie je zadaný žiadny text"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> opravíte slovo <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> spustíte automatické opravy"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Kód klávesa %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Ďalšie symboly"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-sl/strings-talkback-descriptions.xml b/java/res/values-sl/strings-talkback-descriptions.xml
index ec6289b53..92ccc6856 100644
--- a/java/res/values-sl/strings-talkback-descriptions.xml
+++ b/java/res/values-sl/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Ni vnesenega besedila"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Tipka <xliff:g id="KEY_NAME">%1$s</xliff:g> popravi <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> v <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Tipka <xliff:g id="KEY_NAME">%1$s</xliff:g> izvede samopopravek"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Koda tipke %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Več simbolov"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-sr/strings-talkback-descriptions.xml b/java/res/values-sr/strings-talkback-descriptions.xml
index f8d1eb43c..d14cccfbc 100644
--- a/java/res/values-sr/strings-talkback-descriptions.xml
+++ b/java/res/values-sr/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст није унет"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> исправља <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> у <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> обавља аутоматско исправљање"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Кôд тастера %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Још симбола"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-sv/strings-talkback-descriptions.xml b/java/res/values-sv/strings-talkback-descriptions.xml
index cb241c8af..fd7a43f65 100644
--- a/java/res/values-sv/strings-talkback-descriptions.xml
+++ b/java/res/values-sv/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Ingen text har angetts"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Om du trycker på <xliff:g id="KEY_NAME">%1$s</xliff:g> rättas <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> till <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Om du trycker på <xliff:g id="KEY_NAME">%1$s</xliff:g> utförs autokorrigering"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Nyckelkod %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Skift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Fler symboler"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Skift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-sw/strings-talkback-descriptions.xml b/java/res/values-sw/strings-talkback-descriptions.xml
index f03287036..a7447cec4 100644
--- a/java/res/values-sw/strings-talkback-descriptions.xml
+++ b/java/res/values-sw/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Hakuna maandishi yaliyoingizwa"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hurekebisha <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kuwa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hufanya marekebisho otomatiki"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Msimbo wa kitufe %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Alama zaidi"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-th/strings-talkback-descriptions.xml b/java/res/values-th/strings-talkback-descriptions.xml
index 48b21b72b..780252074 100644
--- a/java/res/values-th/strings-talkback-descriptions.xml
+++ b/java/res/values-th/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"ไม่มีข้อความ"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> แก้ไข <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> เป็น <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ทำการแก้ไขอัตโนมัติ"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"รหัสคีย์ %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"สัญลักษณ์เพิ่มเติม"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-tl/strings-talkback-descriptions.xml b/java/res/values-tl/strings-talkback-descriptions.xml
index 97905ad57..df977bdf5 100644
--- a/java/res/values-tl/strings-talkback-descriptions.xml
+++ b/java/res/values-tl/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Walang tekstong inilagay"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"Itinatama ng <xliff:g id="KEY_NAME">%1$s</xliff:g> ang <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Nagsasagawa ang <xliff:g id="KEY_NAME">%1$s</xliff:g> ng auto-correction"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Key code %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Marami pang simbolo"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-tr/strings-talkback-descriptions.xml b/java/res/values-tr/strings-talkback-descriptions.xml
index 970f5848a..c392e8594 100644
--- a/java/res/values-tr/strings-talkback-descriptions.xml
+++ b/java/res/values-tr/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Metin girilmedi"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>, <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kelimesini <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> olarak düzeltir"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> otomatik düzeltme yapar"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Tuş kodu: %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Üst karakter"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Diğer simgeler"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Üst karakter"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-uk/strings-talkback-descriptions.xml b/java/res/values-uk/strings-talkback-descriptions.xml
index 20f164740..3f43a1233 100644
--- a/java/res/values-uk/strings-talkback-descriptions.xml
+++ b/java/res/values-uk/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст не введено"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> виправляє слово \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" на \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\""</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> автоматично виправляє"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Код клавіші – %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Більше символів"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Клавіша Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-vi/strings-talkback-descriptions.xml b/java/res/values-vi/strings-talkback-descriptions.xml
index 6da8cec09..5c9140996 100644
--- a/java/res/values-vi/strings-talkback-descriptions.xml
+++ b/java/res/values-vi/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Không có ký tự nào được nhập"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> sửa <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> thành <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> tự động sửa"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Mã phím %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Biểu tượng khác"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-zh-rCN/strings-talkback-descriptions.xml b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
index ee025f689..f0770ab3a 100644
--- a/java/res/values-zh-rCN/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"未输入文字"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>键可将<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>更正为<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>键可进行自动更正"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"键码为%d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"更多符号"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift键"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-zh-rHK/strings-talkback-descriptions.xml b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
index 3484bf33b..1bed8c96a 100644
--- a/java/res/values-zh-rHK/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"未輸入文字"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可自動修正"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"按鍵代碼 %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift 鍵"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"更多符號"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift 鍵"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-zh-rTW/strings-talkback-descriptions.xml b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
index 4d0352ec2..f7ca6cef3 100644
--- a/java/res/values-zh-rTW/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"未輸入文字"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"按下「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按下「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可執行自動修正"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"按鍵代碼 %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"Shift 鍵"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"更多符號"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift 鍵"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values-zu/strings-talkback-descriptions.xml b/java/res/values-zu/strings-talkback-descriptions.xml
index ff7c3c999..1a6f8b40d 100644
--- a/java/res/values-zu/strings-talkback-descriptions.xml
+++ b/java/res/values-zu/strings-talkback-descriptions.xml
@@ -25,7 +25,8 @@
<string name="spoken_no_text_entered" msgid="1711276837961785646">"Awukho umbhalo ofakiwe"</string>
<string name="spoken_auto_correct" msgid="8989324692167993804">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> ilungisa i-<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kube yi-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
<string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> yenza ukulungisa okuzenzakalelayo"</string>
- <string name="spoken_description_unknown" msgid="2382510329910793539">"Ikhodi yokhiye %d"</string>
+ <!-- no translation found for spoken_description_unknown (5139930082759824442) -->
+ <skip />
<string name="spoken_description_shift" msgid="7209798151676638728">"U-Shift"</string>
<string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Amasimbuli amaningi"</string>
<string name="spoken_description_shift_shifted" msgid="3122704922642232605">"U-Shift"</string>
@@ -77,6 +78,8 @@
<skip />
<!-- no translation found for spoken_letter_0130 (4766619646231612274) -->
<skip />
+ <!-- no translation found for spoken_symbol_unknown (717298227061173706) -->
+ <skip />
<!-- no translation found for spoken_emoji_unknown (5981009928135394306) -->
<skip />
</resources>
diff --git a/java/res/values/config-common.xml b/java/res/values/config-common.xml
index ad27ab427..58f3e9827 100644
--- a/java/res/values/config-common.xml
+++ b/java/res/values/config-common.xml
@@ -48,6 +48,7 @@
<integer name="config_max_longpress_timeout">700</integer>
<integer name="config_min_longpress_timeout">100</integer>
<integer name="config_longpress_timeout_step">10</integer>
+ <integer name="config_accessibility_long_press_key_timeout">1500</integer>
<integer name="config_max_more_keys_column">5</integer>
<integer name="config_more_keys_keyboard_fadein_anim_time">0</integer>
<integer name="config_more_keys_keyboard_fadeout_anim_time">100</integer>
diff --git a/java/res/xml/keys_comma_period_symbols.xml b/java/res/values/strings-production.xml
index 843595c27..8064b9949 100644
--- a/java/res/xml/keys_comma_period_symbols.xml
+++ b/java/res/values/strings-production.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2013, The Android Open Source Project
+** Copyright 2014, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -18,13 +18,7 @@
*/
-->
-<merge
- xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
- <Key
- latin:keySpec="!text/keyspec_comma" />
- <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
- <Key
- latin:keySpec="."
- latin:moreKeys="&#x2026;" />
-</merge>
+<resources>
+ <!-- Description for option to enable sending usage statistics -->
+ <string name="enable_metrics_logging_summary" translatable="false"></string>
+</resources>
diff --git a/java/res/values/strings-talkback-descriptions.xml b/java/res/values/strings-talkback-descriptions.xml
index fa06362d8..80c7bdbf0 100644
--- a/java/res/values/strings-talkback-descriptions.xml
+++ b/java/res/values/strings-talkback-descriptions.xml
@@ -139,4 +139,14 @@
<string name="spoken_symbol_unknown">Unknown symbol</string>
<!-- Spoken description for unknown emoji code point. -->
<string name="spoken_emoji_unknown">Unknown emoji</string>
+
+ <!-- Spoken descriptions when opening a more keys keyboard that has alternative characters. -->
+ <string name="spoken_open_more_keys_keyboard">Alternative characters are available</string>
+ <!-- Spoken descriptions when closing a more keys keyboard that has alternative characters. -->
+ <string name="spoken_close_more_keys_keyboard">Alternative characters are dismissed</string>
+
+ <!-- Spoken descriptions when opening a more suggestions panel that has alternative suggested words. -->
+ <string name="spoken_open_more_suggestions">Alternative suggestions are available</string>
+ <!-- Spoken descriptions when closing a more suggestions panel that has alternative suggested words. -->
+ <string name="spoken_close_more_suggestions">Alternative suggestions are dismissed</string>
</resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 2ad7ce592..3f5980dfd 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -87,6 +87,9 @@
<!-- Option name for enabling the use by the keyboards of sent/received messages, e-mail and typing history to improve suggestion accuracy [CHAR LIMIT=25] -->
<string name="use_personalized_dicts">Personalized suggestions</string>
+ <!-- Option to enable sending usage statistics -->
+ <string name="enable_metrics_logging">"Improve <xliff:g id="APPLICATION_NAME" example="Android Keyboard">%s</xliff:g>"</string>
+
<!-- Option name for enabling or disabling the double-space period feature that lets double tap on spacebar insert a period followed by a space [CHAR LIMIT=30] -->
<string name="use_double_space_period">Double-space period</string>
<!-- Description for option enabling or disabling the double-space period feature that lets double tap on spacebar insert a period followed by a space [CHAR LIMIT=65] -->
diff --git a/java/res/xml-sw600dp/key_comma.xml b/java/res/xml-sw600dp/key_comma.xml
new file mode 100644
index 000000000..67199e237
--- /dev/null
+++ b/java/res/xml-sw600dp/key_comma.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <!-- The table comma key which may have settings as popup key. -->
+ <!-- Kept as a separate file for cleaner overriding by an overlay. -->
+ <key-style
+ latin:styleName="baseTabletCommaKeyStyle"
+ latin:keySpec="!text/keyspec_tablet_comma"
+ latin:keyHintLabel="!text/keyhintlabel_tablet_comma"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:parentStyle="hasShiftedLetterHintStyle" />
+ <switch>
+ <case
+ latin:clobberSettingsKey="true"
+ >
+ <Key
+ latin:moreKeys="!text/morekeys_tablet_comma"
+ latin:keyStyle="baseTabletCommaKeyStyle" />
+ </case>
+ <!-- clobberSettingsKey="false" -->
+ <default>
+ <Key
+ latin:moreKeys="!text/morekeys_tablet_comma,!text/keyspec_settings"
+ latin:keyStyle="baseTabletCommaKeyStyle" />
+ </default>
+ </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/keys_comma_period.xml b/java/res/xml-sw600dp/key_period.xml
index 23172cf18..d2909d82d 100644
--- a/java/res/xml-sw600dp/keys_comma_period.xml
+++ b/java/res/xml-sw600dp/key_period.xml
@@ -2,7 +2,7 @@
<!--
/*
**
-** Copyright 2013, The Android Open Source Project
+** Copyright 2014, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
@@ -21,13 +21,8 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <Key
- latin:keySpec="!text/keyspec_tablet_comma"
- latin:keyHintLabel="!text/keyhintlabel_tablet_comma"
- latin:keyLabelFlags="hasPopupHint"
- latin:moreKeys="!text/morekeys_tablet_comma"
- latin:backgroundType="functional"
- latin:keyStyle="hasShiftedLetterHintStyle" />
+ <!-- The table period key which may have different label depending on locale -->
+ <!-- Kept as a separate file for cleaner overriding by an overlay. -->
<switch>
<case
latin:languageCode="hi"
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index c5506b5ab..7de276901 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -35,6 +35,9 @@
latin:keyLabelFlags="hasShiftedLetterHint" />
</default>
</switch>
+ <!-- Base key style for the key which may have settings key as more keys. -->
+ <include
+ latin:keyboardLayout="@xml/key_styles_settings" />
<!-- Functional key styles -->
<!-- Base style for shift key. A single space is used for dummy label in moreKeys. -->
<key-style
diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml
index d3709ef6d..ab2b5603d 100644
--- a/java/res/xml-sw600dp/row_dvorak4.xml
+++ b/java/res/xml-sw600dp/row_dvorak4.xml
@@ -30,19 +30,19 @@
latin:keyWidth="10.0%p" />
<include
latin:keyboardLayout="@xml/key_settings" />
- <include
- latin:keyboardLayout="@xml/key_f1" />
+ <Key
+ latin:keySpec="_"
+ latin:keyHintLabel="-"
+ latin:moreKeys="-"
+ latin:keyStyle="hasShiftedLetterHintStyle" />
<include
latin:keyXPos="28.0%p"
latin:keyboardLayout="@xml/key_space_5kw"
latin:backgroundType="normal" />
<include
+ latin:keyboardLayout="@xml/key_f1" />
+ <include
latin:keyboardLayout="@xml/key_question_exclamation" />
- <Key
- latin:keySpec="-"
- latin:keyHintLabel="_"
- latin:moreKeys="_"
- latin:keyStyle="hasShiftedLetterHintStyle" />
<include
latin:keyboardLayout="@xml/key_f2" />
</Row>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index d93143761..0eb86f2d4 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -29,15 +29,18 @@
latin:keyStyle="toSymbolKeyStyle"
latin:keyWidth="10.0%p" />
<include
- latin:keyboardLayout="@xml/key_settings" />
- <include
- latin:keyboardLayout="@xml/key_f1" />
+ latin:keyboardLayout="@xml/key_comma" />
+ <Key
+ latin:keySpec="_" />
+ <!-- Space key. -->
<include
latin:keyXPos="28.0%p"
latin:keyboardLayout="@xml/key_space_5kw"
latin:backgroundType="normal" />
<include
- latin:keyboardLayout="@xml/keys_comma_period" />
+ latin:keyboardLayout="@xml/key_f1" />
+ <include
+ latin:keyboardLayout="@xml/key_period" />
<include
latin:keyboardLayout="@xml/key_f2" />
</Row>
diff --git a/java/res/xml/key_f1.xml b/java/res/xml/key_f1.xml
index 3471c85f5..7bd7385a1 100644
--- a/java/res/xml/key_f1.xml
+++ b/java/res/xml/key_f1.xml
@@ -27,20 +27,20 @@
>
<Key
latin:keySpec="/"
- latin:keyStyle="f1MoreKeysStyle" />
+ latin:keyStyle="settingsMoreKeysStyle" />
</case>
<case
latin:mode="email"
>
<Key
latin:keySpec="\@"
- latin:keyStyle="f1MoreKeysStyle" />
+ latin:keyStyle="settingsMoreKeysStyle" />
</case>
<default>
<Key
latin:keySpec="!text/keyspec_comma"
latin:keyLabelFlags="hasPopupHint"
- latin:keyStyle="f1MoreKeysStyle" />
+ latin:keyStyle="settingsMoreKeysStyle" />
</default>
</switch>
</merge>
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index 9d5d52e16..8b3bb2e5c 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -35,9 +35,9 @@
latin:keyLabelFlags="hasShiftedLetterHint" />
</default>
</switch>
- <!-- Base key style for the key which may have settings or tab key as popup key. -->
+ <!-- Base key style for the key which may have settings key as more keys. -->
<include
- latin:keyboardLayout="@xml/key_styles_f1" />
+ latin:keyboardLayout="@xml/key_styles_settings" />
<!-- Functional key styles -->
<!-- Base style for shift key. A single space is used for dummy label in moreKeys. -->
<key-style
@@ -104,7 +104,7 @@
latin:keyIconDisabled="!icon/shortcut_key_disabled"
latin:keyActionFlags="noKeyPreview|altCodeWhileTyping"
latin:altCode="!code/key_space"
- latin:parentStyle="f1MoreKeysStyle" />
+ latin:parentStyle="settingsMoreKeysStyle" />
<key-style
latin:styleName="settingsKeyStyle"
latin:keySpec="!icon/settings_key|!code/key_settings"
diff --git a/java/res/xml/keys_less_greater.xml b/java/res/xml/key_styles_less_greater.xml
index 778de02a1..db4c7984b 100644
--- a/java/res/xml/keys_less_greater.xml
+++ b/java/res/xml/key_styles_less_greater.xml
@@ -21,25 +21,31 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
+ <!-- The less and greater keys' style which may have different label depending on locale. -->
+ <!-- Kept as a separate file for cleaner overriding by an overlay. -->
<switch>
<case
latin:languageCode="fa"
>
- <Key
+ <key-style
+ latin:styleName="lessKeyStyle"
latin:keySpec="!text/keyspec_left_double_angle_quote"
latin:backgroundType="functional"
latin:moreKeys="!text/morekeys_less_than" />
- <Key
+ <key-style
+ latin:styleName="greaterKeyStyle"
latin:keySpec="!text/keyspec_right_double_angle_quote"
latin:backgroundType="functional"
latin:moreKeys="!text/morekeys_greater_than" />
</case>
<default>
- <Key
+ <key-style
+ latin:styleName="lessKeyStyle"
latin:keySpec="!text/keyspec_less_than"
latin:backgroundType="functional"
latin:moreKeys="!text/morekeys_less_than" />
- <Key
+ <key-style
+ latin:styleName="greaterKeyStyle"
latin:keySpec="!text/keyspec_greater_than"
latin:backgroundType="functional"
latin:moreKeys="!text/morekeys_greater_than" />
diff --git a/java/res/xml/key_styles_f1.xml b/java/res/xml/key_styles_settings.xml
index 8a07827fa..956b40235 100644
--- a/java/res/xml/key_styles_f1.xml
+++ b/java/res/xml/key_styles_settings.xml
@@ -21,20 +21,20 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <!-- Base key style for the key which may have settings or tab key as popup key. -->
+ <!-- Base key style for the key which may have settings key as more keys. -->
<!-- Kept as a separate file for cleaner overriding by an overlay. -->
<switch>
<case
latin:clobberSettingsKey="true"
>
<key-style
- latin:styleName="f1MoreKeysStyle"
+ latin:styleName="settingsMoreKeysStyle"
latin:backgroundType="functional" />
</case>
<!-- clobberSettingsKey="false" -->
<default>
<key-style
- latin:styleName="f1MoreKeysStyle"
+ latin:styleName="settingsMoreKeysStyle"
latin:keyLabelFlags="hasPopupHint"
latin:moreKeys="!text/keyspec_settings"
latin:backgroundType="functional" />
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index a62986228..0e9c16190 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -95,6 +95,12 @@
android:summary="@string/use_personalized_dicts_summary"
android:persistent="true"
android:defaultValue="true" />
+ <!-- title will be set programmatically to embed application name -->
+ <CheckBoxPreference
+ android:key="pref_enable_metrics_logging"
+ android:summary="@string/enable_metrics_logging_summary"
+ android:persistent="true"
+ android:defaultValue="true" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/gesture_typing_category"
diff --git a/java/res/xml/row_dvorak4.xml b/java/res/xml/row_dvorak4.xml
index 279f64627..e7a3ee736 100644
--- a/java/res/xml/row_dvorak4.xml
+++ b/java/res/xml/row_dvorak4.xml
@@ -30,7 +30,7 @@
<Key
latin:keySpec="q"
latin:backgroundType="normal"
- latin:keyStyle="f1MoreKeysStyle" />
+ latin:keyStyle="settingsMoreKeysStyle" />
<include
latin:keyXPos="25%p"
latin:keyboardLayout="@xml/key_space_5kw" />
diff --git a/java/res/xml/row_symbols4.xml b/java/res/xml/row_symbols4.xml
index 09f6b628c..2be03bd6d 100644
--- a/java/res/xml/row_symbols4.xml
+++ b/java/res/xml/row_symbols4.xml
@@ -20,11 +20,15 @@
<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
<Key
- latin:keySpec="_" />
+ latin:keySpec="!text/keyspec_comma" />
<Key
- latin:keySpec="/" />
+ latin:keySpec="_" />
<include
latin:keyboardLayout="@xml/key_space_symbols" />
- <include
- latin:keyboardLayout="@xml/keys_comma_period_symbols" />
+ <Key
+ latin:keySpec="/" />
+ <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
+ <Key
+ latin:keySpec="."
+ latin:moreKeys="&#x2026;" />
</merge>
diff --git a/java/res/xml/row_symbols_shift4.xml b/java/res/xml/row_symbols_shift4.xml
index f75575bc6..4fc63c2c5 100644
--- a/java/res/xml/row_symbols_shift4.xml
+++ b/java/res/xml/row_symbols_shift4.xml
@@ -18,9 +18,18 @@
*/
-->
<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
-
- <include latin:keyboardLayout="@xml/keys_less_greater" />
+ <include
+ latin:keyboardLayout="@xml/key_styles_less_greater" />
+ <Key
+ latin:keySpec="!text/keyspec_comma" />
+ <Key
+ latin:keyStyle="lessKeyStyle" />
<include
latin:keyboardLayout="@xml/key_space_symbols" />
- <include latin:keyboardLayout="@xml/keys_comma_period_symbols" />
+ <Key
+ latin:keyStyle="greaterKeyStyle" />
+ <!-- U+2026: "…" HORIZONTAL ELLIPSIS -->
+ <Key
+ latin:keySpec="."
+ latin:moreKeys="&#x2026;" />
</merge>
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityLongPressTimer.java b/java/src/com/android/inputmethod/accessibility/AccessibilityLongPressTimer.java
new file mode 100644
index 000000000..967cafad0
--- /dev/null
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityLongPressTimer.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.accessibility;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.latin.R;
+
+// Handling long press timer to show a more keys keyboard.
+final class AccessibilityLongPressTimer extends Handler {
+ public interface LongPressTimerCallback {
+ public void onLongPressed(Key key);
+ }
+
+ private static final int MSG_LONG_PRESS = 1;
+
+ private final LongPressTimerCallback mCallback;
+ private final long mConfigAccessibilityLongPressTimeout;
+
+ public AccessibilityLongPressTimer(final LongPressTimerCallback callback,
+ final Context context) {
+ super();
+ mCallback = callback;
+ mConfigAccessibilityLongPressTimeout = context.getResources().getInteger(
+ R.integer.config_accessibility_long_press_key_timeout);
+ }
+
+ @Override
+ public void handleMessage(final Message msg) {
+ switch (msg.what) {
+ case MSG_LONG_PRESS:
+ cancelLongPress();
+ mCallback.onLongPressed((Key)msg.obj);
+ return;
+ default:
+ super.handleMessage(msg);
+ return;
+ }
+ }
+
+ public void startLongPress(final Key key) {
+ cancelLongPress();
+ final Message longPressMessage = obtainMessage(MSG_LONG_PRESS, key);
+ sendMessageDelayed(longPressMessage, mConfigAccessibilityLongPressTimeout);
+ }
+
+ public void cancelLongPress() {
+ removeMessages(MSG_LONG_PRESS);
+ }
+}
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
index bbc18f020..d67d9dc4b 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
@@ -33,14 +33,29 @@ import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardView;
import com.android.inputmethod.keyboard.PointerTracker;
+/**
+ * This class represents a delegate that can be registered in a class that extends
+ * {@link KeyboardView} to enhance accessibility support via composition rather via inheritance.
+ *
+ * To implement accessibility mode, the target keyboard view has to:<p>
+ * - Call {@link #setKeyboard(Keyboard)} when a new keyboard is set to the keyboard view.
+ * - Dispatch a hover event by calling {@link #onHoverEnter(MotionEvent)}.
+ *
+ * @param <KV> The keyboard view class type.
+ */
public class KeyboardAccessibilityDelegate<KV extends KeyboardView>
extends AccessibilityDelegateCompat {
+ private static final String TAG = KeyboardAccessibilityDelegate.class.getSimpleName();
+ protected static final boolean DEBUG_HOVER = false;
+
protected final KV mKeyboardView;
protected final KeyDetector mKeyDetector;
private Keyboard mKeyboard;
private KeyboardAccessibilityNodeProvider mAccessibilityNodeProvider;
private Key mLastHoverKey;
+ public static final int HOVER_EVENT_POINTER_ID = 0;
+
public KeyboardAccessibilityDelegate(final KV keyboardView, final KeyDetector keyDetector) {
super();
mKeyboardView = keyboardView;
@@ -180,8 +195,11 @@ public class KeyboardAccessibilityDelegate<KV extends KeyboardView>
*/
protected void onHoverEnter(final MotionEvent event) {
final Key key = getHoverKeyOf(event);
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverEnter: key=" + key);
+ }
if (key != null) {
- onHoverEnterKey(key, event);
+ onHoverEnterTo(key);
}
setLastHoverKey(key);
}
@@ -196,14 +214,14 @@ public class KeyboardAccessibilityDelegate<KV extends KeyboardView>
final Key key = getHoverKeyOf(event);
if (key != lastKey) {
if (lastKey != null) {
- onHoverExitKey(lastKey, event);
+ onHoverExitFrom(lastKey);
}
if (key != null) {
- onHoverEnterKey(key, event);
+ onHoverEnterTo(key);
}
}
if (key != null) {
- onHoverMoveKey(key, event);
+ onHoverMoveWithin(key);
}
setLastHoverKey(key);
}
@@ -215,21 +233,37 @@ public class KeyboardAccessibilityDelegate<KV extends KeyboardView>
*/
protected void onHoverExit(final MotionEvent event) {
final Key lastKey = getLastHoverKey();
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverExit: key=" + getHoverKeyOf(event) + " last=" + lastKey);
+ }
if (lastKey != null) {
- onHoverExitKey(lastKey, event);
+ onHoverExitFrom(lastKey);
}
final Key key = getHoverKeyOf(event);
// Make sure we're not getting an EXIT event because the user slid
// off the keyboard area, then force a key press.
if (key != null) {
- simulateTouchEvent(MotionEvent.ACTION_DOWN, event);
- simulateTouchEvent(MotionEvent.ACTION_UP, event);
- onHoverExitKey(key, event);
+ onRegisterHoverKey(key, event);
+ onHoverExitFrom(key);
}
setLastHoverKey(null);
}
/**
+ * Register a key that is selected by a hover event
+ *
+ * @param key A key to be registered.
+ * @param event A hover exit event that triggers key registering.
+ */
+ protected void onRegisterHoverKey(final Key key, final MotionEvent event) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onRegisterHoverKey: key=" + key);
+ }
+ simulateTouchEvent(MotionEvent.ACTION_DOWN, event);
+ simulateTouchEvent(MotionEvent.ACTION_UP, event);
+ }
+
+ /**
* Simulating a touch event by injecting a synthesized touch event into {@link PointerTracker}.
*
* @param touchAction The action of the synthesizing touch event.
@@ -263,9 +297,11 @@ public class KeyboardAccessibilityDelegate<KV extends KeyboardView>
* Handles a hover enter event on a key.
*
* @param key The currently hovered key.
- * @param event The hover event that triggers a call to this method.
*/
- protected void onHoverEnterKey(final Key key, final MotionEvent event) {
+ protected void onHoverEnterTo(final Key key) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverEnterTo: key=" + key);
+ }
key.onPressed();
mKeyboardView.invalidateKey(key);
final KeyboardAccessibilityNodeProvider provider = getAccessibilityNodeProvider();
@@ -277,17 +313,18 @@ public class KeyboardAccessibilityDelegate<KV extends KeyboardView>
* Handles a hover move event on a key.
*
* @param key The currently hovered key.
- * @param event The hover event that triggers a call to this method.
*/
- protected void onHoverMoveKey(final Key key, final MotionEvent event) { }
+ protected void onHoverMoveWithin(final Key key) { }
/**
* Handles a hover exit event on a key.
*
* @param key The currently hovered key.
- * @param event The hover event that triggers a call to this method.
*/
- protected void onHoverExitKey(final Key key, final MotionEvent event) {
+ protected void onHoverExitFrom(final Key key) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverExitFrom: key=" + key);
+ }
key.onReleased();
mKeyboardView.invalidateKey(key);
final KeyboardAccessibilityNodeProvider provider = getAccessibilityNodeProvider();
diff --git a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
index ec6bb0156..4fdf5b8fa 100644
--- a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
@@ -17,17 +17,29 @@
package com.android.inputmethod.accessibility;
import android.content.Context;
+import android.os.SystemClock;
+import android.util.Log;
import android.util.SparseIntArray;
+import android.view.MotionEvent;
+import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.KeyDetector;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.MainKeyboardView;
+import com.android.inputmethod.keyboard.PointerTracker;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+/**
+ * This class represents a delegate that can be registered in {@link MainKeyboardView} to enhance
+ * accessibility support via composition rather via inheritance.
+ */
public final class MainKeyboardAccessibilityDelegate
- extends KeyboardAccessibilityDelegate<MainKeyboardView> {
+ extends KeyboardAccessibilityDelegate<MainKeyboardView>
+ implements AccessibilityLongPressTimer.LongPressTimerCallback {
+ private static final String TAG = MainKeyboardAccessibilityDelegate.class.getSimpleName();
+
/** Map of keyboard modes to resource IDs. */
private static final SparseIntArray KEYBOARD_MODE_RES_IDS = new SparseIntArray();
@@ -46,10 +58,15 @@ public final class MainKeyboardAccessibilityDelegate
/** The most recently set keyboard mode. */
private int mLastKeyboardMode = KEYBOARD_IS_HIDDEN;
private static final int KEYBOARD_IS_HIDDEN = -1;
+ private boolean mShouldIgnoreOnRegisterHoverKey;
+
+ private final AccessibilityLongPressTimer mAccessibilityLongPressTimer;
public MainKeyboardAccessibilityDelegate(final MainKeyboardView mainKeyboardView,
final KeyDetector keyDetector) {
super(mainKeyboardView, keyDetector);
+ mAccessibilityLongPressTimer = new AccessibilityLongPressTimer(
+ this /* callback */, mainKeyboardView.getContext());
}
/**
@@ -172,4 +189,63 @@ public final class MainKeyboardAccessibilityDelegate
private void announceKeyboardHidden() {
sendWindowStateChanged(R.string.announce_keyboard_hidden);
}
+
+ @Override
+ protected void onRegisterHoverKey(final Key key, final MotionEvent event) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onRegisterHoverKey: key=" + key + " ignore="
+ + mShouldIgnoreOnRegisterHoverKey);
+ }
+ if (!mShouldIgnoreOnRegisterHoverKey) {
+ super.onRegisterHoverKey(key, event);
+ }
+ mShouldIgnoreOnRegisterHoverKey = false;
+ }
+
+ @Override
+ protected void onHoverEnterTo(final Key key) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverEnterTo: key=" + key);
+ }
+ mAccessibilityLongPressTimer.cancelLongPress();
+ super.onHoverEnterTo(key);
+ if (key.isLongPressEnabled()) {
+ mAccessibilityLongPressTimer.startLongPress(key);
+ }
+ }
+
+ protected void onHoverExitFrom(final Key key) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverExitFrom: key=" + key);
+ }
+ mAccessibilityLongPressTimer.cancelLongPress();
+ super.onHoverExitFrom(key);
+ }
+
+ @Override
+ public void onLongPressed(final Key key) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onLongPressed: key=" + key);
+ }
+ final PointerTracker tracker = PointerTracker.getPointerTracker(HOVER_EVENT_POINTER_ID);
+ final long eventTime = SystemClock.uptimeMillis();
+ final int x = key.getHitBox().centerX();
+ final int y = key.getHitBox().centerY();
+ final MotionEvent downEvent = MotionEvent.obtain(
+ eventTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0 /* metaState */);
+ // Inject a fake down event to {@link PointerTracker} to handle a long press correctly.
+ tracker.processMotionEvent(downEvent, mKeyDetector);
+ // The above fake down event triggers an unnecessary long press timer that should be
+ // canceled.
+ tracker.cancelLongPressTimer();
+ downEvent.recycle();
+ // Invoke {@link MainKeyboardView#onLongPress(PointerTracker)} as if a long press timeout
+ // has passed.
+ mKeyboardView.onLongPress(tracker);
+ // If {@link Key#hasNoPanelAutoMoreKeys()} is true (such as "0 +" key on the phone layout)
+ // or a key invokes IME switcher dialog, we should just ignore the next
+ // {@link #onRegisterHoverKey(Key,MotionEvent)}. It can be determined by whether
+ // {@link PointerTracker} is in operation or not.
+ mShouldIgnoreOnRegisterHoverKey = !tracker.isInOperation();
+ }
}
diff --git a/java/src/com/android/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate.java
new file mode 100644
index 000000000..3a56c5d2a
--- /dev/null
+++ b/java/src/com/android/inputmethod/accessibility/MoreKeysKeyboardAccessibilityDelegate.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.accessibility;
+
+import android.graphics.Rect;
+import android.util.Log;
+import android.view.MotionEvent;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.KeyDetector;
+import com.android.inputmethod.keyboard.MoreKeysKeyboardView;
+import com.android.inputmethod.latin.Constants;
+
+/**
+ * This class represents a delegate that can be registered in {@link MoreKeysKeyboardView} to
+ * enhance accessibility support via composition rather via inheritance.
+ */
+public class MoreKeysKeyboardAccessibilityDelegate
+ extends KeyboardAccessibilityDelegate<MoreKeysKeyboardView> {
+ private static final String TAG = MoreKeysKeyboardAccessibilityDelegate.class.getSimpleName();
+
+ private final Rect mMoreKeysKeyboardValidBounds = new Rect();
+ private static final int CLOSING_INSET_IN_PIXEL = 1;
+ private int mOpenAnnounceResId;
+ private int mCloseAnnounceResId;
+
+ public MoreKeysKeyboardAccessibilityDelegate(final MoreKeysKeyboardView moreKeysKeyboardView,
+ final KeyDetector keyDetector) {
+ super(moreKeysKeyboardView, keyDetector);
+ }
+
+ public void setOpenAnnounce(final int resId) {
+ mOpenAnnounceResId = resId;
+ }
+
+ public void setCloseAnnounce(final int resId) {
+ mCloseAnnounceResId = resId;
+ }
+
+ public void onShowMoreKeysKeyboard() {
+ sendWindowStateChanged(mOpenAnnounceResId);
+ }
+
+ @Override
+ protected void onHoverEnter(final MotionEvent event) {
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverEnter: key=" + getHoverKeyOf(event));
+ }
+ super.onHoverEnter(event);
+ final int actionIndex = event.getActionIndex();
+ final int x = (int)event.getX(actionIndex);
+ final int y = (int)event.getY(actionIndex);
+ final int pointerId = event.getPointerId(actionIndex);
+ final long eventTime = event.getEventTime();
+ mKeyboardView.onDownEvent(x, y, pointerId, eventTime);
+ }
+
+ @Override
+ protected void onHoverMove(final MotionEvent event) {
+ super.onHoverMove(event);
+ final int actionIndex = event.getActionIndex();
+ final int x = (int)event.getX(actionIndex);
+ final int y = (int)event.getY(actionIndex);
+ final int pointerId = event.getPointerId(actionIndex);
+ final long eventTime = event.getEventTime();
+ mKeyboardView.onMoveEvent(x, y, pointerId, eventTime);
+ }
+
+ @Override
+ protected void onHoverExit(final MotionEvent event) {
+ final Key lastKey = getLastHoverKey();
+ if (DEBUG_HOVER) {
+ Log.d(TAG, "onHoverExit: key=" + getHoverKeyOf(event) + " last=" + lastKey);
+ }
+ if (lastKey != null) {
+ super.onHoverExitFrom(lastKey);
+ }
+ setLastHoverKey(null);
+ final int actionIndex = event.getActionIndex();
+ final int x = (int)event.getX(actionIndex);
+ final int y = (int)event.getY(actionIndex);
+ final int pointerId = event.getPointerId(actionIndex);
+ final long eventTime = event.getEventTime();
+ // A hover exit event at one pixel width or height area on the edges of more keys keyboard
+ // are treated as closing.
+ mMoreKeysKeyboardValidBounds.set(0, 0, mKeyboardView.getWidth(), mKeyboardView.getHeight());
+ mMoreKeysKeyboardValidBounds.inset(CLOSING_INSET_IN_PIXEL, CLOSING_INSET_IN_PIXEL);
+ if (mMoreKeysKeyboardValidBounds.contains(x, y)) {
+ // Invoke {@link MoreKeysKeyboardView#onUpEvent(int,int,int,long)} as if this hover
+ // exit event selects a key.
+ mKeyboardView.onUpEvent(x, y, pointerId, eventTime);
+ mKeyboardView.dismissMoreKeysPanel();
+ return;
+ }
+ // Close the more keys keyboard.
+ mKeyboardView.onMoveEvent(
+ Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE, pointerId, eventTime);
+ sendWindowStateChanged(mCloseAnnounceResId);
+ }
+}
diff --git a/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java
new file mode 100644
index 000000000..dfc866113
--- /dev/null
+++ b/java/src/com/android/inputmethod/accessibility/MoreSuggestionsAccessibilityDelegate.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.accessibility;
+
+import android.view.MotionEvent;
+
+import com.android.inputmethod.keyboard.KeyDetector;
+import com.android.inputmethod.keyboard.MoreKeysKeyboardView;
+
+public final class MoreSuggestionsAccessibilityDelegate
+ extends MoreKeysKeyboardAccessibilityDelegate {
+ public MoreSuggestionsAccessibilityDelegate(final MoreKeysKeyboardView moreKeysKeyboardView,
+ final KeyDetector keyDetector) {
+ super(moreKeysKeyboardView, keyDetector);
+ }
+
+ @Override
+ protected void simulateTouchEvent(final int touchAction, final MotionEvent hoverEvent) {
+ final MotionEvent touchEvent = synthesizeTouchEvent(touchAction, hoverEvent);
+ mKeyboardView.onTouchEvent(touchEvent);
+ touchEvent.recycle();
+ }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
index 50c82e5f7..4ca4abec6 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
@@ -17,12 +17,13 @@
package com.android.inputmethod.keyboard;
import android.content.Context;
-import android.content.res.Resources;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import com.android.inputmethod.accessibility.AccessibilityUtils;
+import com.android.inputmethod.accessibility.MoreKeysKeyboardAccessibilityDelegate;
import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.utils.CoordinateUtils;
@@ -34,7 +35,7 @@ import com.android.inputmethod.latin.utils.CoordinateUtils;
public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel {
private final int[] mCoordinates = CoordinateUtils.newInstance();
- protected final KeyDetector mKeyDetector;
+ protected KeyDetector mKeyDetector;
private Controller mController = EMPTY_CONTROLLER;
protected KeyboardActionListener mListener;
private int mOriginX;
@@ -43,6 +44,8 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
private int mActivePointerId;
+ protected MoreKeysKeyboardAccessibilityDelegate mAccessibilityDelegate;
+
public MoreKeysKeyboardView(final Context context, final AttributeSet attrs) {
this(context, attrs, R.attr.moreKeysKeyboardViewStyle);
}
@@ -50,10 +53,8 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
public MoreKeysKeyboardView(final Context context, final AttributeSet attrs,
final int defStyle) {
super(context, attrs, defStyle);
-
- final Resources res = context.getResources();
- mKeyDetector = new MoreKeysDetector(
- res.getDimension(R.dimen.config_more_keys_keyboard_slide_allowance));
+ mKeyDetector = new MoreKeysDetector(getResources().getDimension(
+ R.dimen.config_more_keys_keyboard_slide_allowance));
}
@Override
@@ -71,8 +72,23 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
@Override
public void setKeyboard(final Keyboard keyboard) {
super.setKeyboard(keyboard);
- mKeyDetector.setKeyboard(keyboard, -getPaddingLeft(),
- -getPaddingTop() + getVerticalCorrection());
+ if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()) {
+ // With accessibility mode on, any hover event outside {@link MoreKeysKeyboardView} is
+ // discarded at {@link InputView#dispatchHoverEvent(MotionEvent)}. Because only a hover
+ // event that is on this view is dispatched by the platform, we should use a
+ // {@link KeyDetector} that has no sliding allowance and no hysteresis.
+ mKeyDetector = new KeyDetector();
+ mAccessibilityDelegate = new MoreKeysKeyboardAccessibilityDelegate(this, mKeyDetector);
+ mAccessibilityDelegate.setOpenAnnounce(R.string.spoken_open_more_keys_keyboard);
+ mAccessibilityDelegate.setCloseAnnounce(R.string.spoken_close_more_keys_keyboard);
+ mAccessibilityDelegate.setKeyboard(keyboard);
+ } else {
+ mKeyDetector = new MoreKeysDetector(getResources().getDimension(
+ R.dimen.config_more_keys_keyboard_slide_allowance));
+ mAccessibilityDelegate = null;
+ }
+ mKeyDetector.setKeyboard(
+ keyboard, -getPaddingLeft(), -getPaddingTop() + getVerticalCorrection());
}
@Override
@@ -98,6 +114,10 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
mOriginX = x + container.getPaddingLeft();
mOriginY = y + container.getPaddingTop();
controller.onShowMoreKeysPanel(this);
+ final MoreKeysKeyboardAccessibilityDelegate accessibilityDelegate = mAccessibilityDelegate;
+ if (accessibilityDelegate != null) {
+ accessibilityDelegate.onShowMoreKeysKeyboard();
+ }
}
/**
@@ -228,6 +248,18 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
return true;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onHoverEvent(final MotionEvent event) {
+ final MoreKeysKeyboardAccessibilityDelegate accessibilityDelegate = mAccessibilityDelegate;
+ if (accessibilityDelegate != null) {
+ return accessibilityDelegate.onHoverEvent(event);
+ }
+ return super.onHoverEvent(event);
+ }
+
private View getContainerView() {
return (View)getParent();
}
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index ff6fd86d0..b6905bc1c 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -1078,6 +1078,14 @@ public final class PointerTracker implements PointerTrackerQueue.Element,
mIsTrackingForActionDisabled = true;
}
+ public boolean isInOperation() {
+ return !mIsTrackingForActionDisabled;
+ }
+
+ public void cancelLongPressTimer() {
+ sTimerProxy.cancelLongPressTimerOf(this);
+ }
+
public void onLongPressed() {
resetKeySelectionByDraggingFinger();
cancelTrackingForAction();
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 40c915c8d..ab2555802 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -602,7 +602,7 @@ public final class KeyboardTextsTable {
/* keyspec_right_double_angle_quote */ "\u00BB|\u00AB",
/* keyspec_left_single_angle_quote */ "\u2039|\u203A",
/* keyspec_right_single_angle_quote */ "\u203A|\u2039",
- /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,\",\'",
+ /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,\",\'",
// U+0651: "ّ" ARABIC SHADDA
/* keyhintlabel_period */ "\u0651",
/* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
@@ -1551,7 +1551,7 @@ public final class KeyboardTextsTable {
/* keyspec_right_double_angle_quote */ "\u00BB|\u00AB",
/* keyspec_left_single_angle_quote */ "\u2039|\u203A",
/* keyspec_right_single_angle_quote */ "\u203A|\u2039",
- /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,/,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
+ /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
// U+064B: "ً" ARABIC FATHATAN
/* keyhintlabel_period */ "\u064B",
/* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
diff --git a/java/src/com/android/inputmethod/latin/InputView.java b/java/src/com/android/inputmethod/latin/InputView.java
index ea7859e60..0801cfa88 100644
--- a/java/src/com/android/inputmethod/latin/InputView.java
+++ b/java/src/com/android/inputmethod/latin/InputView.java
@@ -23,12 +23,14 @@ import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
+import com.android.inputmethod.accessibility.AccessibilityUtils;
import com.android.inputmethod.keyboard.MainKeyboardView;
import com.android.inputmethod.latin.suggestions.MoreSuggestionsView;
import com.android.inputmethod.latin.suggestions.SuggestionStripView;
public final class InputView extends LinearLayout {
private final Rect mInputViewRect = new Rect();
+ private MainKeyboardView mMainKeyboardView;
private KeyboardTopPaddingForwarder mKeyboardTopPaddingForwarder;
private MoreSuggestionsViewCanceler mMoreSuggestionsViewCanceler;
private MotionEventForwarder<?, ?> mActiveForwarder;
@@ -41,12 +43,11 @@ public final class InputView extends LinearLayout {
protected void onFinishInflate() {
final SuggestionStripView suggestionStripView =
(SuggestionStripView)findViewById(R.id.suggestion_strip_view);
- final MainKeyboardView mainKeyboardView =
- (MainKeyboardView)findViewById(R.id.keyboard_view);
+ mMainKeyboardView = (MainKeyboardView)findViewById(R.id.keyboard_view);
mKeyboardTopPaddingForwarder = new KeyboardTopPaddingForwarder(
- mainKeyboardView, suggestionStripView);
+ mMainKeyboardView, suggestionStripView);
mMoreSuggestionsViewCanceler = new MoreSuggestionsViewCanceler(
- mainKeyboardView, suggestionStripView);
+ mMainKeyboardView, suggestionStripView);
}
public void setKeyboardTopPadding(final int keyboardTopPadding) {
@@ -54,6 +55,17 @@ public final class InputView extends LinearLayout {
}
@Override
+ protected boolean dispatchHoverEvent(final MotionEvent event) {
+ if (AccessibilityUtils.getInstance().isTouchExplorationEnabled()
+ && mMainKeyboardView.isShowingMoreKeysPanel()) {
+ // With accessibility mode on, discard hover events while a more keys keyboard is shown.
+ // The {@link MoreKeysKeyboard} receives hover events directly from the platform.
+ return true;
+ }
+ return super.dispatchHoverEvent(event);
+ }
+
+ @Override
public boolean onInterceptTouchEvent(final MotionEvent me) {
final Rect rect = mInputViewRect;
getGlobalVisibleRect(rect);
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index f36b42a40..dbbe1a0c5 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -134,7 +134,7 @@ public final class InputLogic {
resetComposingState(true /* alsoResetLastComposedWord */);
mDeleteCount = 0;
mSpaceState = SpaceState.NONE;
- mRecapitalizeStatus.deactivate();
+ mRecapitalizeStatus.disable(); // Do not perform recapitalize until the cursor is moved once
mCurrentlyPressedHardwareKeys.clear();
mSuggestedWords = SuggestedWords.EMPTY;
// In some cases (namely, after rotation of the device) editorInfo.initialSelStart is lying
@@ -345,10 +345,12 @@ public final class InputLogic {
newSelStart, newSelEnd, false /* shouldFinishComposition */);
}
+ // The cursor has been moved : we now accept to perform recapitalization
+ mRecapitalizeStatus.enable();
// We moved the cursor. If we are touching a word, we need to resume suggestion.
mLatinIME.mHandler.postResumeSuggestions();
- // Reset the last recapitalization.
- mRecapitalizeStatus.deactivate();
+ // Stop the last recapitalization, if started.
+ mRecapitalizeStatus.stop();
return true;
}
@@ -369,10 +371,6 @@ public final class InputLogic {
final int keyboardShiftMode,
// TODO: remove this argument
final LatinIME.UIHandler handler) {
- // TODO: rework the following to not squash the keycode and the code point into the same
- // var because it's confusing. Instead the switch() should handle this in a readable manner.
- final int code =
- Event.NOT_A_CODE_POINT == event.mCodePoint ? event.mKeyCode : event.mCodePoint;
final InputTransaction inputTransaction = new InputTransaction(settingsValues, event,
SystemClock.uptimeMillis(), mSpaceState,
getActualCapsMode(settingsValues, keyboardShiftMode));
@@ -1138,8 +1136,8 @@ public final class InputLogic {
* @param settingsValues The current settings values.
*/
private void performRecapitalization(final SettingsValues settingsValues) {
- if (!mConnection.hasSelection()) {
- return; // No selection
+ if (!mConnection.hasSelection() || !mRecapitalizeStatus.mIsEnabled()) {
+ return; // No selection or recapitalize is disabled for now
}
final int selectionStart = mConnection.getExpectedSelectionStart();
final int selectionEnd = mConnection.getExpectedSelectionEnd();
@@ -1149,13 +1147,13 @@ public final class InputLogic {
// to suck possibly multiple-megabyte data.
return;
}
- // If we have a recapitalize in progress, use it; otherwise, create a new one.
- if (!mRecapitalizeStatus.isActive()
+ // If we have a recapitalize in progress, use it; otherwise, start a new one.
+ if (!mRecapitalizeStatus.isStarted()
|| !mRecapitalizeStatus.isSetAt(selectionStart, selectionEnd)) {
final CharSequence selectedText =
mConnection.getSelectedText(0 /* flags, 0 for no styles */);
if (TextUtils.isEmpty(selectedText)) return; // Race condition with the input connection
- mRecapitalizeStatus.initialize(selectionStart, selectionEnd, selectedText.toString(),
+ mRecapitalizeStatus.start(selectionStart, selectionEnd, selectedText.toString(),
settingsValues.mLocale,
settingsValues.mSpacingAndPunctuations.mSortedWordSeparators);
// We trim leading and trailing whitespace.
@@ -1498,7 +1496,7 @@ public final class InputLogic {
}
public int getCurrentRecapitalizeState() {
- if (!mRecapitalizeStatus.isActive()
+ if (!mRecapitalizeStatus.isStarted()
|| !mRecapitalizeStatus.isSetAt(mConnection.getExpectedSelectionStart(),
mConnection.getExpectedSelectionEnd())) {
// Not recapitalizing at the moment
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
index af46aad96..5eb0377c7 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
@@ -41,6 +41,7 @@ import com.android.inputmethod.keyboard.KeyboardTheme;
import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SubtypeSwitcher;
+import com.android.inputmethod.latin.define.ProductionFlag;
import com.android.inputmethod.latin.setup.LauncherIconVisibilityManager;
import com.android.inputmethod.latin.userdictionary.UserDictionaryList;
import com.android.inputmethod.latin.userdictionary.UserDictionarySettings;
@@ -212,6 +213,20 @@ public final class SettingsFragment extends InputMethodSettingsFragment
textCorrectionGroup.removePreference(dictionaryLink);
}
+ if (ProductionFlag.IS_METRICS_LOGGING_SUPPORTED) {
+ final Preference enableMetricsLogging =
+ findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
+ if (enableMetricsLogging != null) {
+ final int applicationLabelRes = context.getApplicationInfo().labelRes;
+ final String applicationName = res.getString(applicationLabelRes);
+ final String enableMetricsLoggingTitle = res.getString(
+ R.string.enable_metrics_logging, applicationName);
+ enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
+ }
+ } else {
+ removePreference(Settings.PREF_ENABLE_METRICS_LOGGING, textCorrectionGroup);
+ }
+
final Preference editPersonalDictionary =
findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY);
final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent();
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
index aa59db678..79a735ad6 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
@@ -20,6 +20,8 @@ import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
+import com.android.inputmethod.accessibility.AccessibilityUtils;
+import com.android.inputmethod.accessibility.MoreSuggestionsAccessibilityDelegate;
import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardActionListener;
@@ -50,6 +52,18 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
}
@Override
+ public void setKeyboard(final Keyboard keyboard) {
+ super.setKeyboard(keyboard);
+ // With accessibility mode off, {@link #mAccessibilityDelegate} is set to null at the
+ // above {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call.
+ if (AccessibilityUtils.getInstance().isAccessibilityEnabled()) {
+ mAccessibilityDelegate = new MoreSuggestionsAccessibilityDelegate(this, mKeyDetector);
+ mAccessibilityDelegate.setOpenAnnounce(R.string.spoken_open_more_suggestions);
+ mAccessibilityDelegate.setCloseAnnounce(R.string.spoken_close_more_suggestions);
+ }
+ }
+
+ @Override
protected int getDefaultCoordX() {
final MoreSuggestions pane = (MoreSuggestions)getKeyboard();
return pane.mOccupiedWidth / 2;
diff --git a/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java b/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java
index 4521ec531..e3cac97f0 100644
--- a/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java
+++ b/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java
@@ -62,18 +62,22 @@ public class RecapitalizeStatus {
private Locale mLocale;
private int[] mSortedSeparators;
private String mStringAfter;
- private boolean mIsActive;
+ private boolean mIsStarted;
+ private boolean mIsEnabled = true;
private static final int[] EMPTY_STORTED_SEPARATORS = {};
public RecapitalizeStatus() {
// By default, initialize with dummy values that won't match any real recapitalize.
- initialize(-1, -1, "", Locale.getDefault(), EMPTY_STORTED_SEPARATORS);
- deactivate();
+ start(-1, -1, "", Locale.getDefault(), EMPTY_STORTED_SEPARATORS);
+ stop();
}
- public void initialize(final int cursorStart, final int cursorEnd, final String string,
+ public void start(final int cursorStart, final int cursorEnd, final String string,
final Locale locale, final int[] sortedSeparators) {
+ if (!mIsEnabled) {
+ return;
+ }
mCursorStartBefore = cursorStart;
mStringBefore = string;
mCursorStartAfter = cursorStart;
@@ -96,15 +100,27 @@ public class RecapitalizeStatus {
mRotationStyleCurrentIndex = currentMode;
mSkipOriginalMixedCaseMode = true;
}
- mIsActive = true;
+ mIsStarted = true;
+ }
+
+ public void stop() {
+ mIsStarted = false;
+ }
+
+ public boolean isStarted() {
+ return mIsStarted;
+ }
+
+ public void enable() {
+ mIsEnabled = true;
}
- public void deactivate() {
- mIsActive = false;
+ public void disable() {
+ mIsEnabled = false;
}
- public boolean isActive() {
- return mIsActive;
+ public boolean mIsEnabled() {
+ return mIsEnabled;
}
public boolean isSetAt(final int cursorStart, final int cursorEnd) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
index b0493d3f1..fa818654e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
@@ -74,7 +74,12 @@ public final class Arabic extends LayoutBase {
// U+060C: "،" ARABIC COMMA
return joinKeys(key("\u060C", SETTINGS_KEY));
}
- return super.getKeysLeftToSpacebar(isPhone);
+ // U+060C: "،" ARABIC COMMA
+ // U+061F: "؟" ARABIC QUESTION MARK
+ // U+061B: "؛" ARABIC SEMICOLON
+ return joinKeys(key("\u060C", joinMoreKeys(
+ ":", "!", "\u061F", "\u061B", "-", "\"", "'", SETTINGS_KEY)),
+ "_");
}
@Override
@@ -85,9 +90,7 @@ public final class Arabic extends LayoutBase {
// U+060C: "،" ARABIC COMMA
// U+061F: "؟" ARABIC QUESTION MARK
// U+061B: "؛" ARABIC SEMICOLON
- return joinKeys(
- key("\u060C", joinMoreKeys(":", "!", "\u061F", "\u061B", "-", "/", "\"", "'")),
- key(".", getPunctuationMoreKeys(isPhone)));
+ return joinKeys("/", key(".", getPunctuationMoreKeys(isPhone)));
}
@Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
index 204bb01f7..eb64b832b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
@@ -56,11 +56,19 @@ public final class ArmenianPhonetic extends LayoutBase {
}
@Override
+ public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+ // U+002C: "," COMMA
+ // U+055D: "՝" ARMENIAN COMMA
+ return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
+ : joinKeys(key("\u055D", SETTINGS_KEY), "_");
+ }
+
+ @Override
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
// U+0589: "։" ARMENIAN FULL STOP
// U+055D: "՝" ARMENIAN COMMA
final ExpectedKey fullStopKey = key("\u0589", getPunctuationMoreKeys(isPhone));
- return isPhone ? joinKeys(fullStopKey) : joinKeys("\u055D", fullStopKey);
+ return isPhone ? joinKeys(fullStopKey) : joinKeys("/", fullStopKey);
}
@Override
@@ -121,7 +129,7 @@ public final class ArmenianPhonetic extends LayoutBase {
} else {
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(3, ENTER_KEY)
- .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
index 7ba1d7876..e75cfd0ff 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
@@ -51,7 +51,8 @@ public final class Dvorak extends LayoutBase {
@Override
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
- return isPhone ? joinKeys(key("q", SETTINGS_KEY)) : joinKeys(key("/"));
+ return isPhone ? joinKeys(key("q", SETTINGS_KEY)) :
+ joinKeys(SETTINGS_KEY, key("_", moreKey("-")));
}
@Override
@@ -60,7 +61,7 @@ public final class Dvorak extends LayoutBase {
convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
return isPhone
? joinKeys(key("z", punctuationMoreKeys))
- : joinKeys(key("?", moreKey("!")), key("-", moreKey("_")));
+ : joinKeys("/", key("?", moreKey("!")));
}
private static ExpectedAdditionalMoreKey[] convertToAdditionalMoreKeys(
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
index 16d2f8684..a513740e7 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
@@ -72,7 +72,13 @@ public final class Farsi extends LayoutBase {
// U+060C: "،" ARABIC COMMA
return joinKeys(key("\u060C", SETTINGS_KEY));
}
- return super.getKeysLeftToSpacebar(isPhone);
+ // U+060C: "،" ARABIC COMMA
+ // U+061F: "؟" ARABIC QUESTION MARK
+ // U+061B: "؛" ARABIC SEMICOLON
+ return joinKeys(key("\u060C", joinMoreKeys(
+ ":", "!", "\u061F", "\u061B", "-", RtlSymbols.DOUBLE_ANGLE_QUOTES_LR_RTL,
+ SETTINGS_KEY)),
+ "_");
}
@Override
@@ -80,13 +86,7 @@ public final class Farsi extends LayoutBase {
if (isPhone) {
return super.getKeysRightToSpacebar(isPhone);
}
- // U+060C: "،" ARABIC COMMA
- // U+061F: "؟" ARABIC QUESTION MARK
- // U+061B: "؛" ARABIC SEMICOLON
- return joinKeys(
- key("\u060C", joinMoreKeys(":", "!", "\u061F", "\u061B", "-", "/",
- RtlSymbols.DOUBLE_ANGLE_QUOTES_LR_RTL)),
- key(".", getPunctuationMoreKeys(isPhone)));
+ return joinKeys("/", key(".", getPunctuationMoreKeys(isPhone)));
}
@Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
index cf20149ae..a7f682340 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
@@ -50,7 +50,7 @@ public final class HindiCompact extends LayoutBase {
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
// U+0964: "।" DEVANAGARI DANDA
final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
- return isPhone ? joinKeys(periodKey) : joinKeys(",", periodKey);
+ return isPhone ? joinKeys(periodKey) : joinKeys("/", periodKey);
}
@Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
index e7f6a6552..143ccf6eb 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
@@ -94,7 +94,7 @@ public final class Khmer extends LayoutBase {
} else {
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(3, ENTER_KEY)
- .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
index 6f2ef216f..e7be9982a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
@@ -98,7 +98,7 @@ public final class Lao extends LayoutBase {
} else {
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(3, ENTER_KEY)
- .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
index e4e95548f..c5223720c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
@@ -161,7 +161,8 @@ public abstract class LayoutBase extends AbstractLayoutBase {
*/
public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
// U+002C: "," COMMA
- return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY)) : joinKeys("/");
+ return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
+ : joinKeys(key("\u002C", SETTINGS_KEY), "_");
}
/**
@@ -171,7 +172,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
*/
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
- return isPhone ? joinKeys(periodKey) : joinKeys(",", periodKey);
+ return isPhone ? joinKeys(periodKey) : joinKeys("/", periodKey);
}
/**
@@ -296,7 +297,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
} else {
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(2, ENTER_KEY)
- .addKeysOnTheLeftOfRow(4, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheLeftOfRow(4, customizer.getSymbolsKey())
.addKeysOnTheRightOfRow(4, EMOJI_KEY);
}
builder.addKeysOnTheLeftOfRow(3, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
index 2d1c901b9..1b571acc6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
@@ -48,12 +48,18 @@ public final class Myanmar extends LayoutBase {
}
@Override
+ public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+ // U+002C: "," COMMA
+ // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
+ return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
+ : joinKeys(key("\u104A", moreKey(","), SETTINGS_KEY), "_");
+ }
+
+ @Override
public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
// U+104B: "။" MYANMAR SIGN SECTION
- // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
final ExpectedKey periodKey = key("\u104B", getPunctuationMoreKeys(isPhone));
- final ExpectedKey commaKey = key("\u104A", moreKey(","));
- return isPhone ? joinKeys(periodKey) : joinKeys(commaKey, periodKey);
+ return isPhone ? joinKeys(periodKey) : joinKeys("/", periodKey);
}
@Override
@@ -106,7 +112,7 @@ public final class Myanmar extends LayoutBase {
} else {
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(3, ENTER_KEY)
- .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
index 726fefc68..5f3e4b196 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
@@ -167,7 +167,7 @@ public class Symbols extends AbstractLayoutBase {
// U+00BF: "¿" INVERTED QUESTION MARK
key("?", moreKey("\u00BF")))
.setKeysOfRow(4,
- key("_"), key("/"), SPACE_KEY, key(","),
+ key(","), key("_"), SPACE_KEY, key("/"),
// U+2026: "…" HORIZONTAL ELLIPSIS
key(".", moreKey("\u2026")))
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
index f611310af..3265e10e1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
@@ -117,15 +117,16 @@ public class SymbolsShifted extends AbstractLayoutBase {
// U+2105: "℅" CARE OF
"\\", "\u00A9", "\u00AE", "\u2122", "\u2105", "[", "]")
.setKeysOfRow(4,
+ ",",
// U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
// U+2264: "≤" LESS-THAN OR EQUAL TO
// U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
key("<", joinMoreKeys("\u2039", "\u2264", "\u00AB")),
+ SPACE_KEY,
// U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
// U+2265: "≥" GREATER-THAN EQUAL TO
// U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
key(">", joinMoreKeys("\u203A", "\u2265", "\u00BB")),
- SPACE_KEY, ",",
// U+2026: "…" HORIZONTAL ELLIPSIS
key(".", moreKey("\u2026")))
.build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
index 253c93b83..af4abea93 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
@@ -111,7 +111,7 @@ public final class Thai extends LayoutBase {
} else {
builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
.addKeysOnTheRightOfRow(3, ENTER_KEY)
- .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey(), SETTINGS_KEY)
+ .addKeysOnTheLeftOfRow(5, customizer.getSymbolsKey())
.addKeysOnTheRightOfRow(5, EMOJI_KEY);
}
builder.addKeysOnTheLeftOfRow(4, (Object[])customizer.getLeftShiftKeys(isPhone))
diff --git a/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java b/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
index ada80c3fa..a3f2ce586 100644
--- a/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
@@ -29,25 +29,25 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
public void testTrim() {
final RecapitalizeStatus status = new RecapitalizeStatus();
- status.initialize(30, 40, "abcdefghij", Locale.ENGLISH, SPACE);
+ status.start(30, 40, "abcdefghij", Locale.ENGLISH, SPACE);
status.trim();
assertEquals("abcdefghij", status.getRecapitalizedString());
assertEquals(30, status.getNewCursorStart());
assertEquals(40, status.getNewCursorEnd());
- status.initialize(30, 44, " abcdefghij", Locale.ENGLISH, SPACE);
+ status.start(30, 44, " abcdefghij", Locale.ENGLISH, SPACE);
status.trim();
assertEquals("abcdefghij", status.getRecapitalizedString());
assertEquals(34, status.getNewCursorStart());
assertEquals(44, status.getNewCursorEnd());
- status.initialize(30, 40, "abcdefgh ", Locale.ENGLISH, SPACE);
+ status.start(30, 40, "abcdefgh ", Locale.ENGLISH, SPACE);
status.trim();
assertEquals("abcdefgh", status.getRecapitalizedString());
assertEquals(30, status.getNewCursorStart());
assertEquals(38, status.getNewCursorEnd());
- status.initialize(30, 45, " abcdefghij ", Locale.ENGLISH, SPACE);
+ status.start(30, 45, " abcdefghij ", Locale.ENGLISH, SPACE);
status.trim();
assertEquals("abcdefghij", status.getRecapitalizedString());
assertEquals(33, status.getNewCursorStart());
@@ -56,7 +56,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
public void testRotate() {
final RecapitalizeStatus status = new RecapitalizeStatus();
- status.initialize(29, 40, "abcd efghij", Locale.ENGLISH, SPACE);
+ status.start(29, 40, "abcd efghij", Locale.ENGLISH, SPACE);
status.rotate();
assertEquals("Abcd Efghij", status.getRecapitalizedString());
assertEquals(29, status.getNewCursorStart());
@@ -68,7 +68,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
status.rotate();
assertEquals("Abcd Efghij", status.getRecapitalizedString());
- status.initialize(29, 40, "Abcd Efghij", Locale.ENGLISH, SPACE);
+ status.start(29, 40, "Abcd Efghij", Locale.ENGLISH, SPACE);
status.rotate();
assertEquals("ABCD EFGHIJ", status.getRecapitalizedString());
assertEquals(29, status.getNewCursorStart());
@@ -80,7 +80,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
status.rotate();
assertEquals("ABCD EFGHIJ", status.getRecapitalizedString());
- status.initialize(29, 40, "ABCD EFGHIJ", Locale.ENGLISH, SPACE);
+ status.start(29, 40, "ABCD EFGHIJ", Locale.ENGLISH, SPACE);
status.rotate();
assertEquals("abcd efghij", status.getRecapitalizedString());
assertEquals(29, status.getNewCursorStart());
@@ -92,7 +92,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
status.rotate();
assertEquals("abcd efghij", status.getRecapitalizedString());
- status.initialize(29, 39, "AbCDefghij", Locale.ENGLISH, SPACE);
+ status.start(29, 39, "AbCDefghij", Locale.ENGLISH, SPACE);
status.rotate();
assertEquals("abcdefghij", status.getRecapitalizedString());
assertEquals(29, status.getNewCursorStart());
@@ -106,7 +106,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
status.rotate();
assertEquals("abcdefghij", status.getRecapitalizedString());
- status.initialize(29, 40, "Abcd efghij", Locale.ENGLISH, SPACE);
+ status.start(29, 40, "Abcd efghij", Locale.ENGLISH, SPACE);
status.rotate();
assertEquals("abcd efghij", status.getRecapitalizedString());
assertEquals(29, status.getNewCursorStart());
@@ -120,7 +120,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
status.rotate();
assertEquals("abcd efghij", status.getRecapitalizedString());
- status.initialize(30, 34, "grüß", Locale.GERMAN, SPACE);
+ status.start(30, 34, "grüß", Locale.GERMAN, SPACE);
status.rotate();
assertEquals("Grüß", status.getRecapitalizedString());
assertEquals(30, status.getNewCursorStart());
@@ -138,7 +138,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
assertEquals(30, status.getNewCursorStart());
assertEquals(34, status.getNewCursorEnd());
- status.initialize(30, 33, "œuf", Locale.FRENCH, SPACE);
+ status.start(30, 33, "œuf", Locale.FRENCH, SPACE);
status.rotate();
assertEquals("Œuf", status.getRecapitalizedString());
assertEquals(30, status.getNewCursorStart());
@@ -156,7 +156,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
assertEquals(30, status.getNewCursorStart());
assertEquals(33, status.getNewCursorEnd());
- status.initialize(30, 33, "œUf", Locale.FRENCH, SPACE);
+ status.start(30, 33, "œUf", Locale.FRENCH, SPACE);
status.rotate();
assertEquals("œuf", status.getRecapitalizedString());
assertEquals(30, status.getNewCursorStart());
@@ -178,7 +178,7 @@ public class RecapitalizeStatusTests extends AndroidTestCase {
assertEquals(30, status.getNewCursorStart());
assertEquals(33, status.getNewCursorEnd());
- status.initialize(30, 35, "école", Locale.FRENCH, SPACE);
+ status.start(30, 35, "école", Locale.FRENCH, SPACE);
status.rotate();
assertEquals("École", status.getRecapitalizedString());
assertEquals(30, status.getNewCursorStart());
diff --git a/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
index 4ecb10533..ab78f45c6 100644
--- a/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
@@ -80,7 +80,7 @@
U+061B: "؛" ARABIC SEMICOLON -->
<string name="keyspec_tablet_comma">"&#x060C;"</string>
<string name="keyhintlabel_tablet_comma">"&#x061F;"</string>
- <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,/,\",\'"</string>
+ <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,\",\'"</string>
<!-- U+266A: "♪" EIGHTH NOTE -->
<string name="morekeys_bullet">&#x266A;</string>
<!-- U+2605: "★" BLACK STAR
diff --git a/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
index bdbc92afa..58f455504 100644
--- a/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
@@ -82,7 +82,7 @@
U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
<string name="keyspec_tablet_comma">"&#x060C;"</string>
<string name="keyhintlabel_tablet_comma">"&#x061F;"</string>
- <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,/,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote"</string>
+ <string name="morekeys_tablet_comma">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote"</string>
<!-- U+FDFC: "﷼" RIAL SIGN -->
<string name="keyspec_currency">&#xFDFC;</string>
<!-- U+266A: "♪" EIGHTH NOTE -->