aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/proguard.flags8
-rw-r--r--java/res/anim/alt_code_key_while_typing_fadein.xml2
-rw-r--r--java/res/anim/alt_code_key_while_typing_fadeout.xml2
-rw-r--r--java/res/values-be/strings.xml12
-rw-r--r--java/res/values-cs/strings.xml12
-rw-r--r--java/res/values-da/strings.xml12
-rw-r--r--java/res/values-es/strings.xml12
-rw-r--r--java/res/values-et/strings.xml12
-rw-r--r--java/res/values-fa/strings.xml12
-rw-r--r--java/res/values-fr/strings.xml12
-rw-r--r--java/res/values-hr/strings.xml12
-rw-r--r--java/res/values-hu/strings.xml12
-rw-r--r--java/res/values-ja/strings.xml12
-rw-r--r--java/res/values-ky/strings.xml221
-rw-r--r--java/res/values-lt/strings.xml12
-rw-r--r--java/res/values-lv/strings.xml12
-rw-r--r--java/res/values-nl/strings.xml12
-rw-r--r--java/res/values-pl/strings.xml12
-rw-r--r--java/res/values-pt/strings.xml12
-rw-r--r--java/res/values-ro/strings.xml12
-rw-r--r--java/res/values-sk/strings.xml12
-rw-r--r--java/res/values-sl/strings.xml12
-rw-r--r--java/res/values-sr/strings.xml12
-rw-r--r--java/res/values-tr/strings.xml12
-rw-r--r--java/res/values-zh-rCN/strings.xml12
-rw-r--r--java/res/values-zu/strings.xml12
-rw-r--r--java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java5
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java8
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java23
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java9
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java27
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java4
-rw-r--r--java/src/com/android/inputmethod/latin/DictionaryFactory.java62
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java3
-rw-r--r--java/src/com/android/inputmethod/latin/ResearchLogger.java131
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeSwitcher.java6
36 files changed, 488 insertions, 287 deletions
diff --git a/java/proguard.flags b/java/proguard.flags
index 44f8581cc..fd73e1242 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -28,7 +28,7 @@
# Keep getter/setter methods for ObjectAnimator
int getLanguageOnSpacebarAnimAlpha();
void setLanguageOnSpacebarAnimAlpha(int);
- int getAltCodeKeyWhileTypingAnimAlhpa();
+ int getAltCodeKeyWhileTypingAnimAlpha();
void setAltCodeKeyWhileTypingAnimAlpha(int);
}
@@ -38,6 +38,12 @@
-keep class com.android.inputmethod.latin.ResearchLogger {
void setLogFileManager(...);
+ void clearAll();
+ com.android.inputmethod.latin.ResearchLogger$LogFileManager getLogFileManager();
+}
+
+-keep class com.android.inputmethod.latin.ResearchLogger$LogFileManager {
+ java.lang.String getContents();
}
-keep class com.android.inputmethod.keyboard.KeyboardLayoutSet$Builder {
diff --git a/java/res/anim/alt_code_key_while_typing_fadein.xml b/java/res/anim/alt_code_key_while_typing_fadein.xml
index f8caca313..079c98090 100644
--- a/java/res/anim/alt_code_key_while_typing_fadein.xml
+++ b/java/res/anim/alt_code_key_while_typing_fadein.xml
@@ -22,6 +22,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="altCodeKeyWhileTypingAnimAlpha"
android:valueType="intType"
- android:duration="100"
+ android:duration="1000"
android:valueFrom="128"
android:valueTo="255" />
diff --git a/java/res/anim/alt_code_key_while_typing_fadeout.xml b/java/res/anim/alt_code_key_while_typing_fadeout.xml
index bad1e7465..511e13886 100644
--- a/java/res/anim/alt_code_key_while_typing_fadeout.xml
+++ b/java/res/anim/alt_code_key_while_typing_fadeout.xml
@@ -22,6 +22,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="altCodeKeyWhileTypingAnimAlpha"
android:valueType="intType"
- android:duration="70"
+ android:duration="3000"
android:valueFrom="255"
android:valueTo="128" />
diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml
index bcf4152d9..7a2ce94f3 100644
--- a/java/res/values-be/strings.xml
+++ b/java/res/values-be/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Сціплы"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агрэсіўны"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Вельмі агрэсіўны"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Падказкi для наступнага слова"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Выкарыстаць папярэдняе слова, каб палепшыць прапановы"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Падказка наступнага слова"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Выкарыстанне папярэдняга слова для падказак"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Захаваныя"</string>
<string name="label_go_key" msgid="1635148082137219148">"Пачаць"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Тэма клавіятуры"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Англійская (ЗК)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Англійская (ЗША)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Мова не выбрана (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Рэжым даследвання выкарыстальнасці"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Налады працягласцi вiбрацыi пры нацiску"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Налады гучнасцi пры нацiску"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index a2395d90b..17073d249 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mírné"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivní"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Velmi agresivní"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Návrhy dalšího slova"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Použít předchozí slovo ke zlepšení návrhů"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Návrh dalšího slova"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Použít předchozí slovo také pro odhad"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Uloženo"</string>
<string name="label_go_key" msgid="1635148082137219148">"Přejít"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Motiv klávesnice"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"angličtina (Spojené království)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angličtina (USA)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Žádný jazyk (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Režim studie použitelnosti"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Nastavení trvání vibrace při stisku klávesy"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Nastavení hlasitosti zvuku při stisknutí klávesy"</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index f4e617c47..cd5266017 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderat"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Aggressiv"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Meget aggressiv"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Forslag til næste ord"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Brug forrige ord til at forbedre forslag"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Forudsigelse af næste ord"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Brug også tidligere ord til forudsigelse"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: Gemt"</string>
<string name="label_go_key" msgid="1635148082137219148">"Gå"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannien)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ingen sprog (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tilstand for brugsstudie"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Indstillinger for varighed af vibration ved tastetryk"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Indstillinger for lydstyrke ved tastetryk"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index 470a1158e..222cd532a 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Parcial"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Total"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muy agresiva"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Sugerencias de la siguiente palabra"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Usar palabra anterior para mejorar las sugerencias"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Predicción de la siguiente palabra"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Utilizar también la palabra anterior para realizar la predicción"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: guardada"</string>
<string name="label_go_key" msgid="1635148082137219148">"Ir"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Tema de teclado"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"inglés (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"inglés (EE.UU.)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ningún idioma (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modo de estudio de usabilidad"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Ajustes de duración de vibración al pulsar tecla"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Volumen de sonido al pulsar tecla"</string>
diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml
index 8835917a1..cb21b4c9c 100644
--- a/java/res/values-et/strings.xml
+++ b/java/res/values-et/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mõõdukas"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressiivne"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Väga agressiivne"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Järgmise sõna soovitused"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Kasuta soovituste täiustamiseks eelmist sõna"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Järgmise sõna ennustus"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Kasuta ennustuseks ka eelmist sõna"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : salvestatud"</string>
<string name="label_go_key" msgid="1635148082137219148">"Mine"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatuuri teema"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Inglise (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglise (USA)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Keel puudub (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Kasutatavuse uurimisrežiim"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Klahvivajutuse vibratsiooni kestuse seaded"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Klahvivajutuse helitugevuse seaded"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 6951ab4a9..5a6302fe3 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"متوسط"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"فعال"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"بسیار پرخاشگرانه"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"پیشنهادات کلمه بعدی"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"برای بهبود پیشنهاد از کلمه قبلی استفاده شود"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"پیش بینی کلمه بعدی"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"استفاده از کلمه قبلی برای پیش بینی"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : ذخیره شد"</string>
<string name="label_go_key" msgid="1635148082137219148">"برو"</string>
@@ -125,8 +122,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"طرح زمینه صفحه کلید"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"انگیسی (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"انگیسی (US)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"هیچ کدام از زبانها (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"حالت بررسی قابلیت استفاده"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"تنظیمات مدت زمان لرزش فشار کلید"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"تنظیمات میزان صدای فشار کلید"</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index bf018c1bd..96aadfb25 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Simple"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Proactive"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Très exigeante"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Suggestions pour le mot suivant"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Améliorer les suggestions grâce au mot précédent"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Prédiction du mot suivant"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Utiliser le mot précédent pour la prédiction"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : enregistré"</string>
<string name="label_go_key" msgid="1635148082137219148">"OK"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Thème du clavier"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Anglais (Royaume-Uni)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Pas de langue (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Mode d\'étude de l\'utilisabilité"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Durée de vibration à chaque pression"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Volume sonore à chaque pression"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index feb3b5fde..093b22ea0 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Skromno"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivno"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Vrlo agresivno"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Prijedlozi za sljedeću riječ"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Upotrijebi prethodnu riječ radi poboljšanja prijedloga"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Predviđanje sljedeće riječi"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Upotrijebite prethodnu riječ i za predviđanje"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Spremljeno"</string>
<string name="label_go_key" msgid="1635148082137219148">"Idi"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Engleski (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engleski (SAD)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nema jezika (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Način studije upotrebljivosti"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Postavke trajanja vibracije kod pritiska tipke"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Postavke glasnoće zvuka kod pritiska tipke"</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index dcdcc594a..a414821a6 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mérsékelt"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresszív"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Nagyon agresszív"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Következő szóra vonatkozó javaslatok"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Javaslatok fejlesztése az előző szó használatával"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Következő szó előrejelzése"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Az előző szó használata a prediktív bevitelhez is"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : mentve"</string>
<string name="label_go_key" msgid="1635148082137219148">"Ugrás"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Billentyűzettéma"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"angol (brit)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angol (amerikai)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nincs nyelv (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Használhatósági teszt"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Gombnyomás rezgési időtartamának beállításai"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Gombnyomás hangerejének beállításai"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 703dca7e3..8c20b46ad 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"中"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"強"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"最も強い"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"次の入力候補"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"直前の単語から入力候補を予測します"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"次の入力候補を予測"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"前の語句も予測に使用"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:保存しました"</string>
<string name="label_go_key" msgid="1635148082137219148">"実行"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"キーボードのテーマ"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"英語(英国)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英語(米国)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"言語設定なし(QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"使いやすさの研究モード"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"キー操作バイブの振動時間の設定"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"キー操作音の音量設定"</string>
diff --git a/java/res/values-ky/strings.xml b/java/res/values-ky/strings.xml
new file mode 100644
index 000000000..85925257c
--- /dev/null
+++ b/java/res/values-ky/strings.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 2008, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for english_ime_name (7252517407088836577) -->
+ <skip />
+ <!-- no translation found for aosp_android_keyboard_ime_name (7877134937939182296) -->
+ <skip />
+ <!-- no translation found for english_ime_settings (6661589557206947774) -->
+ <skip />
+ <!-- no translation found for english_ime_input_options (3909945612939668554) -->
+ <skip />
+ <!-- no translation found for spell_checker_service_name (7338064335159755926) -->
+ <skip />
+ <!-- no translation found for aosp_spell_checker_service_name (6985142605330377819) -->
+ <skip />
+ <!-- no translation found for android_spell_checker_settings (5822324635435443689) -->
+ <skip />
+ <!-- no translation found for use_contacts_for_spellchecking_option_title (5374120998125353898) -->
+ <skip />
+ <!-- no translation found for use_contacts_for_spellchecking_option_summary (8754413382543307713) -->
+ <skip />
+ <!-- no translation found for vibrate_on_keypress (5258079494276955460) -->
+ <skip />
+ <!-- no translation found for sound_on_keypress (6093592297198243644) -->
+ <skip />
+ <!-- no translation found for popup_on_keypress (123894815723512944) -->
+ <skip />
+ <!-- no translation found for general_category (1859088467017573195) -->
+ <skip />
+ <!-- no translation found for correction_category (2236750915056607613) -->
+ <skip />
+ <!-- no translation found for misc_category (6894192814868233453) -->
+ <skip />
+ <!-- no translation found for advanced_settings (362895144495591463) -->
+ <skip />
+ <!-- no translation found for advanced_settings_summary (4487980456152830271) -->
+ <skip />
+ <!-- no translation found for include_other_imes_in_language_switch_list (4533689960308565519) -->
+ <skip />
+ <!-- no translation found for include_other_imes_in_language_switch_list_summary (840637129103317635) -->
+ <skip />
+ <!-- no translation found for suppress_language_switch_key (8003788410354806368) -->
+ <skip />
+ <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) -->
+ <skip />
+ <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) -->
+ <skip />
+ <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) -->
+ <skip />
+ <!-- no translation found for use_contacts_dict (4435317977804180815) -->
+ <skip />
+ <!-- no translation found for use_contacts_dict_summary (6599983334507879959) -->
+ <skip />
+ <!-- no translation found for enable_span_insert (7204653105667167620) -->
+ <skip />
+ <!-- no translation found for enable_span_insert_summary (2947317657871394467) -->
+ <skip />
+ <!-- no translation found for auto_cap (1719746674854628252) -->
+ <skip />
+ <!-- no translation found for configure_dictionaries_title (4238652338556902049) -->
+ <skip />
+ <!-- no translation found for main_dictionary (4798763781818361168) -->
+ <skip />
+ <!-- no translation found for prefs_show_suggestions (8026799663445531637) -->
+ <skip />
+ <!-- no translation found for prefs_show_suggestions_summary (1583132279498502825) -->
+ <skip />
+ <!-- no translation found for prefs_suggestion_visibility_show_name (3219916594067551303) -->
+ <skip />
+ <!-- no translation found for prefs_suggestion_visibility_show_only_portrait_name (3551821800439659812) -->
+ <skip />
+ <!-- no translation found for prefs_suggestion_visibility_hide_name (6309143926422234673) -->
+ <skip />
+ <!-- no translation found for auto_correction (4979925752001319458) -->
+ <skip />
+ <!-- no translation found for auto_correction_summary (5625751551134658006) -->
+ <skip />
+ <!-- no translation found for auto_correction_threshold_mode_off (8470882665417944026) -->
+ <skip />
+ <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) -->
+ <skip />
+ <!-- no translation found for auto_correction_threshold_mode_aggeressive (3524029103734923819) -->
+ <skip />
+ <!-- no translation found for auto_correction_threshold_mode_very_aggeressive (3386782235540547678) -->
+ <skip />
+ <!-- no translation found for bigram_suggestion (8169311444438922902) -->
+ <skip />
+ <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
+ <skip />
+ <!-- no translation found for bigram_prediction (3216364899483135294) -->
+ <skip />
+ <!-- no translation found for bigram_prediction_summary (1747261921174300098) -->
+ <skip />
+ <!-- no translation found for added_word (8993883354622484372) -->
+ <skip />
+ <string name="label_go_key" msgid="1635148082137219148">"Баруу"</string>
+ <string name="label_next_key" msgid="362972844525672568">"Кийин"</string>
+ <string name="label_previous_key" msgid="1211868118071386787">"Мурун"</string>
+ <string name="label_done_key" msgid="2441578748772529288">"Даяр"</string>
+ <string name="label_send_key" msgid="2815056534433717444">"Жибер"</string>
+ <string name="label_to_alpha_key" msgid="4793983863798817523">"АБВ"</string>
+ <!-- no translation found for label_to_symbol_key (8516904117128967293) -->
+ <skip />
+ <!-- no translation found for label_to_symbol_with_microphone_key (9035925553010061906) -->
+ <skip />
+ <!-- no translation found for label_pause_key (181098308428035340) -->
+ <skip />
+ <!-- no translation found for label_wait_key (6402152600878093134) -->
+ <skip />
+ <!-- no translation found for spoken_use_headphones (896961781287283493) -->
+ <skip />
+ <!-- no translation found for spoken_current_text_is (2485723011272583845) -->
+ <skip />
+ <!-- no translation found for spoken_no_text_entered (7479685225597344496) -->
+ <skip />
+ <!-- no translation found for spoken_description_unknown (3197434010402179157) -->
+ <skip />
+ <!-- no translation found for spoken_description_shift (244197883292549308) -->
+ <skip />
+ <!-- no translation found for spoken_description_shift_shifted (1681877323344195035) -->
+ <skip />
+ <!-- no translation found for spoken_description_caps_lock (3276478269526304432) -->
+ <skip />
+ <!-- no translation found for spoken_description_delete (8740376944276199801) -->
+ <skip />
+ <!-- no translation found for spoken_description_to_symbol (5486340107500448969) -->
+ <skip />
+ <!-- no translation found for spoken_description_to_alpha (23129338819771807) -->
+ <skip />
+ <!-- no translation found for spoken_description_to_numeric (591752092685161732) -->
+ <skip />
+ <!-- no translation found for spoken_description_settings (4627462689603838099) -->
+ <skip />
+ <!-- no translation found for spoken_description_tab (2667716002663482248) -->
+ <skip />
+ <!-- no translation found for spoken_description_space (2582521050049860859) -->
+ <skip />
+ <!-- no translation found for spoken_description_mic (615536748882611950) -->
+ <skip />
+ <!-- no translation found for spoken_description_smiley (2256309826200113918) -->
+ <skip />
+ <!-- no translation found for spoken_description_return (8178083177238315647) -->
+ <skip />
+ <!-- no translation found for spoken_description_dot (40711082435231673) -->
+ <skip />
+ <!-- no translation found for spoken_description_shiftmode_on (5700440798609574589) -->
+ <skip />
+ <!-- no translation found for spoken_description_shiftmode_locked (593175803181701830) -->
+ <skip />
+ <!-- no translation found for spoken_description_shiftmode_off (657219998449174808) -->
+ <skip />
+ <!-- no translation found for spoken_description_mode_symbol (7183343879909747642) -->
+ <skip />
+ <!-- no translation found for spoken_description_mode_alpha (3528307674390156956) -->
+ <skip />
+ <!-- no translation found for spoken_description_mode_phone (6520207943132026264) -->
+ <skip />
+ <!-- no translation found for spoken_description_mode_phone_shift (5499629753962641227) -->
+ <skip />
+ <!-- no translation found for voice_input (3583258583521397548) -->
+ <skip />
+ <!-- no translation found for voice_input_modes_main_keyboard (3360660341121083174) -->
+ <skip />
+ <!-- no translation found for voice_input_modes_symbols_keyboard (7203213240786084067) -->
+ <skip />
+ <!-- no translation found for voice_input_modes_off (3745699748218082014) -->
+ <skip />
+ <!-- no translation found for voice_input_modes_summary_main_keyboard (6586544292900314339) -->
+ <skip />
+ <!-- no translation found for voice_input_modes_summary_symbols_keyboard (5233725927281932391) -->
+ <skip />
+ <!-- no translation found for voice_input_modes_summary_off (63875609591897607) -->
+ <skip />
+ <!-- no translation found for configure_input_method (373356270290742459) -->
+ <skip />
+ <!-- no translation found for language_selection_title (1651299598555326750) -->
+ <skip />
+ <!-- no translation found for select_language (3693815588777926848) -->
+ <skip />
+ <!-- no translation found for hint_add_to_dictionary (573678656946085380) -->
+ <skip />
+ <!-- no translation found for has_dictionary (6071847973466625007) -->
+ <skip />
+ <!-- no translation found for prefs_enable_log (6620424505072963557) -->
+ <skip />
+ <!-- no translation found for prefs_description_log (5827825607258246003) -->
+ <skip />
+ <!-- no translation found for keyboard_layout (8451164783510487501) -->
+ <skip />
+ <!-- no translation found for subtype_en_GB (88170601942311355) -->
+ <skip />
+ <!-- no translation found for subtype_en_US (6160452336634534239) -->
+ <skip />
+ <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
+ <skip />
+ <!-- no translation found for prefs_usability_study_mode (1261130555134595254) -->
+ <skip />
+ <!-- no translation found for prefs_keypress_vibration_duration_settings (1829950405285211668) -->
+ <skip />
+ <!-- no translation found for prefs_keypress_sound_volume_settings (5875933757082305040) -->
+ <skip />
+</resources>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index aa8c1b730..b08d059f0 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Vidutinis"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Atkaklus"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Labai agresyviai"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Kito žodžio pasiūlymai"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Naudoti ankstesnį žodį pasiūlymams patobulinti"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Kito žodžio numatymas"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Numatant naudoti ir ankstesnį žodį"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: išsaugota"</string>
<string name="label_go_key" msgid="1635148082137219148">"Pradėti"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Klaviatūros tema"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Anglų k. (JK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglų k. (JAV)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nėra kalbos (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tinkamumo tyrimo režimas"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Vibracijos paspaudus mygtuką trukmės nustatymai"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Garso paspaudus mygtuką garsumo nustatymai"</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index bc6a7be9d..c8023404f 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mērena"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresīva"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Ļoti radikāla"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Nākamā vārda ieteikumi"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Ieteikumu uzlabošanai izmantot iepriekšējo vārdu"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Nākamā vārda prognozēšana"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Izmantot iepriekšējo vārdu arī prognozēm"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: saglabāts"</string>
<string name="label_go_key" msgid="1635148082137219148">"Sākt"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Tastatūras motīvs"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Angļu valoda (Lielbritānija)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Angļu valoda (ASV)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nav valodas (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Lietojamības izpētes režīms"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Taustiņu nospiešanas vibrācijas ilguma iestatījumi"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Taustiņu nospiešanas skaņas skaļuma iestatījumi"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index ad59c2f95..7ba51bc7e 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Normaal"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressief"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Zeer agressief"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Volgende woordsuggesties"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Vorig woord gebruiken om suggesties te verbeteren"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Volgende woordvoorspelling"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Het voorgaande woord ook voor voorspelling gebruiken"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: opgeslagen"</string>
<string name="label_go_key" msgid="1635148082137219148">"Start"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Toetsenbordthema"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Engels (GB)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Geen taal (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modus voor gebruiksvriendelijkheidsonderzoek"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Instellingen voor trillingsduur bij druk op een toets"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Instellingen voor geluidsvolume bij druk op een toets"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index 3440c5c0c..49f751813 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Umiarkowana"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresywna"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Bardzo agresywna"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Sugestie kolejnych słów"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Używaj poprzedniego wyrazu, by polepszyć sugestie"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Przewidywanie następnego wyrazu"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Przewiduj również na podstawie poprzedniego słowa"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Zapisano"</string>
<string name="label_go_key" msgid="1635148082137219148">"OK"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Motyw klawiatury"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Angielska (Wielka Brytania)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Angielska (Stany Zjednoczone)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Brak języka (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Tryb badania przydatności"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Czas trwania wibracji przy naciśnięciu"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Głośność dźwięku przy naciśnięciu"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index 3fe58a808..196988845 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderado"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agressivo"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Muito agressivo"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Sugestões para a palavra seguinte"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Usar palavra anterior para melhorar as sugestões"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Previsão da palavra seguinte"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Use também a palavra anterior para prever"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Salvo"</string>
<string name="label_go_key" msgid="1635148082137219148">"Ir"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Inglês (Reino Unido)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Inglês (EUA)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nenhum idioma (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modo de estudo de utilização"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Configurações de duração da vibração ao tocar a tecla"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Configurações do volume ao tocar a tecla"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index dd830ce6d..80a65585d 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderată"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresivă"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Foarte agresiv"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Sugestii pentru cuvântul următor"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Utilizaţi cuvântul anterior pentru a îmbunătăţi sugestiile"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Predicţia cuvântului următor"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Se utilizează şi cuvântul precedent pentru predicţii"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: salvat"</string>
<string name="label_go_key" msgid="1635148082137219148">"OK"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Temă pentru tastatură"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Engleză (Marea Britanie)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Engleză (S.U.A.)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Nicio limbă (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Modul Studiu privind utilizarea"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Setări pentru durata vibrării la apăsarea tastei"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Setări pentru volumul sunetului la apăsarea tastei"</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index a8f108e2e..57bc3a0f4 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Mierne"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresívne"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Veľmi agresívna"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Návrhy ďalšieho slova"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Na zlepšenie návrhov použiť predchádzajúce slovo"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Odhad ďalšieho slova"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Použiť predchádzajúce slovo aj pre predpoveď"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Uložené"</string>
<string name="label_go_key" msgid="1635148082137219148">"Hľadať"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Motív klávesnice"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"Anglická klávesnica (UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"Anglická klávesnica (US)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Žiadny jazyk (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Režim štúdie použiteľnosti"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Nastavenia trvania vibrovania pri stlačení klávesu"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Nastavenia hlasitosti zvuku pri stlačení klávesu"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index 9dc484424..890877fb3 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Zmerno"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Strogo"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Zelo strogo"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Predlogi naslednje besede"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Predloge izboljšaj s prejšnjo besedo"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Predvidevanje naslednje besede"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Uporabi prejšnjo besedo tudi za predvidevanje"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>: shranjeno"</string>
<string name="label_go_key" msgid="1635148082137219148">"Pojdi"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"angleščina (Združeno kraljestvo)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"angleščina (ZDA)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Ni jezika (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Način za preučevanje uporabnosti"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Nastavitve za trajanje vibriranja ob pritisku tipke"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Nastavitve za glasnost zvoka ob pritisku tipke"</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index b70f285c2..f21abd272 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Умерено"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Агресивно"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Веома агресивно"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Предлози за следећу реч"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Користи претходну реч за побољшање предлога"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Предвиђање следеће речи"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Користи претходну реч и за предвиђање"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Сачувано"</string>
<string name="label_go_key" msgid="1635148082137219148">"Иди"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Тема тастатуре"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"енглески (УК)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"енглески (САД)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Нема језика (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Режим за студију могућности коришћења"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Подешавања трајања вибрације при притиску на тастере"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Подешавања јачине звука при притиску на тастере"</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index 5e79d8267..abca6324c 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Ölçülü"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Agresif"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Çok geniş ölçekte"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Sonraki kelime önerileri"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Önerileri geliştirmek için önceki kelimeyi kullan"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Sonraki kelime tahmini"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Önceki kelimeyi de tahmin için kullan"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kaydedildi"</string>
<string name="label_go_key" msgid="1635148082137219148">"Git"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Klavye teması"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (BK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"İngilizce (ABD)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Dil yok (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Kullanılabilirlik çalışması modu"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Tuşa basma titreşim süresi ayarları"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Tuşa basma ses düzeyi ayarları"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 7fa505c8a..73cec6e51 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"小改"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"大改"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"改动极大"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"下一字词建议"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"使用上一字词改进建议"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"下一字词预测"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"结合前一个字词进行预测"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g>:已保存"</string>
<string name="label_go_key" msgid="1635148082137219148">"开始"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"键盘主题"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"英语(英国)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"英语(美国)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"无语言(QWERTY 键盘)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"可用性研究模式"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"按键振动持续时间设置"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"按键音量设置"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index 961054855..9691d5965 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -61,12 +61,9 @@
<string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Thobekile"</string>
<string name="auto_correction_threshold_mode_aggeressive" msgid="3524029103734923819">"Bukhali"</string>
<string name="auto_correction_threshold_mode_very_aggeressive" msgid="3386782235540547678">"Nobudlova kakhulu"</string>
- <!-- no translation found for bigram_suggestion (8169311444438922902) -->
- <skip />
- <!-- no translation found for bigram_suggestion_summary (6635527607242625713) -->
- <skip />
- <!-- no translation found for bigram_prediction (3216364899483135294) -->
- <skip />
+ <string name="bigram_suggestion" msgid="8169311444438922902">"Iziphakamiso zegama elilandelayo"</string>
+ <string name="bigram_suggestion_summary" msgid="6635527607242625713">"Sebenzisa igama elandulele ukuthuthukisa okusikiselwayo"</string>
+ <string name="bigram_prediction" msgid="3216364899483135294">"Ukuqagela kwegama elilandelayo"</string>
<string name="bigram_prediction_summary" msgid="1747261921174300098">"Sebenzisa igama langaphambilini ukuze uqagele"</string>
<string name="added_word" msgid="8993883354622484372">"<xliff:g id="WORD">%s</xliff:g> : Kulondoloziwe"</string>
<string name="label_go_key" msgid="1635148082137219148">"Iya"</string>
@@ -121,8 +118,7 @@
<string name="keyboard_layout" msgid="8451164783510487501">"Indikimba yekhibhodi"</string>
<string name="subtype_en_GB" msgid="88170601942311355">"i-English(UK)"</string>
<string name="subtype_en_US" msgid="6160452336634534239">"i-English (US)"</string>
- <!-- no translation found for subtype_no_language_qwerty (2956121451616633133) -->
- <skip />
+ <string name="subtype_no_language_qwerty" msgid="2956121451616633133">"Akunalimi (QWERTY)"</string>
<string name="prefs_usability_study_mode" msgid="1261130555134595254">"Imodi yesitadi yokusebenziseka"</string>
<string name="prefs_keypress_vibration_duration_settings" msgid="1829950405285211668">"Izilungiselelo ze-keypress vibration duraton"</string>
<string name="prefs_keypress_sound_volume_settings" msgid="5875933757082305040">"Izilungiselelo zevolumu yomsindo wekeypress"</string>
diff --git a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
index 43c19d7eb..d97989d9c 100644
--- a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
+++ b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
@@ -104,8 +104,9 @@ public class SuggestionSpanUtils {
}
public static CharSequence getTextWithSuggestionSpan(Context context,
- CharSequence pickedWord, SuggestedWords suggestedWords) {
- if (TextUtils.isEmpty(pickedWord) || CONSTRUCTOR_SuggestionSpan == null
+ CharSequence pickedWord, SuggestedWords suggestedWords, boolean dictionaryAvailable) {
+ if (!dictionaryAvailable || TextUtils.isEmpty(pickedWord)
+ || CONSTRUCTOR_SuggestionSpan == null
|| suggestedWords == null || suggestedWords.size() == 0
|| OBJ_SUGGESTIONS_MAX_SIZE == null) {
return pickedWord;
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index b51dbb906..804ccf658 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -260,7 +260,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
mKeyHintLabelSize = (int)(keyHeight * mKeyHintLabelRatio);
}
- public void brendAlpha(Paint paint) {
+ public void blendAlpha(Paint paint) {
final int color = paint.getColor();
paint.setARGB((paint.getAlpha() * mAnimAlpha) / ALPHA_OPAQUE,
Color.red(color), Color.green(color), Color.blue(color));
@@ -600,7 +600,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// Make label invisible
paint.setColor(Color.TRANSPARENT);
}
- params.brendAlpha(paint);
+ params.blendAlpha(paint);
canvas.drawText(label, 0, label.length(), positionX, baseline, paint);
// Turn off drop shadow and reset x-scale.
paint.setShadowLayer(0, 0, 0, 0);
@@ -645,7 +645,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
hintSize = params.mKeyHintLetterSize;
}
paint.setColor(hintColor);
- params.brendAlpha(paint);
+ params.blendAlpha(paint);
paint.setTextSize(hintSize);
final float hintX, hintY;
if (key.hasHintLabel()) {
@@ -715,7 +715,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
paint.setTextSize(params.mKeyHintLetterSize);
paint.setColor(params.mKeyHintLabelColor);
- params.brendAlpha(paint);
+ params.blendAlpha(paint);
paint.setTextAlign(Align.CENTER);
final float hintX = keyWidth - params.mKeyHintLetterPadding
- getCharWidth(KEY_LABEL_REFERENCE_CHAR, paint) / 2;
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 5ebf92cf7..7fadb3b8a 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -227,26 +227,22 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
removeMessages(MSG_LONGPRESS_KEY);
}
- public static void cancelAndStartAnimators(ObjectAnimator animatorToCancel,
- ObjectAnimator animatorToStart) {
- if (animatorToCancel != null && animatorToCancel.isStarted()) {
+ public static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel,
+ final ObjectAnimator animatorToStart) {
+ float startFraction = 0.0f;
+ if (animatorToCancel.isStarted()) {
animatorToCancel.cancel();
+ startFraction = 1.0f - animatorToCancel.getAnimatedFraction();
}
- // TODO: Start the animation with an initial value that is the same as the final value
- // of the above animation when it gets cancelled.
- if (animatorToStart != null && !animatorToStart.isStarted()) {
- animatorToStart.start();
- }
- }
-
- private void cancelTypingStateTimer() {
- removeMessages(MSG_TYPING_STATE_EXPIRED);
+ final long startTime = (long)(animatorToStart.getDuration() * startFraction);
+ animatorToStart.start();
+ animatorToStart.setCurrentPlayTime(startTime);
}
@Override
public void startTypingStateTimer() {
final boolean isTyping = isTypingState();
- cancelTypingStateTimer();
+ removeMessages(MSG_TYPING_STATE_EXPIRED);
sendMessageDelayed(
obtainMessage(MSG_TYPING_STATE_EXPIRED), mParams.mIgnoreAltCodeKeyTimeout);
if (isTyping) {
@@ -286,7 +282,6 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
public void cancelAllMessages() {
cancelKeyTimers();
- cancelTypingStateTimer();
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 24ab54730..37d9b6ac7 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -248,6 +248,9 @@ public class PointerTracker {
mListener.onPressKey(key.mCode);
final boolean keyboardLayoutHasBeenChanged = mKeyboardLayoutHasBeenChanged;
mKeyboardLayoutHasBeenChanged = false;
+ if (!key.altCodeWhileTyping() && !key.isModifier()) {
+ mTimerProxy.startTypingStateTimer();
+ }
return keyboardLayoutHasBeenChanged;
}
return false;
@@ -279,9 +282,6 @@ public class PointerTracker {
} else if (code != Keyboard.CODE_UNSPECIFIED) {
mListener.onCodeInput(code, x, y);
}
- if (!key.altCodeWhileTyping() && !key.isModifier()) {
- mTimerProxy.startTypingStateTimer();
- }
}
}
@@ -734,6 +734,9 @@ public class PointerTracker {
public void onRepeatKey(Key key) {
if (key != null) {
detectAndSendKey(key, key.mX, key.mY);
+ if (!key.altCodeWhileTyping() && !key.isModifier()) {
+ mTimerProxy.startTypingStateTimer();
+ }
}
}
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index 311d3dc9d..e4d081b56 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -53,17 +53,23 @@ public class BinaryDictionaryFileDumper {
private static final String DICTIONARY_PROJECTION[] = { "id" };
+ public static final String QUERY_PARAMETER_MAY_PROMPT_USER = "mayPrompt";
+ public static final String QUERY_PARAMETER_TRUE = "true";
+
// Prevents this class to be accidentally instantiated.
private BinaryDictionaryFileDumper() {
}
/**
- * Return for a given locale or dictionary id the provider URI to get the dictionary.
+ * Returns a URI builder pointing to the dictionary pack.
+ *
+ * This creates a URI builder able to build a URI pointing to the dictionary
+ * pack content provider for a specific dictionary id.
*/
- private static Uri getProviderUri(String path) {
+ private static Uri.Builder getProviderUriBuilder(final String path) {
return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
.authority(BinaryDictionary.DICTIONARY_PACK_AUTHORITY).appendPath(
- path).build();
+ path);
}
/**
@@ -71,9 +77,13 @@ public class BinaryDictionaryFileDumper {
* available to copy into Latin IME.
*/
private static List<WordListInfo> getWordListWordListInfos(final Locale locale,
- final Context context) {
+ final Context context, final boolean hasDefaultWordList) {
final ContentResolver resolver = context.getContentResolver();
- final Uri dictionaryPackUri = getProviderUri(locale.toString());
+ final Uri.Builder builder = getProviderUriBuilder(locale.toString());
+ if (!hasDefaultWordList) {
+ builder.appendQueryParameter(QUERY_PARAMETER_MAY_PROMPT_USER, QUERY_PARAMETER_TRUE);
+ }
+ final Uri dictionaryPackUri = builder.build();
final Cursor c = resolver.query(dictionaryPackUri, DICTIONARY_PROJECTION, null, null, null);
if (null == c) return Collections.<WordListInfo>emptyList();
@@ -132,7 +142,7 @@ public class BinaryDictionaryFileDumper {
final int MODE_MIN = COMPRESSED_CRYPTED_COMPRESSED;
final int MODE_MAX = NONE;
- final Uri wordListUri = getProviderUri(id);
+ final Uri wordListUri = getProviderUriBuilder(id).build();
final String outputFileName = BinaryDictionaryGetter.getCacheFileName(id, locale, context);
for (int mode = MODE_MIN; mode <= MODE_MAX; ++mode) {
@@ -231,9 +241,10 @@ public class BinaryDictionaryFileDumper {
* @throw IOException if the provider-returned data could not be read.
*/
public static List<AssetFileAddress> cacheWordListsFromContentProvider(final Locale locale,
- final Context context) {
+ final Context context, final boolean hasDefaultWordList) {
final ContentResolver resolver = context.getContentResolver();
- final List<WordListInfo> idList = getWordListWordListInfos(locale, context);
+ final List<WordListInfo> idList = getWordListWordListInfos(locale, context,
+ hasDefaultWordList);
final List<AssetFileAddress> fileAddressList = new ArrayList<AssetFileAddress>();
for (WordListInfo id : idList) {
final AssetFileAddress afd = cacheWordList(id.mId, id.mLocale, resolver, context);
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
index b0c2adc79..072dec9d1 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
@@ -263,10 +263,12 @@ class BinaryDictionaryGetter {
public static ArrayList<AssetFileAddress> getDictionaryFiles(final Locale locale,
final Context context) {
+ final boolean hasDefaultWordList = DictionaryFactory.isDictionaryAvailable(context, locale);
// cacheWordListsFromContentProvider returns the list of files it copied to local
// storage, but we don't really care about what was copied NOW: what we want is the
// list of everything we ever cached, so we ignore the return value.
- BinaryDictionaryFileDumper.cacheWordListsFromContentProvider(locale, context);
+ BinaryDictionaryFileDumper.cacheWordListsFromContentProvider(locale, context,
+ hasDefaultWordList);
final File[] cachedWordLists = getCachedWordLists(locale.toString(), context);
final String mainDictId = getMainDictId(locale);
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFactory.java b/java/src/com/android/inputmethod/latin/DictionaryFactory.java
index bf05f3bc3..17d75368e 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFactory.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFactory.java
@@ -94,13 +94,14 @@ public class DictionaryFactory {
final Locale locale) {
AssetFileDescriptor afd = null;
try {
- final int resId = getMainDictionaryResourceId(context.getResources(), locale);
+ final int resId =
+ getMainDictionaryResourceIdIfAvailableForLocale(context.getResources(), locale);
+ if (0 == resId) return null;
afd = context.getResources().openRawResourceFd(resId);
if (afd == null) {
Log.e(TAG, "Found the resource but it is compressed. resId=" + resId);
return null;
}
- if (!isFullDictionary(afd)) return null;
final String sourceDir = context.getApplicationInfo().sourceDir;
final File packagePath = new File(sourceDir);
// TODO: Come up with a way to handle a directory.
@@ -152,55 +153,19 @@ public class DictionaryFactory {
*/
public static boolean isDictionaryAvailable(Context context, Locale locale) {
final Resources res = context.getResources();
- final int resourceId = getMainDictionaryResourceId(res, locale);
- final AssetFileDescriptor afd = res.openRawResourceFd(resourceId);
- final boolean hasDictionary = isFullDictionary(afd);
- try {
- if (null != afd) afd.close();
- } catch (java.io.IOException e) {
- /* Um, what can we do here exactly? */
- }
- return hasDictionary;
- }
-
- // TODO: Do not use the size of the dictionary as an unique dictionary ID.
- public static Long getDictionaryId(final Context context, final Locale locale) {
- final Resources res = context.getResources();
- final int resourceId = getMainDictionaryResourceId(res, locale);
- final AssetFileDescriptor afd = res.openRawResourceFd(resourceId);
- final Long size = (afd != null && afd.getLength() > PLACEHOLDER_LENGTH)
- ? afd.getLength()
- : null;
- try {
- if (null != afd) afd.close();
- } catch (java.io.IOException e) {
- }
- return size;
- }
-
- // TODO: Find the Right Way to find out whether the resource is a placeholder or not.
- // Suggestion : strip the locale, open the placeholder file and store its offset.
- // Upon opening the file, if it's the same offset, then it's the placeholder.
- private static final long PLACEHOLDER_LENGTH = 34;
- /**
- * Finds out whether the data pointed out by an AssetFileDescriptor is a full
- * dictionary (as opposed to null, or to a place holder).
- * @param afd the file descriptor to test, or null
- * @return true if the dictionary is a real full dictionary, false if it's null or a placeholder
- */
- protected static boolean isFullDictionary(final AssetFileDescriptor afd) {
- return (afd != null && afd.getLength() > PLACEHOLDER_LENGTH);
+ return 0 != getMainDictionaryResourceIdIfAvailableForLocale(res, locale);
}
private static final String DEFAULT_MAIN_DICT = "main";
private static final String MAIN_DICT_PREFIX = "main_";
/**
- * Returns a main dictionary resource id
+ * Helper method to return a dictionary res id for a locale, or 0 if none.
* @param locale dictionary locale
* @return main dictionary resource id
*/
- public static int getMainDictionaryResourceId(Resources res, Locale locale) {
+ private static int getMainDictionaryResourceIdIfAvailableForLocale(final Resources res,
+ final Locale locale) {
final String packageName = LatinIME.class.getPackage().getName();
int resId;
@@ -218,6 +183,19 @@ public class DictionaryFactory {
return resId;
}
+ // Not found, return 0
+ return 0;
+ }
+
+ /**
+ * Returns a main dictionary resource id
+ * @param locale dictionary locale
+ * @return main dictionary resource id
+ */
+ public static int getMainDictionaryResourceId(final Resources res, final Locale locale) {
+ int resourceId = getMainDictionaryResourceIdIfAvailableForLocale(res, locale);
+ if (0 != resourceId) return resourceId;
+ final String packageName = LatinIME.class.getPackage().getName();
return res.getIdentifier(DEFAULT_MAIN_DICT, "raw", packageName);
}
}
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 7cdeef897..187252a31 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1895,7 +1895,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
if (mSettingsValues.mEnableSuggestionSpanInsertion) {
final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
- this, bestWord, suggestedWords), 1);
+ this, bestWord, suggestedWords, mSubtypeSwitcher.isDictionaryAvailable()),
+ 1);
} else {
ic.commitText(bestWord, 1);
}
diff --git a/java/src/com/android/inputmethod/latin/ResearchLogger.java b/java/src/com/android/inputmethod/latin/ResearchLogger.java
index 08c26a5df..2d9f3ceb6 100644
--- a/java/src/com/android/inputmethod/latin/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/latin/ResearchLogger.java
@@ -35,10 +35,16 @@ import com.android.inputmethod.keyboard.internal.AlphabetShiftState;
import com.android.inputmethod.keyboard.internal.KeyboardState;
import com.android.inputmethod.latin.define.ProductionFlag;
+import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
import java.io.PrintWriter;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.channels.FileChannel;
+import java.nio.charset.Charset;
/**
* Logs the use of the LatinIME keyboard.
@@ -70,15 +76,15 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
* Handles creation, deletion, and provides Readers, Writers, and InputStreams to access
* the logs.
*/
- public static class LogFileManager {
- private static final String DEFAULT_FILENAME = "log.txt";
- private static final String DEFAULT_LOG_DIRECTORY = "researchLogger";
+ /* package */ static class LogFileManager {
+ public static final String RESEARCH_LOG_FILENAME_KEY = "RESEARCH_LOG_FILENAME";
+ private static final String DEFAULT_FILENAME = "researchLog.txt";
private static final long LOGFILE_PURGE_INTERVAL = 1000 * 60 * 60 * 24;
- private InputMethodService mIms;
- private File mFile;
- private PrintWriter mPrintWriter;
+ protected InputMethodService mIms;
+ protected File mFile;
+ protected PrintWriter mPrintWriter;
/* package */ LogFileManager() {
}
@@ -89,15 +95,28 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
public synchronized boolean createLogFile() {
try {
- return createLogFile(DEFAULT_LOG_DIRECTORY, DEFAULT_FILENAME);
- } catch (final FileNotFoundException e) {
+ return createLogFile(DEFAULT_FILENAME);
+ } catch (IOException e) {
+ e.printStackTrace();
Log.w(TAG, e);
return false;
}
}
- public synchronized boolean createLogFile(final String dir, final String filename)
- throws FileNotFoundException {
+ public synchronized boolean createLogFile(final SharedPreferences prefs) {
+ try {
+ final String filename =
+ prefs.getString(RESEARCH_LOG_FILENAME_KEY, DEFAULT_FILENAME);
+ return createLogFile(filename);
+ } catch (IOException e) {
+ Log.w(TAG, e);
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ public synchronized boolean createLogFile(final String filename)
+ throws IOException {
if (mIms == null) {
Log.w(TAG, "InputMethodService is not configured. Logging is off.");
return false;
@@ -107,29 +126,22 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
Log.w(TAG, "Storage directory does not exist. Logging is off.");
return false;
}
- final File directory = new File(filesDir, dir);
- if (!directory.exists()) {
- final boolean wasCreated = directory.mkdirs();
- if (!wasCreated) {
- Log.w(TAG, "Log directory cannot be created. Logging is off.");
- return false;
- }
- }
-
close();
- mFile = new File(directory, filename);
- mFile.setReadable(false, false);
+ final File file = new File(filesDir, filename);
+ mFile = file;
+ file.setReadable(false, false);
boolean append = true;
- if (mFile.exists() && mFile.lastModified() + LOGFILE_PURGE_INTERVAL <
+ if (file.exists() && file.lastModified() + LOGFILE_PURGE_INTERVAL <
System.currentTimeMillis()) {
append = false;
}
- mPrintWriter = new PrintWriter(new FileOutputStream(mFile, append), true);
+ mPrintWriter = new PrintWriter(new BufferedWriter(new FileWriter(file, append)), true);
return true;
}
public synchronized boolean append(final String s) {
- if (mPrintWriter == null) {
+ final PrintWriter printWriter = mPrintWriter;
+ if (printWriter == null) {
if (DEBUG) {
Log.w(TAG, "PrintWriter is null... attempting to create default log file");
}
@@ -140,8 +152,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
}
}
}
- mPrintWriter.print(s);
- return !mPrintWriter.checkError();
+ printWriter.print(s);
+ printWriter.flush();
+ return !printWriter.checkError();
}
public synchronized void reset() {
@@ -149,7 +162,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
mPrintWriter.close();
mPrintWriter = null;
}
- if (mFile != null && mFile.exists()) {
+ if (mFile != null) {
mFile.delete();
mFile = null;
}
@@ -162,6 +175,53 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
mFile = null;
}
}
+
+ /* package */ synchronized void flush() {
+ if (mPrintWriter != null) {
+ mPrintWriter.flush();
+ }
+ }
+
+ /* package */ synchronized String getContents() {
+ final File file = mFile;
+ if (file == null) {
+ return "";
+ }
+ if (mPrintWriter != null) {
+ mPrintWriter.flush();
+ }
+ FileInputStream stream = null;
+ FileChannel fileChannel = null;
+ String s = "";
+ try {
+ stream = new FileInputStream(file);
+ fileChannel = stream.getChannel();
+ final ByteBuffer byteBuffer = ByteBuffer.allocate((int) file.length());
+ fileChannel.read(byteBuffer);
+ byteBuffer.rewind();
+ CharBuffer charBuffer = Charset.defaultCharset().decode(byteBuffer);
+ s = charBuffer.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (fileChannel != null) {
+ fileChannel.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return s;
+ }
}
private ResearchLogger(final LogFileManager logFileManager) {
@@ -182,9 +242,10 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
public void initInternal(final InputMethodService ims, final SharedPreferences prefs) {
mIms = ims;
- if (mLogFileManager != null) {
- mLogFileManager.init(ims);
- mLogFileManager.createLogFile();
+ final LogFileManager logFileManager = mLogFileManager;
+ if (logFileManager != null) {
+ logFileManager.init(ims);
+ logFileManager.createLogFile(prefs);
}
if (prefs != null) {
sIsLogging = prefs.getBoolean(PREF_USABILITY_STUDY_MODE, false);
@@ -359,6 +420,10 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
});
}
+ /* package */ LogFileManager getLogFileManager() {
+ return mLogFileManager;
+ }
+
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (key == null || prefs == null) {
@@ -644,7 +709,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
}
}
- public static void suggestionsView_setSuggestions(SuggestedWords mSuggestedWords) {
+ public static void suggestionsView_setSuggestions(final SuggestedWords mSuggestedWords) {
if (UnsLogGroup.SUGGESTIONSVIEW_SETSUGGESTIONS_ENABLED) {
logUnstructured("SuggestionsView_setSuggestions", mSuggestedWords.toString());
}
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 6612c24cd..99f0ee184 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -63,6 +63,7 @@ public class SubtypeSwitcher {
/*-----------------------------------------------------------*/
// Variants which should be changed only by reload functions.
private boolean mNeedsToDisplayLanguage;
+ private boolean mIsDictionaryAvailable;
private boolean mIsSystemLanguageSameAsInputLanguage;
private InputMethodInfo mShortcutInputMethodInfo;
private InputMethodSubtype mShortcutSubtype;
@@ -260,6 +261,7 @@ public class SubtypeSwitcher {
getInputLocale().getLanguage());
mNeedsToDisplayLanguage = !(getEnabledKeyboardLocaleCount() <= 1
&& mIsSystemLanguageSameAsInputLanguage);
+ mIsDictionaryAvailable = DictionaryFactory.isDictionaryAvailable(mService, mInputLocale);
}
////////////////////////////
@@ -379,6 +381,10 @@ public class SubtypeSwitcher {
}
}
+ public boolean isDictionaryAvailable() {
+ return mIsDictionaryAvailable;
+ }
+
// TODO: Remove this method
private boolean isKeyboardMode() {
return KEYBOARD_MODE.equals(getCurrentSubtypeMode());