aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/AndroidManifest.xml1
-rw-r--r--java/res/drawable-hdpi/ic_ime_settings.pngbin0 -> 1570 bytes
-rw-r--r--java/res/drawable-mdpi/ic_ime_settings.pngbin0 -> 1292 bytes
-rw-r--r--java/res/drawable-xhdpi/ic_ime_settings.pngbin0 -> 2065 bytes
-rw-r--r--java/res/layout/mini_keyboard.xml (renamed from java/res/layout/keyboard_popup.xml)4
-rw-r--r--java/res/layout/more_suggestions.xml37
-rw-r--r--java/res/values-ar/donottranslate-more-keys.xml (renamed from java/res/values-ar/donottranslate-altchars.xml)2
-rw-r--r--java/res/values-ca/donottranslate-more-keys.xml (renamed from java/res/values-ca/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-cs/donottranslate-more-keys.xml (renamed from java/res/values-cs/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-da/donottranslate-more-keys.xml (renamed from java/res/values-da/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-de-rZZ/donottranslate-more-keys.xml (renamed from java/res/values-de-rZZ/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-de/donottranslate-more-keys.xml (renamed from java/res/values-de/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-en/donottranslate-more-keys.xml (renamed from java/res/values-en/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-es/donottranslate-more-keys.xml (renamed from java/res/values-es/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-fi/donottranslate-more-keys.xml (renamed from java/res/values-fi/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-fr/donottranslate-more-keys.xml (renamed from java/res/values-fr/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-hr/donottranslate-more-keys.xml (renamed from java/res/values-hr/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-hu/donottranslate-more-keys.xml (renamed from java/res/values-hu/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-it/donottranslate-more-keys.xml (renamed from java/res/values-it/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-land/dimens.xml2
-rw-r--r--java/res/values-lt/donottranslate-more-keys.xml (renamed from java/res/values-lt/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-lv/donottranslate-more-keys.xml (renamed from java/res/values-lv/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-nb/donottranslate-more-keys.xml (renamed from java/res/values-nb/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-nl/donottranslate-more-keys.xml (renamed from java/res/values-nl/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-pl/donottranslate-more-keys.xml (renamed from java/res/values-pl/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-pt/donottranslate-more-keys.xml (renamed from java/res/values-pt/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-rm/donottranslate-more-keys.xml (renamed from java/res/values-rm/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-ro/donottranslate-more-keys.xml (renamed from java/res/values-ro/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-ru/donottranslate-more-keys.xml (renamed from java/res/values-ru/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-sk/donottranslate-more-keys.xml (renamed from java/res/values-sk/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-sv/donottranslate-more-keys.xml (renamed from java/res/values-sv/donottranslate-altchars.xml)0
-rw-r--r--java/res/values-sw600dp/config.xml4
-rw-r--r--java/res/values-sw600dp/dimens.xml1
-rw-r--r--java/res/values-sw768dp/config.xml4
-rw-r--r--java/res/values-sw768dp/dimens.xml5
-rw-r--r--java/res/values-tr/donottranslate-more-keys.xml (renamed from java/res/values-tr/donottranslate-altchars.xml)0
-rw-r--r--java/res/values/attrs.xml23
-rw-r--r--java/res/values/config.xml4
-rw-r--r--java/res/values/dimens.xml8
-rw-r--r--java/res/values/donottranslate-more-keys.xml (renamed from java/res/values/donottranslate-altchars.xml)2
-rw-r--r--java/res/values/styles.xml38
-rw-r--r--java/res/values/themes-basic-highcontrast.xml5
-rw-r--r--java/res/values/themes-basic.xml5
-rw-r--r--java/res/values/themes-gingerbread.xml5
-rw-r--r--java/res/values/themes-ics.xml5
-rw-r--r--java/res/values/themes-stone-bold.xml7
-rw-r--r--java/res/values/themes-stone.xml5
-rw-r--r--java/res/xml-sw600dp/kbd_key_styles.xml8
-rw-r--r--java/res/xml-sw600dp/kbd_mini_keyboard_template.xml (renamed from java/res/xml-sw600dp/kbd_popup_template.xml)2
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row1.xml20
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row2.xml12
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row3.xml8
-rw-r--r--java/res/xml-sw600dp/kbd_qwerty_row4.xml2
-rw-r--r--java/res/xml-sw600dp/kbd_row3_comma_period.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_row3_smiley.xml4
-rw-r--r--java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml6
-rw-r--r--java/res/xml-sw600dp/kbd_rows_arabic.xml20
-rw-r--r--java/res/xml-sw600dp/kbd_rows_azerty.xml44
-rw-r--r--java/res/xml-sw600dp/kbd_rows_hebrew.xml18
-rw-r--r--java/res/xml-sw600dp/kbd_rows_qwertz.xml32
-rw-r--r--java/res/xml-sw600dp/kbd_rows_russian.xml6
-rw-r--r--java/res/xml-sw600dp/kbd_rows_scandinavian.xml44
-rw-r--r--java/res/xml-sw600dp/kbd_rows_spanish.xml12
-rw-r--r--java/res/xml-sw600dp/kbd_rows_symbols.xml52
-rw-r--r--java/res/xml-sw600dp/kbd_rows_symbols_shift.xml12
-rw-r--r--java/res/xml-sw768dp/kbd_key_styles.xml6
-rw-r--r--java/res/xml-sw768dp/kbd_mini_keyboard_template.xml (renamed from java/res/xml-sw768dp/kbd_popup_template.xml)2
-rw-r--r--java/res/xml-sw768dp/kbd_qwerty_row1.xml20
-rw-r--r--java/res/xml-sw768dp/kbd_qwerty_row2.xml12
-rw-r--r--java/res/xml-sw768dp/kbd_qwerty_row3.xml8
-rw-r--r--java/res/xml-sw768dp/kbd_qwerty_row4.xml4
-rw-r--r--java/res/xml-sw768dp/kbd_row3_comma_period.xml4
-rw-r--r--java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml6
-rw-r--r--java/res/xml-sw768dp/kbd_rows_arabic.xml16
-rw-r--r--java/res/xml-sw768dp/kbd_rows_azerty.xml46
-rw-r--r--java/res/xml-sw768dp/kbd_rows_hebrew.xml14
-rw-r--r--java/res/xml-sw768dp/kbd_rows_qwertz.xml32
-rw-r--r--java/res/xml-sw768dp/kbd_rows_russian.xml2
-rw-r--r--java/res/xml-sw768dp/kbd_rows_scandinavian.xml44
-rw-r--r--java/res/xml-sw768dp/kbd_rows_spanish.xml12
-rw-r--r--java/res/xml-sw768dp/kbd_rows_symbols.xml52
-rw-r--r--java/res/xml-sw768dp/kbd_rows_symbols_shift.xml12
-rw-r--r--java/res/xml/kbd_currency_key_styles.xml12
-rw-r--r--java/res/xml/kbd_key_styles.xml16
-rw-r--r--java/res/xml/kbd_mini_keyboard_template.xml (renamed from java/res/xml/kbd_popup_template.xml)2
-rw-r--r--java/res/xml/kbd_qwerty_row1.xml20
-rw-r--r--java/res/xml/kbd_qwerty_row2.xml12
-rw-r--r--java/res/xml/kbd_qwerty_row3.xml8
-rw-r--r--java/res/xml/kbd_rows_arabic.xml36
-rw-r--r--java/res/xml/kbd_rows_azerty.xml42
-rw-r--r--java/res/xml/kbd_rows_hebrew.xml14
-rw-r--r--java/res/xml/kbd_rows_qwertz.xml28
-rw-r--r--java/res/xml/kbd_rows_russian.xml24
-rw-r--r--java/res/xml/kbd_rows_scandinavian.xml36
-rw-r--r--java/res/xml/kbd_rows_serbian.xml20
-rw-r--r--java/res/xml/kbd_rows_spanish.xml12
-rw-r--r--java/res/xml/kbd_rows_symbols.xml46
-rw-r--r--java/res/xml/kbd_rows_symbols_shift.xml16
-rw-r--r--java/res/xml/kbd_suggestions_pane_template.xml25
-rw-r--r--java/res/xml/kbd_symbols_shift_row4.xml4
-rw-r--r--java/res/xml/prefs.xml31
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java65
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java12
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java19
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java125
-rw-r--r--java/src/com/android/inputmethod/keyboard/MiniKeyboard.java24
-rw-r--r--java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java (renamed from java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java)33
-rw-r--r--java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java (renamed from java/src/com/android/inputmethod/keyboard/PopupPanel.java)33
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java33
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java12
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java4
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java (renamed from java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java)124
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java42
-rw-r--r--java/src/com/android/inputmethod/latin/CandidateView.java150
-rw-r--r--java/src/com/android/inputmethod/latin/MoreSuggestions.java203
-rw-r--r--java/src/com/android/inputmethod/latin/MoreSuggestionsView.java237
-rw-r--r--java/src/com/android/inputmethod/latin/Settings.java5
118 files changed, 1475 insertions, 819 deletions
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index 548da1bbb..703258b6a 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -9,6 +9,7 @@
<uses-permission android:name="android.permission.READ_CONTACTS" />
<application android:label="@string/english_ime_name"
+ android:icon="@drawable/ic_ime_settings"
android:backupAgent="BackupAgent"
android:killAfterRestore="false">
diff --git a/java/res/drawable-hdpi/ic_ime_settings.png b/java/res/drawable-hdpi/ic_ime_settings.png
new file mode 100644
index 000000000..f8f80732d
--- /dev/null
+++ b/java/res/drawable-hdpi/ic_ime_settings.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_ime_settings.png b/java/res/drawable-mdpi/ic_ime_settings.png
new file mode 100644
index 000000000..060e8620e
--- /dev/null
+++ b/java/res/drawable-mdpi/ic_ime_settings.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_ime_settings.png b/java/res/drawable-xhdpi/ic_ime_settings.png
new file mode 100644
index 000000000..d674be06e
--- /dev/null
+++ b/java/res/drawable-xhdpi/ic_ime_settings.png
Binary files differ
diff --git a/java/res/layout/keyboard_popup.xml b/java/res/layout/mini_keyboard.xml
index e2508da78..6964ec5d6 100644
--- a/java/res/layout/keyboard_popup.xml
+++ b/java/res/layout/mini_keyboard.xml
@@ -22,9 +22,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
- style="?attr/popupMiniKeyboardPanelStyle"
+ style="?attr/miniKeyboardPanelStyle"
>
- <com.android.inputmethod.keyboard.PopupMiniKeyboardView
+ <com.android.inputmethod.keyboard.MiniKeyboardView
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
android:id="@+id/mini_keyboard_view"
android:layout_alignParentBottom="true"
diff --git a/java/res/layout/more_suggestions.xml b/java/res/layout/more_suggestions.xml
new file mode 100644
index 000000000..d387a1573
--- /dev/null
+++ b/java/res/layout/more_suggestions.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ style="?attr/miniKeyboardPanelStyle"
+ >
+ <com.android.inputmethod.latin.MoreSuggestionsView
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ android:id="@+id/more_suggestions_view"
+ android:layout_alignParentBottom="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ latin:keyLabelSize="@dimen/candidate_text_size"
+ latin:keyHintLetterRatio="@fraction/more_suggestions_info_ratio"
+ latin:keyHintLetterColor="@android:color/white"
+ />
+</LinearLayout>
diff --git a/java/res/values-ar/donottranslate-altchars.xml b/java/res/values-ar/donottranslate-more-keys.xml
index 0e4f265e7..6f2a3ff7d 100644
--- a/java/res/values-ar/donottranslate-altchars.xml
+++ b/java/res/values-ar/donottranslate-more-keys.xml
@@ -31,7 +31,7 @@
\u064b: ARABIC FATHATAN
\u064d: ARABIC KASRATAN -->
<string name="alternates_for_punctuation">"\u060c,\u061b,\u061f,!,:,-,/,\',\",\u0651,\u0652,\u064c,\u0640,\u064f,\u064e,\u0650,\u064b,\u064d"</string>
- <integer name="popup_keyboard_column_for_punctuation">9</integer>
+ <integer name="mini_keyboard_column_for_punctuation">9</integer>
<string name="keyhintlabel_for_punctuation">\u064b</string>
<string name="keylabel_for_symbols_1">"١"</string>
<string name="keylabel_for_symbols_2">"٢"</string>
diff --git a/java/res/values-ca/donottranslate-altchars.xml b/java/res/values-ca/donottranslate-more-keys.xml
index 336057be0..336057be0 100644
--- a/java/res/values-ca/donottranslate-altchars.xml
+++ b/java/res/values-ca/donottranslate-more-keys.xml
diff --git a/java/res/values-cs/donottranslate-altchars.xml b/java/res/values-cs/donottranslate-more-keys.xml
index 541cd2154..541cd2154 100644
--- a/java/res/values-cs/donottranslate-altchars.xml
+++ b/java/res/values-cs/donottranslate-more-keys.xml
diff --git a/java/res/values-da/donottranslate-altchars.xml b/java/res/values-da/donottranslate-more-keys.xml
index 46f1644ad..46f1644ad 100644
--- a/java/res/values-da/donottranslate-altchars.xml
+++ b/java/res/values-da/donottranslate-more-keys.xml
diff --git a/java/res/values-de-rZZ/donottranslate-altchars.xml b/java/res/values-de-rZZ/donottranslate-more-keys.xml
index a6f8fc810..a6f8fc810 100644
--- a/java/res/values-de-rZZ/donottranslate-altchars.xml
+++ b/java/res/values-de-rZZ/donottranslate-more-keys.xml
diff --git a/java/res/values-de/donottranslate-altchars.xml b/java/res/values-de/donottranslate-more-keys.xml
index 8b8b6aed7..8b8b6aed7 100644
--- a/java/res/values-de/donottranslate-altchars.xml
+++ b/java/res/values-de/donottranslate-more-keys.xml
diff --git a/java/res/values-en/donottranslate-altchars.xml b/java/res/values-en/donottranslate-more-keys.xml
index 29582c950..29582c950 100644
--- a/java/res/values-en/donottranslate-altchars.xml
+++ b/java/res/values-en/donottranslate-more-keys.xml
diff --git a/java/res/values-es/donottranslate-altchars.xml b/java/res/values-es/donottranslate-more-keys.xml
index e1f849f62..e1f849f62 100644
--- a/java/res/values-es/donottranslate-altchars.xml
+++ b/java/res/values-es/donottranslate-more-keys.xml
diff --git a/java/res/values-fi/donottranslate-altchars.xml b/java/res/values-fi/donottranslate-more-keys.xml
index ff87a3258..ff87a3258 100644
--- a/java/res/values-fi/donottranslate-altchars.xml
+++ b/java/res/values-fi/donottranslate-more-keys.xml
diff --git a/java/res/values-fr/donottranslate-altchars.xml b/java/res/values-fr/donottranslate-more-keys.xml
index ae9292f91..ae9292f91 100644
--- a/java/res/values-fr/donottranslate-altchars.xml
+++ b/java/res/values-fr/donottranslate-more-keys.xml
diff --git a/java/res/values-hr/donottranslate-altchars.xml b/java/res/values-hr/donottranslate-more-keys.xml
index d0c9d4049..d0c9d4049 100644
--- a/java/res/values-hr/donottranslate-altchars.xml
+++ b/java/res/values-hr/donottranslate-more-keys.xml
diff --git a/java/res/values-hu/donottranslate-altchars.xml b/java/res/values-hu/donottranslate-more-keys.xml
index ae28cc5b8..ae28cc5b8 100644
--- a/java/res/values-hu/donottranslate-altchars.xml
+++ b/java/res/values-hu/donottranslate-more-keys.xml
diff --git a/java/res/values-it/donottranslate-altchars.xml b/java/res/values-it/donottranslate-more-keys.xml
index 1131d4852..1131d4852 100644
--- a/java/res/values-it/donottranslate-altchars.xml
+++ b/java/res/values-it/donottranslate-more-keys.xml
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 73e1aff96..4bf0e2092 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -59,6 +59,8 @@
<dimen name="key_preview_offset_ics">0.01in</dimen>
<dimen name="candidate_strip_height">36dip</dimen>
+ <dimen name="more_suggestions_row_height">36dip</dimen>
+ <dimen name="candidate_strip_minimum_height">160sp</dimen>
<dimen name="candidate_strip_fading_edge_length">63dip</dimen>
<!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
<!-- popup_key_height x 1.2 -->
diff --git a/java/res/values-lt/donottranslate-altchars.xml b/java/res/values-lt/donottranslate-more-keys.xml
index 4aba93a3a..4aba93a3a 100644
--- a/java/res/values-lt/donottranslate-altchars.xml
+++ b/java/res/values-lt/donottranslate-more-keys.xml
diff --git a/java/res/values-lv/donottranslate-altchars.xml b/java/res/values-lv/donottranslate-more-keys.xml
index 05d9bc894..05d9bc894 100644
--- a/java/res/values-lv/donottranslate-altchars.xml
+++ b/java/res/values-lv/donottranslate-more-keys.xml
diff --git a/java/res/values-nb/donottranslate-altchars.xml b/java/res/values-nb/donottranslate-more-keys.xml
index 798e51c9a..798e51c9a 100644
--- a/java/res/values-nb/donottranslate-altchars.xml
+++ b/java/res/values-nb/donottranslate-more-keys.xml
diff --git a/java/res/values-nl/donottranslate-altchars.xml b/java/res/values-nl/donottranslate-more-keys.xml
index e26a74967..e26a74967 100644
--- a/java/res/values-nl/donottranslate-altchars.xml
+++ b/java/res/values-nl/donottranslate-more-keys.xml
diff --git a/java/res/values-pl/donottranslate-altchars.xml b/java/res/values-pl/donottranslate-more-keys.xml
index 971d73bc5..971d73bc5 100644
--- a/java/res/values-pl/donottranslate-altchars.xml
+++ b/java/res/values-pl/donottranslate-more-keys.xml
diff --git a/java/res/values-pt/donottranslate-altchars.xml b/java/res/values-pt/donottranslate-more-keys.xml
index a39976151..a39976151 100644
--- a/java/res/values-pt/donottranslate-altchars.xml
+++ b/java/res/values-pt/donottranslate-more-keys.xml
diff --git a/java/res/values-rm/donottranslate-altchars.xml b/java/res/values-rm/donottranslate-more-keys.xml
index 0a5d2aad1..0a5d2aad1 100644
--- a/java/res/values-rm/donottranslate-altchars.xml
+++ b/java/res/values-rm/donottranslate-more-keys.xml
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-ro/donottranslate-more-keys.xml
index 728ead472..728ead472 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-ro/donottranslate-more-keys.xml
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-ru/donottranslate-more-keys.xml
index 2a24e563e..2a24e563e 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-ru/donottranslate-more-keys.xml
diff --git a/java/res/values-sk/donottranslate-altchars.xml b/java/res/values-sk/donottranslate-more-keys.xml
index 6d9836e9c..6d9836e9c 100644
--- a/java/res/values-sk/donottranslate-altchars.xml
+++ b/java/res/values-sk/donottranslate-more-keys.xml
diff --git a/java/res/values-sv/donottranslate-altchars.xml b/java/res/values-sv/donottranslate-more-keys.xml
index d03ae1a6c..d03ae1a6c 100644
--- a/java/res/values-sv/donottranslate-altchars.xml
+++ b/java/res/values-sv/donottranslate-more-keys.xml
diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index d539e0d82..1854a8696 100644
--- a/java/res/values-sw600dp/config.xml
+++ b/java/res/values-sw600dp/config.xml
@@ -25,7 +25,7 @@
<bool name="config_enable_show_popup_on_keypress_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool>
<bool name="config_sliding_key_input_enabled">false</bool>
- <bool name="config_digit_popup_characters_enabled">false</bool>
+ <bool name="config_digit_more_keys_enabled">false</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">false</bool>
<bool name="config_default_sound_enabled">true</bool>
@@ -39,5 +39,5 @@
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
<string name="config_default_keyboard_theme_id" translatable="false">5</string>
<string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string>
- <integer name="config_max_popup_keyboard_column">5</integer>
+ <integer name="config_max_more_keys_column">5</integer>
</resources>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index 942bc726f..6ce23cc70 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -67,6 +67,7 @@
<dimen name="key_preview_offset_ics">0.05in</dimen>
<dimen name="candidate_strip_height">44dip</dimen>
+ <dimen name="more_suggestions_row_height">44dip</dimen>
<dimen name="candidate_strip_padding">15.0mm</dimen>
<dimen name="candidate_min_width">0.3in</dimen>
<dimen name="candidate_padding">12dip</dimen>
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index d88020952..a438fe964 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -25,7 +25,7 @@
<bool name="config_enable_show_popup_on_keypress_option">false</bool>
<bool name="config_enable_bigram_suggestions_option">false</bool>
<bool name="config_sliding_key_input_enabled">false</bool>
- <bool name="config_digit_popup_characters_enabled">false</bool>
+ <bool name="config_digit_more_keys_enabled">false</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">false</bool>
<bool name="config_default_sound_enabled">true</bool>
@@ -37,7 +37,7 @@
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
<string name="config_default_keyboard_theme_id" translatable="false">5</string>
<string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string>
- <integer name="config_max_popup_keyboard_column">5</integer>
+ <integer name="config_max_more_keys_column">5</integer>
<!-- Screen metrics for logging. 0 = "mdpi", 1 = "hdpi", 2 = "xlarge" -->
<integer name="log_screen_metrics">2</integer>
</resources>
diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml
index f0340bc70..9b307e6f3 100644
--- a/java/res/values-sw768dp/dimens.xml
+++ b/java/res/values-sw768dp/dimens.xml
@@ -70,9 +70,8 @@
<dimen name="key_preview_offset_ics">0.05in</dimen>
<dimen name="candidate_strip_height">44dip</dimen>
- <!-- candidate_strip_minimum_height =
- key_preview_height_holo - key_preview_offset_holo + alpha -->
- <dimen name="candidate_strip_minimum_height">18mm</dimen>
+ <dimen name="more_suggestions_row_height">44dip</dimen>
+ <dimen name="candidate_strip_minimum_height">200sp</dimen>
<dimen name="candidate_strip_padding">15.0mm</dimen>
<dimen name="candidate_min_width">46dip</dimen>
<dimen name="candidate_padding">8dip</dimen>
diff --git a/java/res/values-tr/donottranslate-altchars.xml b/java/res/values-tr/donottranslate-more-keys.xml
index 1b83b65c8..1b83b65c8 100644
--- a/java/res/values-tr/donottranslate-altchars.xml
+++ b/java/res/values-tr/donottranslate-more-keys.xml
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index bc1bb0801..9d3426842 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -22,11 +22,12 @@
<attr name="latinKeyboardStyle" format="reference" />
<!-- KeyboardView style -->
<attr name="keyboardViewStyle" format="reference" />
- <!-- PopupMiniKeyboardView style -->
- <attr name="popupMiniKeyboardViewStyle" format="reference" />
- <attr name="popupMiniKeyboardPanelStyle" format="reference" />
+ <!-- MiniKeyboardView style -->
+ <attr name="miniKeyboardViewStyle" format="reference" />
+ <attr name="miniKeyboardPanelStyle" format="reference" />
<!-- Suggestions strip style -->
<attr name="suggestionsStripBackgroundStyle" format="reference" />
+ <attr name="suggestionsPaneViewStyle" format="reference" />
<attr name="suggestionBackgroundStyle" format="reference" />
<attr name="suggestionPreviewBackgroundStyle" format="reference" />
<attr name="candidateViewStyle" format="reference" />
@@ -95,8 +96,8 @@
<!-- Amount to offset the touch Y coordinate by, for bias correction. -->
<attr name="verticalCorrection" format="dimension" />
- <!-- Layout resource for popup keyboards. -->
- <attr name="popupLayout" format="reference" />
+ <!-- Layout resource for more keys panel -->
+ <attr name="moreKeysLayout" format="reference" />
<attr name="shadowColor" format="color" />
<attr name="shadowRadius" format="float" />
@@ -153,8 +154,8 @@
<attr name="horizontalGap" format="dimension|fraction" />
<!-- Default vertical gap between rows of keys. -->
<attr name="verticalGap" format="dimension|fraction" />
- <!-- Popup keyboard layout template -->
- <attr name="popupKeyboardTemplate" format="reference" />
+ <!-- More keys keyboard layout template -->
+ <attr name="moreKeysTemplate" format="reference" />
<!-- Locale of the keyboard layout -->
<attr name="keyboardLocale" format="string" />
<!-- True if the keyboard is Right-To-Left -->
@@ -178,10 +179,10 @@
<declare-styleable name="Keyboard_Key">
<!-- The unicode value that this key outputs. -->
<attr name="code" format="integer" />
- <!-- The characters to display in the popup keyboard. -->
- <attr name="popupCharacters" format="string" />
- <!-- Maximum column of popup keyboard -->
- <attr name="maxPopupKeyboardColumn" format="integer" />
+ <!-- The keys to display in the more keys keyboard. -->
+ <attr name="moreKeys" format="string" />
+ <!-- Maximum column of more keys keyboard -->
+ <attr name="maxMoreKeysColumn" format="integer" />
<!-- Whether this is a functional key which has different key top than normal key. -->
<attr name="isFunctional" format="boolean" />
<!-- Whether this is a toggle key. -->
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 1c7c1a172..923e37d85 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -27,7 +27,7 @@
<bool name="config_enable_bigram_suggestions_option">true</bool>
<bool name="config_enable_usability_study_mode_option">false</bool>
<bool name="config_sliding_key_input_enabled">true</bool>
- <bool name="config_digit_popup_characters_enabled">true</bool>
+ <bool name="config_digit_more_keys_enabled">true</bool>
<!-- Whether or not Popup on key press is enabled by default -->
<bool name="config_default_popup_preview">true</bool>
<!-- Default value for bigram suggestion: while showing candidates for a word should we weigh
@@ -67,7 +67,7 @@
<!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
<string name="config_default_keyboard_theme_id" translatable="false">5</string>
<string name="config_text_size_of_language_on_spacebar" translatable="false">small</string>
- <integer name="config_max_popup_keyboard_column">5</integer>
+ <integer name="config_max_more_keys_column">5</integer>
<string-array name="auto_correction_threshold_values" translatable="false">
<!-- Off, When auto correction setting is Off, this value is not used. -->
<item></item>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 2c4b35ef8..b7609a4ac 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -77,9 +77,11 @@
<dimen name="key_preview_offset_ics">0.05in</dimen>
<dimen name="candidate_strip_height">40dip</dimen>
- <!-- candidate_strip_minimum_height =
- key_preview_height_holo - key_preview_offset_holo + alpha -->
- <dimen name="candidate_strip_minimum_height">100sp</dimen>
+ <dimen name="more_suggestions_key_horizontal_padding">12dip</dimen>
+ <dimen name="more_suggestions_row_height">40dip</dimen>
+ <dimen name="more_suggestions_slide_allowance">0.2in</dimen>
+ <fraction name="more_suggestions_info_ratio">12%</fraction>
+ <dimen name="candidate_strip_minimum_height">200sp</dimen>
<dimen name="candidate_strip_fading_edge_length">63dip</dimen>
<dimen name="candidate_strip_padding">0dip</dimen>
<dimen name="candidate_min_width">44dip</dimen>
diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-more-keys.xml
index acd4b3725..acbf7dfae 100644
--- a/java/res/values/donottranslate-altchars.xml
+++ b/java/res/values/donottranslate-more-keys.xml
@@ -51,7 +51,7 @@
<string name="alternates_for_currency_general">¢,$,€,£,¥,₱</string>
<string name="alternates_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string>
<string name="alternates_for_punctuation">"\\,,\?,!,:,-,\',\",(,),/,;,+,&amp;,\@"</string>
- <integer name="popup_keyboard_column_for_punctuation">7</integer>
+ <integer name="mini_keyboard_column_for_punctuation">7</integer>
<string name="keyhintlabel_for_punctuation"></string>
<string name="keylabel_for_popular_domain">".com"</string>
<!-- popular web domains for the locale - most popular, displayed on the keyboard -->
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 7936f3c3c..4cc2a5306 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -21,12 +21,12 @@
<item name="keyboardHeight">@dimen/keyboardHeight</item>
<item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item>
<item name="minKeyboardHeight">@fraction/minKeyboardHeight</item>
- <item name="popupKeyboardTemplate">@xml/kbd_popup_template</item>
+ <item name="moreKeysTemplate">@xml/kbd_mini_keyboard_template</item>
<item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
<item name="horizontalGap">@fraction/key_horizontal_gap</item>
<item name="verticalGap">@fraction/key_bottom_gap</item>
- <item name="maxPopupKeyboardColumn">@integer/config_max_popup_keyboard_column</item>
+ <item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
</style>
<style name="LatinKeyboard">
<item name="autoCorrectionSpacebarLedEnabled">@bool/config_auto_correction_spacebar_led_enabled
@@ -61,24 +61,29 @@
<item name="keyPreviewOffset">@dimen/key_preview_offset</item>
<item name="keyPreviewHeight">@dimen/key_preview_height</item>
<item name="keyPreviewTextRatio">@fraction/key_preview_text_ratio</item>
- <item name="popupLayout">@layout/keyboard_popup</item>
+ <item name="moreKeysLayout">@layout/mini_keyboard</item>
<item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
<item name="shadowColor">#BB000000</item>
<item name="shadowRadius">2.75</item>
<item name="backgroundDimAmount">0.5</item>
</style>
<style
- name="PopupMiniKeyboardView"
+ name="MiniKeyboardView"
parent="KeyboardView"
>
<item name="keyBackground">@drawable/btn_keyboard_key_popup</item>
<item name="verticalCorrection">@dimen/mini_keyboard_vertical_correction</item>
</style>
- <style name="PopupMiniKeyboardPanelStyle">
+ <style name="MiniKeyboardPanelStyle">
<item name="android:background">@drawable/keyboard_popup_panel_background</item>
<item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_edges_padding</item>
<item name="android:paddingRight">@dimen/mini_keyboard_horizontal_edges_padding</item>
</style>
+ <style
+ name="SuggestionsPaneViewStyle"
+ parent="MiniKeyboardView"
+ >
+ </style>
<style name="SuggestionsStripBackgroundStyle">
<item name="android:background">@drawable/keyboard_suggest_strip</item>
</style>
@@ -139,8 +144,8 @@
<item name="shadowColor">#FFFFFFFF</item>
</style>
<style
- name="PopupMiniKeyboardView.Stone"
- parent="PopupMiniKeyboardView"
+ name="MiniKeyboardView.Stone"
+ parent="MiniKeyboardView"
>
<item name="keyBackground">@drawable/btn_keyboard_key_stone</item>
<item name="keyTextColor">#FF000000</item>
@@ -170,8 +175,8 @@
<item name="keyTextStyle">bold</item>
</style>
<style
- name="PopupMiniKeyboardView.Gingerbread"
- parent="PopupMiniKeyboardView"
+ name="MiniKeyboardView.Gingerbread"
+ parent="MiniKeyboardView"
>
<item name="android:background">@null</item>
</style>
@@ -213,13 +218,13 @@
<item name="shadowRadius">0.0</item>
</style>
<style
- name="PopupMiniKeyboardView.IceCreamSandwich"
- parent="PopupMiniKeyboardView"
+ name="MiniKeyboardView.IceCreamSandwich"
+ parent="MiniKeyboardView"
>
<item name="android:background">@null</item>
<item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
</style>
- <style name="PopupMiniKeyboardPanelStyle.IceCreamSandwich">
+ <style name="MiniKeyboardPanelStyle.IceCreamSandwich">
<item name="android:background">@drawable/btn_keyboard_key_popup_background_holo</item>
<item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_edges_padding_ics</item>
<item name="android:paddingRight">@dimen/mini_keyboard_horizontal_edges_padding_ics</item>
@@ -232,7 +237,12 @@
</style>
<style
name="SuggestionPreviewBackgroundStyle.IceCreamSandwich"
- parent="PopupMiniKeyboardPanelStyle.IceCreamSandwich"
+ parent="MiniKeyboardPanelStyle.IceCreamSandwich"
+ >
+ </style>
+ <style
+ name="SuggestionsPaneViewStyle.IceCreamSandwich"
+ parent="MiniKeyboardView.IceCreamSandwich"
>
</style>
<style
@@ -246,7 +256,7 @@
<item name="candidateCountInStrip">@integer/candidate_count_in_strip</item>
<item name="centerCandidatePercentile">@integer/center_candidate_percentile</item>
</style>
- <style name="PopupMiniKeyboardAnimation">
+ <style name="MiniKeyboardAnimation">
<item name="android:windowEnterAnimation">@anim/mini_keyboard_fadein</item>
<item name="android:windowExitAnimation">@anim/mini_keyboard_fadeout</item>
</style>
diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml
index 820f96216..51bf2f1d2 100644
--- a/java/res/values/themes-basic-highcontrast.xml
+++ b/java/res/values/themes-basic-highcontrast.xml
@@ -19,9 +19,10 @@
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>
- <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
- <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
+ <item name="miniKeyboardViewStyle">@style/MiniKeyboardView</item>
+ <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+ <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml
index 18cae4e24..7288dbacb 100644
--- a/java/res/values/themes-basic.xml
+++ b/java/res/values/themes-basic.xml
@@ -19,9 +19,10 @@
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item>
- <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView</item>
- <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
+ <item name="miniKeyboardViewStyle">@style/MiniKeyboardView</item>
+ <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+ <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml
index 60f226153..5b62378f6 100644
--- a/java/res/values/themes-gingerbread.xml
+++ b/java/res/values/themes-gingerbread.xml
@@ -19,9 +19,10 @@
<item name="keyboardStyle">@style/Keyboard.Gingerbread</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>
- <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Gingerbread</item>
- <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
+ <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.Gingerbread</item>
+ <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+ <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 97c594408..597d87b4c 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -19,9 +19,10 @@
<item name="keyboardStyle">@style/Keyboard.IceCreamSandwich</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.IceCreamSandwich</item>
<item name="keyboardViewStyle">@style/KeyboardView.IceCreamSandwich</item>
- <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.IceCreamSandwich</item>
- <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle.IceCreamSandwich</item>
+ <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.IceCreamSandwich</item>
+ <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle.IceCreamSandwich</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.IceCreamSandwich</item>
+ <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle.IceCreamSandwich</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.IceCreamSandwich</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle.IceCreamSandwich</item>
<item name="candidateViewStyle">@style/CandidateViewStyle.IceCreamSandwich</item>
diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml
index d33e6bf35..ff7107d32 100644
--- a/java/res/values/themes-stone-bold.xml
+++ b/java/res/values/themes-stone-bold.xml
@@ -19,10 +19,11 @@
<item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>
- <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
- <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
+ <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.Stone</item>
+ <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
- <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
+ <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
+ <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
</style>
diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml
index 230b2ca4d..35390d111 100644
--- a/java/res/values/themes-stone.xml
+++ b/java/res/values/themes-stone.xml
@@ -19,9 +19,10 @@
<item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item>
- <item name="popupMiniKeyboardViewStyle">@style/PopupMiniKeyboardView.Stone</item>
- <item name="popupMiniKeyboardPanelStyle">@style/PopupMiniKeyboardPanelStyle</item>
+ <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.Stone</item>
+ <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
<item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+ <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml
index b93d3007f..d94c3fa0a 100644
--- a/java/res/xml-sw600dp/kbd_key_styles.xml
+++ b/java/res/xml-sw600dp/kbd_key_styles.xml
@@ -38,7 +38,7 @@
<key-style
latin:styleName="f2PopupStyle"
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="\@icon/3|\@integer/key_settings"
+ latin:moreKeys="\@icon/3|\@integer/key_settings"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
@@ -72,8 +72,8 @@
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_smiley"
- latin:maxPopupKeyboardColumn="5" />
+ latin:moreKeys="@string/alternates_for_smiley"
+ latin:maxMoreKeysColumn="5" />
<key-style
latin:styleName="shortcutKeyStyle"
latin:code="@integer/key_shortcut"
@@ -117,5 +117,5 @@
latin:keyLabel="@string/keylabel_for_popular_domain"
latin:keyLabelOption="fontNormal|hasPopupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
- latin:popupCharacters="@string/alternates_for_popular_domain" />
+ latin:moreKeys="@string/alternates_for_popular_domain" />
</merge>
diff --git a/java/res/xml-sw600dp/kbd_popup_template.xml b/java/res/xml-sw600dp/kbd_mini_keyboard_template.xml
index d97649965..9955fe8fd 100644
--- a/java/res/xml-sw600dp/kbd_popup_template.xml
+++ b/java/res/xml-sw600dp/kbd_mini_keyboard_template.xml
@@ -20,8 +20,6 @@
<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
latin:keyWidth="8%p"
- latin:horizontalGap="@fraction/key_horizontal_gap"
- latin:verticalGap="0px"
latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row1.xml b/java/res/xml-sw600dp/kbd_qwerty_row1.xml
index c7dfcc83d..1756d8357 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row1.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row1.xml
@@ -26,34 +26,34 @@
>
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row2.xml b/java/res/xml-sw600dp/kbd_qwerty_row2.xml
index 78004fe4f..d403db1b1 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row2.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row2.xml
@@ -26,29 +26,29 @@
>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a"
+ latin:moreKeys="@string/alternates_for_a"
latin:keyXPos="4.5%p" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row3.xml b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
index 456f3c8ca..04f39ed66 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
@@ -29,20 +29,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row4.xml b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
index 4c978cb2c..ef0292279 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
@@ -47,7 +47,7 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\@"
- latin:popupCharacters="\@" />
+ latin:moreKeys="\@" />
</default>
</switch>
<Key
diff --git a/java/res/xml-sw600dp/kbd_row3_comma_period.xml b/java/res/xml-sw600dp/kbd_row3_comma_period.xml
index 25453160f..b84443078 100644
--- a/java/res/xml-sw600dp/kbd_row3_comma_period.xml
+++ b/java/res/xml-sw600dp/kbd_row3_comma_period.xml
@@ -35,12 +35,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw600dp/kbd_row3_smiley.xml b/java/res/xml-sw600dp/kbd_row3_smiley.xml
index 0ae3ae474..f9b647cdf 100644
--- a/java/res/xml-sw600dp/kbd_row3_smiley.xml
+++ b/java/res/xml-sw600dp/kbd_row3_smiley.xml
@@ -37,7 +37,7 @@
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="_"
- latin:popupCharacters="_"
+ latin:moreKeys="_"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth" />
</case>
@@ -48,7 +48,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
- latin:popupCharacters="+"
+ latin:moreKeys="+"
latin:keyXPos="-8.9%p"
latin:keyWidth="fillBoth" />
</case>
diff --git a/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml b/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml
index 50d4d4b10..637201f45 100644
--- a/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml
+++ b/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml
@@ -35,14 +35,14 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel=":"
- latin:popupCharacters=":" />
+ latin:moreKeys=":" />
</case>
<default>
<Key
latin:keyLabel="@string/keylabel_for_apostrophe"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
- latin:popupCharacters="@string/alternates_for_apostrophe" />
+ latin:moreKeys="@string/alternates_for_apostrophe" />
</default>
</switch>
<switch>
@@ -57,7 +57,7 @@
latin:keyLabel="@string/keylabel_for_dash"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_dash"
- latin:popupCharacters="@string/alternates_for_dash" />
+ latin:moreKeys="@string/alternates_for_dash" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw600dp/kbd_rows_arabic.xml b/java/res/xml-sw600dp/kbd_rows_arabic.xml
index 4c20f51ca..275df50a5 100644
--- a/java/res/xml-sw600dp/kbd_rows_arabic.xml
+++ b/java/res/xml-sw600dp/kbd_rows_arabic.xml
@@ -36,7 +36,7 @@
latin:keyLabel="ق" />
<Key
latin:keyLabel="ف"
- latin:popupCharacters="ڤ" />
+ latin:moreKeys="ڤ" />
<Key
latin:keyLabel="غ" />
<Key
@@ -45,14 +45,14 @@
\u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
<Key
latin:keyLabel="ه"
- latin:popupCharacters="\ufeeb|\u0647\u0640" />
+ latin:moreKeys="\ufeeb|\u0647\u0640" />
<Key
latin:keyLabel="خ" />
<Key
latin:keyLabel="ح" />
<Key
latin:keyLabel="ج"
- latin:popupCharacters="چ" />
+ latin:moreKeys="چ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@@ -70,7 +70,7 @@
latin:keyLabel="ي" />
<Key
latin:keyLabel="ب"
- latin:popupCharacters="پ" />
+ latin:moreKeys="پ" />
<!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
\u0644: ARABIC LETTER LAM
\u0627: ARABIC LETTER ALEF
@@ -82,13 +82,13 @@
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ل"
- latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+ latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
<!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
\u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ا"
- latin:popupCharacters="\u0623,\u0625,\u0622" />
+ latin:moreKeys="\u0623,\u0625,\u0622" />
<Key
latin:keyLabel="ت" />
<Key
@@ -97,7 +97,7 @@
latin:keyLabel="م" />
<Key
latin:keyLabel="ك"
- latin:popupCharacters="گ" />
+ latin:moreKeys="گ" />
<Key
latin:keyLabel="ط" />
<Key
@@ -123,7 +123,7 @@
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="_"
- latin:popupCharacters="_" />
+ latin:moreKeys="_" />
</case>
<case
latin:imeAction="actionSearch"
@@ -132,7 +132,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
- latin:popupCharacters="+" />
+ latin:moreKeys="+" />
</case>
<default>
<Key
@@ -157,7 +157,7 @@
latin:keyLabel="و" />
<Key
latin:keyLabel="ز"
- latin:popupCharacters="ژ" />
+ latin:moreKeys="ژ" />
<Key
latin:keyLabel="ظ" />
<Key
diff --git a/java/res/xml-sw600dp/kbd_rows_azerty.xml b/java/res/xml-sw600dp/kbd_rows_azerty.xml
index 406b4e670..fbe824884 100644
--- a/java/res/xml-sw600dp/kbd_rows_azerty.xml
+++ b/java/res/xml-sw600dp/kbd_rows_azerty.xml
@@ -28,34 +28,34 @@
>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@@ -66,29 +66,29 @@
>
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q"
+ latin:moreKeys="@string/alternates_for_q"
latin:keyXPos="5.0%p" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="m" />
<Key
@@ -104,20 +104,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="\'" />
<switch>
@@ -134,12 +134,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
<include
diff --git a/java/res/xml-sw600dp/kbd_rows_hebrew.xml b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
index fc2247cb0..a8adbd34c 100644
--- a/java/res/xml-sw600dp/kbd_rows_hebrew.xml
+++ b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
@@ -59,17 +59,17 @@
latin:keyLabel="ד" />
<Key
latin:keyLabel="ג"
- latin:popupCharacters="ג׳" />
+ latin:moreKeys="ג׳" />
<Key
latin:keyLabel="כ" />
<Key
latin:keyLabel="ע" />
<Key
latin:keyLabel="י"
- latin:popupCharacters="ײַ" />
+ latin:moreKeys="ײַ" />
<Key
latin:keyLabel="ח"
- latin:popupCharacters="ח׳" />
+ latin:moreKeys="ח׳" />
<Key
latin:keyLabel="ל" />
<Key
@@ -96,7 +96,7 @@
latin:keyLabel="-"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="_"
- latin:popupCharacters="_"
+ latin:moreKeys="_"
latin:keyWidth="10.0%p" />
</case>
<case
@@ -106,7 +106,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
- latin:popupCharacters="+"
+ latin:moreKeys="+"
latin:keyWidth="10.0%p" />
</case>
<default>
@@ -117,7 +117,7 @@
</switch>
<Key
latin:keyLabel="ז"
- latin:popupCharacters="ז׳" />
+ latin:moreKeys="ז׳" />
<Key
latin:keyLabel="ס" />
<Key
@@ -130,13 +130,13 @@
latin:keyLabel="מ" />
<Key
latin:keyLabel="צ"
- latin:popupCharacters="צ׳" />
+ latin:moreKeys="צ׳" />
<Key
latin:keyLabel="ת"
- latin:popupCharacters="ת׳" />
+ latin:moreKeys="ת׳" />
<Key
latin:keyLabel="ץ"
- latin:popupCharacters="ץ׳" />
+ latin:moreKeys="ץ׳" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-10.400%p"
diff --git a/java/res/xml-sw600dp/kbd_rows_qwertz.xml b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
index 3d177e72d..75fe8b516 100644
--- a/java/res/xml-sw600dp/kbd_rows_qwertz.xml
+++ b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
@@ -28,34 +28,34 @@
>
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@@ -71,20 +71,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<switch>
@@ -101,12 +101,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
<include
diff --git a/java/res/xml-sw600dp/kbd_rows_russian.xml b/java/res/xml-sw600dp/kbd_rows_russian.xml
index 2f4b95e60..5d36ebc84 100644
--- a/java/res/xml-sw600dp/kbd_rows_russian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_russian.xml
@@ -36,7 +36,7 @@
latin:keyLabel="к" />
<Key
latin:keyLabel="е"
- latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+ latin:moreKeys="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н" />
<Key
@@ -124,12 +124,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
<include
diff --git a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
index 505913726..9c768df49 100644
--- a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
@@ -28,34 +28,34 @@
>
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyLabel="å" />
<Key
@@ -69,34 +69,34 @@
<Key
latin:keyLabel="a"
latin:keyXPos="3.5%p"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
- latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+ latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
- latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+ latin:moreKeys="@string/alternates_for_scandinavia_row2_11" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
@@ -112,20 +112,20 @@
latin:keyWidth="4.35%p" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include
diff --git a/java/res/xml-sw600dp/kbd_rows_spanish.xml b/java/res/xml-sw600dp/kbd_rows_spanish.xml
index 49243eb5c..805b96323 100644
--- a/java/res/xml-sw600dp/kbd_rows_spanish.xml
+++ b/java/res/xml-sw600dp/kbd_rows_spanish.xml
@@ -30,29 +30,29 @@
>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a"
+ latin:moreKeys="@string/alternates_for_a"
latin:keyXPos="5.0%p" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="ñ" />
<Key
diff --git a/java/res/xml-sw600dp/kbd_rows_symbols.xml b/java/res/xml-sw600dp/kbd_rows_symbols.xml
index 420e46cce..f67f8a8bc 100644
--- a/java/res/xml-sw600dp/kbd_rows_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_rows_symbols.xml
@@ -30,34 +30,34 @@
>
<Key
latin:keyLabel="@string/keylabel_for_symbols_1"
- latin:popupCharacters="@string/alternates_for_symbols_1" />
+ latin:moreKeys="@string/alternates_for_symbols_1" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_2"
- latin:popupCharacters="@string/alternates_for_symbols_2" />
+ latin:moreKeys="@string/alternates_for_symbols_2" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_3"
- latin:popupCharacters="@string/alternates_for_symbols_3" />
+ latin:moreKeys="@string/alternates_for_symbols_3" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_4"
- latin:popupCharacters="@string/alternates_for_symbols_4" />
+ latin:moreKeys="@string/alternates_for_symbols_4" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_5"
- latin:popupCharacters="@string/alternates_for_symbols_5" />
+ latin:moreKeys="@string/alternates_for_symbols_5" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_6"
- latin:popupCharacters="@string/alternates_for_symbols_6" />
+ latin:moreKeys="@string/alternates_for_symbols_6" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_7"
- latin:popupCharacters="@string/alternates_for_symbols_7" />
+ latin:moreKeys="@string/alternates_for_symbols_7" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_8"
- latin:popupCharacters="@string/alternates_for_symbols_8" />
+ latin:moreKeys="@string/alternates_for_symbols_8" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_9"
- latin:popupCharacters="@string/alternates_for_symbols_9" />
+ latin:moreKeys="@string/alternates_for_symbols_9" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_0"
- latin:popupCharacters="@string/alternates_for_symbols_0" />
+ latin:moreKeys="@string/alternates_for_symbols_0" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-10.0%p"
@@ -73,24 +73,24 @@
latin:keyStyle="currencyKeyStyle" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_percent"
- latin:popupCharacters="@string/alternates_for_symbols_percent" />
+ latin:moreKeys="@string/alternates_for_symbols_percent" />
<Key
latin:keyLabel="&amp;" />
<Key
latin:keyLabel="*"
- latin:popupCharacters="†,‡,★" />
+ latin:moreKeys="†,‡,★" />
<Key
latin:keyLabel="-"
- latin:popupCharacters="_,–,—" />
+ latin:moreKeys="_,–,—" />
<Key
latin:keyLabel="+"
- latin:popupCharacters="±" />
+ latin:moreKeys="±" />
<Key
latin:keyLabel="("
- latin:popupCharacters="[,{,&lt;" />
+ latin:moreKeys="[,{,&lt;" />
<Key
latin:keyLabel=")"
- latin:popupCharacters="],},&gt;" />
+ latin:moreKeys="],},&gt;" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-14.6%p"
@@ -104,20 +104,20 @@
latin:keyWidth="10.0%p" />
<Key
latin:keyLabel="&lt;"
- latin:popupCharacters="≤,«,‹" />
+ latin:moreKeys="≤,«,‹" />
<Key
latin:keyLabel="&gt;"
- latin:popupCharacters="≥,»,›" />
+ latin:moreKeys="≥,»,›" />
<Key
latin:keyLabel="="
- latin:popupCharacters="≠,≈" />
+ latin:moreKeys="≠,≈" />
<switch>
<case
latin:mode="url"
>
<Key
latin:keyLabel="\'"
- latin:popupCharacters="‘,’,‚,‛" />
+ latin:moreKeys="‘,’,‚,‛" />
</case>
<default>
<Key
@@ -126,18 +126,18 @@
</switch>
<Key
latin:keyLabel="@string/keylabel_for_symbols_semicolon"
- latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+ latin:moreKeys="@string/alternates_for_symbols_semicolon" />
<Key
latin:keyLabel="@string/keylabel_for_comma"
- latin:popupCharacters="@string/alternates_for_comma" />
+ latin:moreKeys="@string/alternates_for_comma" />
<Key
latin:keyLabel="." />
<Key
latin:keyLabel="!"
- latin:popupCharacters="¡" />
+ latin:moreKeys="¡" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_question"
- latin:popupCharacters="@string/alternates_for_symbols_question" />
+ latin:moreKeys="@string/alternates_for_symbols_question" />
<Key
latin:keyLabel="/"
latin:keyWidth="fillRight" />
@@ -157,10 +157,10 @@
latin:keyXPos="30.750%p"
latin:keyWidth="39.750%p" />
<!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
- <!-- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" -->
+ <!-- latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛" -->
<Key
latin:keyLabel="&quot;"
- latin:popupCharacters="“,”,«,»,‘,’,‚,‛" />
+ latin:moreKeys="“,”,«,»,‘,’,‚,‛" />
<Key
latin:keyLabel="_" />
<Spacer
diff --git a/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml b/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml
index c5143d9c8..3d62eff7e 100644
--- a/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml
+++ b/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml
@@ -34,19 +34,19 @@
latin:keyLabel="|" />
<Key
latin:keyLabel="•"
- latin:popupCharacters="♪,♥,♠,♦,♣" />
+ latin:moreKeys="♪,♥,♠,♦,♣" />
<Key
latin:keyLabel="√" />
<Key
latin:keyLabel="π"
- latin:popupCharacters="Π" />
+ latin:moreKeys="Π" />
<Key
latin:keyLabel="÷" />
<Key
latin:keyLabel="×" />
<Key
latin:keyLabel="§"
- latin:popupCharacters="¶" />
+ latin:moreKeys="¶" />
<Key
latin:keyLabel="Δ" />
<Key
@@ -68,13 +68,13 @@
latin:keyLabel="¥" />
<Key
latin:keyLabel="^"
- latin:popupCharacters="↑,↓,←,→" />
+ latin:moreKeys="↑,↓,←,→" />
<Key
latin:keyLabel="°"
- latin:popupCharacters="′,″" />
+ latin:moreKeys="′,″" />
<Key
latin:keyLabel="±"
- latin:popupCharacters="∞" />
+ latin:moreKeys="∞" />
<Key
latin:keyLabel="{" />
<Key
diff --git a/java/res/xml-sw768dp/kbd_key_styles.xml b/java/res/xml-sw768dp/kbd_key_styles.xml
index 7c74bb5ad..ffab1aa9c 100644
--- a/java/res/xml-sw768dp/kbd_key_styles.xml
+++ b/java/res/xml-sw768dp/kbd_key_styles.xml
@@ -54,8 +54,8 @@
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_smiley"
- latin:maxPopupKeyboardColumn="5" />
+ latin:moreKeys="@string/alternates_for_smiley"
+ latin:maxMoreKeysColumn="5" />
<key-style
latin:styleName="settingsKeyStyle"
latin:code="@integer/key_settings"
@@ -103,5 +103,5 @@
latin:keyLabel="@string/keylabel_for_popular_domain"
latin:keyLabelOption="fontNormal|hasPopupHint"
latin:keyOutputText="@string/keylabel_for_popular_domain"
- latin:popupCharacters="@string/alternates_for_popular_domain" />
+ latin:moreKeys="@string/alternates_for_popular_domain" />
</merge>
diff --git a/java/res/xml-sw768dp/kbd_popup_template.xml b/java/res/xml-sw768dp/kbd_mini_keyboard_template.xml
index 7d39d1a3a..1c15a5e9c 100644
--- a/java/res/xml-sw768dp/kbd_popup_template.xml
+++ b/java/res/xml-sw768dp/kbd_mini_keyboard_template.xml
@@ -20,8 +20,6 @@
<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
latin:keyWidth="5.0%p"
- latin:horizontalGap="0px"
- latin:verticalGap="0px"
latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row1.xml b/java/res/xml-sw768dp/kbd_qwerty_row1.xml
index 0fdb463f1..b9dc957ee 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row1.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row1.xml
@@ -30,34 +30,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row2.xml b/java/res/xml-sw768dp/kbd_qwerty_row2.xml
index 7f7dd57f0..eb5ab70b5 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row2.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row2.xml
@@ -30,28 +30,28 @@
latin:keyWidth="11.172%p"/>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-15.704%p"
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row3.xml b/java/res/xml-sw768dp/kbd_qwerty_row3.xml
index 677235f63..668cc1f54 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row3.xml
@@ -29,20 +29,20 @@
latin:keyWidth="13.829%p"/>
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row4.xml b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
index 1ff9d81f1..9346111ee 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
@@ -59,7 +59,7 @@
latin:keyLabel=":"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="+"
- latin:popupCharacters="+" />
+ latin:moreKeys="+" />
</case>
<default>
<Key
@@ -78,7 +78,7 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\@"
- latin:popupCharacters="\@" />
+ latin:moreKeys="\@" />
</default>
</switch>
</default>
diff --git a/java/res/xml-sw768dp/kbd_row3_comma_period.xml b/java/res/xml-sw768dp/kbd_row3_comma_period.xml
index 25453160f..b84443078 100644
--- a/java/res/xml-sw768dp/kbd_row3_comma_period.xml
+++ b/java/res/xml-sw768dp/kbd_row3_comma_period.xml
@@ -35,12 +35,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml b/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
index 50d4d4b10..637201f45 100644
--- a/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
+++ b/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
@@ -35,14 +35,14 @@
latin:keyLabel="/"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel=":"
- latin:popupCharacters=":" />
+ latin:moreKeys=":" />
</case>
<default>
<Key
latin:keyLabel="@string/keylabel_for_apostrophe"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
- latin:popupCharacters="@string/alternates_for_apostrophe" />
+ latin:moreKeys="@string/alternates_for_apostrophe" />
</default>
</switch>
<switch>
@@ -57,7 +57,7 @@
latin:keyLabel="@string/keylabel_for_dash"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="@string/keyhintlabel_for_dash"
- latin:popupCharacters="@string/alternates_for_dash" />
+ latin:moreKeys="@string/alternates_for_dash" />
</default>
</switch>
</merge>
diff --git a/java/res/xml-sw768dp/kbd_rows_arabic.xml b/java/res/xml-sw768dp/kbd_rows_arabic.xml
index 2f10d54e8..984ba5092 100644
--- a/java/res/xml-sw768dp/kbd_rows_arabic.xml
+++ b/java/res/xml-sw768dp/kbd_rows_arabic.xml
@@ -40,7 +40,7 @@
latin:keyLabel="ق" />
<Key
latin:keyLabel="ف"
- latin:popupCharacters="ڤ" />
+ latin:moreKeys="ڤ" />
<Key
latin:keyLabel="غ" />
<Key
@@ -49,14 +49,14 @@
\u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
<Key
latin:keyLabel="ه"
- latin:popupCharacters="\ufeeb|\u0647\u0640" />
+ latin:moreKeys="\ufeeb|\u0647\u0640" />
<Key
latin:keyLabel="خ" />
<Key
latin:keyLabel="ح" />
<Key
latin:keyLabel="ج"
- latin:popupCharacters="چ" />
+ latin:moreKeys="چ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-11.500%p"
@@ -77,7 +77,7 @@
latin:keyLabel="ي" />
<Key
latin:keyLabel="ب"
- latin:popupCharacters="پ" />
+ latin:moreKeys="پ" />
<!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
\u0644: ARABIC LETTER LAM
\u0627: ARABIC LETTER ALEF
@@ -89,13 +89,13 @@
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ل"
- latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+ latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
<!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
\u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ا"
- latin:popupCharacters="\u0623,\u0625,\u0622" />
+ latin:moreKeys="\u0623,\u0625,\u0622" />
<Key
latin:keyLabel="ت" />
<Key
@@ -104,7 +104,7 @@
latin:keyLabel="م" />
<Key
latin:keyLabel="ك"
- latin:popupCharacters="گ" />
+ latin:moreKeys="گ" />
<Key
latin:keyLabel="ط" />
<Key
@@ -134,7 +134,7 @@
latin:keyLabel="و" />
<Key
latin:keyLabel="ز"
- latin:popupCharacters="ژ" />
+ latin:moreKeys="ژ" />
<Key
latin:keyLabel="ظ" />
<Key
diff --git a/java/res/xml-sw768dp/kbd_rows_azerty.xml b/java/res/xml-sw768dp/kbd_rows_azerty.xml
index 7aec0d15d..b37c22c06 100644
--- a/java/res/xml-sw768dp/kbd_rows_azerty.xml
+++ b/java/res/xml-sw768dp/kbd_rows_azerty.xml
@@ -32,34 +32,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
@@ -74,28 +74,28 @@
latin:keyWidth="10.167%p" />
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="m" />
<Key
@@ -111,25 +111,25 @@
latin:keyWidth="13.829%p" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="\'"
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel=":"
- latin:popupCharacters=":" />
+ latin:moreKeys=":" />
<switch>
<case
latin:mode="email"
@@ -144,12 +144,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
<Key
diff --git a/java/res/xml-sw768dp/kbd_rows_hebrew.xml b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
index bacc6a13b..27b39d1ae 100644
--- a/java/res/xml-sw768dp/kbd_rows_hebrew.xml
+++ b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
@@ -66,17 +66,17 @@
latin:keyLabel="ד" />
<Key
latin:keyLabel="ג"
- latin:popupCharacters="ג׳" />
+ latin:moreKeys="ג׳" />
<Key
latin:keyLabel="כ" />
<Key
latin:keyLabel="ע" />
<Key
latin:keyLabel="י"
- latin:popupCharacters="ײַ" />
+ latin:moreKeys="ײַ" />
<Key
latin:keyLabel="ח"
- latin:popupCharacters="ח׳" />
+ latin:moreKeys="ח׳" />
<Key
latin:keyLabel="ל" />
<Key
@@ -89,7 +89,7 @@
>
<Key
latin:keyLabel="ז"
- latin:popupCharacters="ז׳"
+ latin:moreKeys="ז׳"
latin:keyXPos="13.829%p" />
<Key
latin:keyLabel="ס" />
@@ -103,13 +103,13 @@
latin:keyLabel="מ" />
<Key
latin:keyLabel="צ"
- latin:popupCharacters="צ׳" />
+ latin:moreKeys="צ׳" />
<Key
latin:keyLabel="ת"
- latin:popupCharacters="ת׳" />
+ latin:moreKeys="ת׳" />
<Key
latin:keyLabel="ץ"
- latin:popupCharacters="ץ׳" />
+ latin:moreKeys="ץ׳" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-10.400%p"
diff --git a/java/res/xml-sw768dp/kbd_rows_qwertz.xml b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
index 5556d1f3d..38dd20957 100644
--- a/java/res/xml-sw768dp/kbd_rows_qwertz.xml
+++ b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
@@ -32,34 +32,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
@@ -75,20 +75,20 @@
latin:keyWidth="13.829%p" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<switch>
@@ -105,12 +105,12 @@
latin:keyLabel=","
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="!"
- latin:popupCharacters="!" />
+ latin:moreKeys="!" />
<Key
latin:keyLabel="."
latin:keyLabelOption="hasUppercaseLetter"
latin:keyHintLabel="\?"
- latin:popupCharacters="\?" />
+ latin:moreKeys="\?" />
</default>
</switch>
<Key
diff --git a/java/res/xml-sw768dp/kbd_rows_russian.xml b/java/res/xml-sw768dp/kbd_rows_russian.xml
index 82ceaeadc..1b2cbe7ea 100644
--- a/java/res/xml-sw768dp/kbd_rows_russian.xml
+++ b/java/res/xml-sw768dp/kbd_rows_russian.xml
@@ -39,7 +39,7 @@
latin:keyLabel="к" />
<Key
latin:keyLabel="е"
- latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+ latin:moreKeys="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н" />
<Key
diff --git a/java/res/xml-sw768dp/kbd_rows_scandinavian.xml b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
index 743c6bd26..fa3a09aa8 100644
--- a/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
+++ b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
@@ -32,34 +32,34 @@
latin:keyWidth="7.500%p" />
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyLabel="å" />
<Key
@@ -76,34 +76,34 @@
latin:keyWidth="9.375%p" />
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
- latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+ latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
- latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+ latin:moreKeys="@string/alternates_for_scandinavia_row2_11" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-9.375%p"
@@ -117,20 +117,20 @@
latin:keyWidth="12.750%p" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<include
diff --git a/java/res/xml-sw768dp/kbd_rows_spanish.xml b/java/res/xml-sw768dp/kbd_rows_spanish.xml
index 510cafbfd..0f3423266 100644
--- a/java/res/xml-sw768dp/kbd_rows_spanish.xml
+++ b/java/res/xml-sw768dp/kbd_rows_spanish.xml
@@ -34,28 +34,28 @@
latin:keyWidth="10.167%p" />
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="ñ" />
<Key
diff --git a/java/res/xml-sw768dp/kbd_rows_symbols.xml b/java/res/xml-sw768dp/kbd_rows_symbols.xml
index 66b9789ac..3b599b9bc 100644
--- a/java/res/xml-sw768dp/kbd_rows_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_rows_symbols.xml
@@ -34,34 +34,34 @@
latin:keyWidth="7.969%p" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_1"
- latin:popupCharacters="@string/alternates_for_symbols_1" />
+ latin:moreKeys="@string/alternates_for_symbols_1" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_2"
- latin:popupCharacters="@string/alternates_for_symbols_2" />
+ latin:moreKeys="@string/alternates_for_symbols_2" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_3"
- latin:popupCharacters="@string/alternates_for_symbols_3" />
+ latin:moreKeys="@string/alternates_for_symbols_3" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_4"
- latin:popupCharacters="@string/alternates_for_symbols_4" />
+ latin:moreKeys="@string/alternates_for_symbols_4" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_5"
- latin:popupCharacters="@string/alternates_for_symbols_5" />
+ latin:moreKeys="@string/alternates_for_symbols_5" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_6"
- latin:popupCharacters="@string/alternates_for_symbols_6" />
+ latin:moreKeys="@string/alternates_for_symbols_6" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_7"
- latin:popupCharacters="@string/alternates_for_symbols_7" />
+ latin:moreKeys="@string/alternates_for_symbols_7" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_8"
- latin:popupCharacters="@string/alternates_for_symbols_8" />
+ latin:moreKeys="@string/alternates_for_symbols_8" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_9"
- latin:popupCharacters="@string/alternates_for_symbols_9" />
+ latin:moreKeys="@string/alternates_for_symbols_9" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_0"
- latin:popupCharacters="@string/alternates_for_symbols_0" />
+ latin:moreKeys="@string/alternates_for_symbols_0" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyXPos="-9.219%p"
@@ -80,24 +80,24 @@
latin:keyStyle="currencyKeyStyle" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_percent"
- latin:popupCharacters="@string/alternates_for_symbols_percent" />
+ latin:moreKeys="@string/alternates_for_symbols_percent" />
<Key
latin:keyLabel="&amp;" />
<Key
latin:keyLabel="*"
- latin:popupCharacters="†,‡,★" />
+ latin:moreKeys="†,‡,★" />
<Key
latin:keyLabel="-"
- latin:popupCharacters="_,–,—" />
+ latin:moreKeys="_,–,—" />
<Key
latin:keyLabel="+"
- latin:popupCharacters="±" />
+ latin:moreKeys="±" />
<Key
latin:keyLabel="("
- latin:popupCharacters="[,{,&lt;" />
+ latin:moreKeys="[,{,&lt;" />
<Key
latin:keyLabel=")"
- latin:popupCharacters="],},&gt;" />
+ latin:moreKeys="],},&gt;" />
<Key
latin:keyStyle="returnKeyStyle"
latin:keyXPos="-15.704%p"
@@ -111,20 +111,20 @@
latin:keyWidth="13.829%p" />
<Key
latin:keyLabel="&lt;"
- latin:popupCharacters="≤,«,‹" />
+ latin:moreKeys="≤,«,‹" />
<Key
latin:keyLabel="&gt;"
- latin:popupCharacters="≥,»,›" />
+ latin:moreKeys="≥,»,›" />
<Key
latin:keyLabel="="
- latin:popupCharacters="≠,≈" />
+ latin:moreKeys="≠,≈" />
<switch>
<case
latin:mode="url"
>
<Key
latin:keyLabel="\'"
- latin:popupCharacters="‘,’,‚,‛" />
+ latin:moreKeys="‘,’,‚,‛" />
</case>
<default>
<Key
@@ -133,18 +133,18 @@
</switch>
<Key
latin:keyLabel="@string/keylabel_for_symbols_semicolon"
- latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+ latin:moreKeys="@string/alternates_for_symbols_semicolon" />
<Key
latin:keyLabel="@string/keylabel_for_comma"
- latin:popupCharacters="@string/alternates_for_comma" />
+ latin:moreKeys="@string/alternates_for_comma" />
<Key
latin:keyLabel="." />
<Key
latin:keyLabel="!"
- latin:popupCharacters="¡" />
+ latin:moreKeys="¡" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_question"
- latin:popupCharacters="@string/alternates_for_symbols_question" />
+ latin:moreKeys="@string/alternates_for_symbols_question" />
<Key
latin:keyStyle="toMoreSymbolKeyStyle"
latin:keyXPos="-13.750%p"
@@ -172,10 +172,10 @@
latin:keyXPos="31.250%p"
latin:keyWidth="37.500%p" />
<!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
- <!-- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" -->
+ <!-- latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛" -->
<Key
latin:keyLabel="&quot;"
- latin:popupCharacters="“,”,«,»,‘,’,‚,‛" />
+ latin:moreKeys="“,”,«,»,‘,’,‚,‛" />
<Key
latin:keyLabel="_" />
<switch>
diff --git a/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml b/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml
index 82bc4b26e..30f72ac46 100644
--- a/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml
+++ b/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml
@@ -38,19 +38,19 @@
latin:keyLabel="|" />
<Key
latin:keyLabel="•"
- latin:popupCharacters="♪,♥,♠,♦,♣" />
+ latin:moreKeys="♪,♥,♠,♦,♣" />
<Key
latin:keyLabel="√" />
<Key
latin:keyLabel="π"
- latin:popupCharacters="Π" />
+ latin:moreKeys="Π" />
<Key
latin:keyLabel="÷" />
<Key
latin:keyLabel="×" />
<Key
latin:keyLabel="§"
- latin:popupCharacters="¶" />
+ latin:moreKeys="¶" />
<Key
latin:keyLabel="Δ" />
<Key
@@ -75,13 +75,13 @@
latin:keyLabel="¥" />
<Key
latin:keyLabel="^"
- latin:popupCharacters="↑,↓,←,→" />
+ latin:moreKeys="↑,↓,←,→" />
<Key
latin:keyLabel="°"
- latin:popupCharacters="′,″" />
+ latin:moreKeys="′,″" />
<Key
latin:keyLabel="±"
- latin:popupCharacters="∞" />
+ latin:moreKeys="∞" />
<Key
latin:keyLabel="{" />
<Key
diff --git a/java/res/xml/kbd_currency_key_styles.xml b/java/res/xml/kbd_currency_key_styles.xml
index d2c711766..d4f19b57d 100644
--- a/java/res/xml/kbd_currency_key_styles.xml
+++ b/java/res/xml/kbd_currency_key_styles.xml
@@ -62,7 +62,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="€"
- latin:popupCharacters="@string/alternates_for_currency_euro" />
+ latin:moreKeys="@string/alternates_for_currency_euro" />
</case>
<case
latin:languageCode="ca|et|lb|mt|sla"
@@ -70,7 +70,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="€"
- latin:popupCharacters="@string/alternates_for_currency_euro" />
+ latin:moreKeys="@string/alternates_for_currency_euro" />
</case>
<case
latin:countryCode="AD|AT|BE|CY|EE|FI|FR|DE|GR|IE|IT|XK|LU|MT|MO|ME|NL|PT|SM|SK|SI|ES|VA"
@@ -78,7 +78,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="€"
- latin:popupCharacters="@string/alternates_for_currency_euro" />
+ latin:moreKeys="@string/alternates_for_currency_euro" />
</case>
<case
latin:languageCode="iw"
@@ -86,7 +86,7 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="₪"
- latin:popupCharacters="@string/alternates_for_currency_general" />
+ latin:moreKeys="@string/alternates_for_currency_general" />
</case>
<!-- United Kingdom -->
<case
@@ -95,13 +95,13 @@
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="£"
- latin:popupCharacters="@string/alternates_for_currency_pound" />
+ latin:moreKeys="@string/alternates_for_currency_pound" />
</case>
<default>
<key-style
latin:styleName="currencyKeyStyle"
latin:keyLabel="$"
- latin:popupCharacters="@string/alternates_for_currency_dollar" />
+ latin:moreKeys="@string/alternates_for_currency_dollar" />
</default>
</switch>
</merge>
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index 48468987e..7bfeb656d 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -33,7 +33,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_f1"
+ latin:moreKeys="@string/alternates_for_f1"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- clobberSettingsKey="false -->
@@ -43,7 +43,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_f1_settings"
+ latin:moreKeys="@string/alternates_for_f1_settings"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- clobberSettingsKey="false" hasSettingsKey="true" -->
@@ -53,7 +53,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_f1_navigate"
+ latin:moreKeys="@string/alternates_for_f1_navigate"
latin:parentStyle="functionalKeyStyle" />
</case>
<!-- clobberSettingsKey="false" and hasSettingsKey="true" navigateAction="false" -->
@@ -61,7 +61,7 @@
<key-style
latin:styleName="f1PopupStyle"
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_f1"
+ latin:moreKeys="@string/alternates_for_f1"
latin:parentStyle="functionalKeyStyle" />
</default>
</switch>
@@ -90,8 +90,8 @@
latin:keyLabel=":-)"
latin:keyOutputText=":-) "
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_smiley"
- latin:maxPopupKeyboardColumn="5"
+ latin:moreKeys="@string/alternates_for_smiley"
+ latin:maxMoreKeysColumn="5"
latin:parentStyle="functionalKeyStyle" />
</case>
<case
@@ -220,7 +220,7 @@
latin:keyLabel="."
latin:keyHintLabel="@string/keyhintlabel_for_punctuation"
latin:keyLabelOption="hasPopupHint"
- latin:popupCharacters="@string/alternates_for_punctuation"
- latin:maxPopupKeyboardColumn="@integer/popup_keyboard_column_for_punctuation"
+ latin:moreKeys="@string/alternates_for_punctuation"
+ latin:maxMoreKeysColumn="@integer/mini_keyboard_column_for_punctuation"
latin:parentStyle="functionalKeyStyle" />
</merge>
diff --git a/java/res/xml/kbd_popup_template.xml b/java/res/xml/kbd_mini_keyboard_template.xml
index 79db081a1..d25878b48 100644
--- a/java/res/xml/kbd_popup_template.xml
+++ b/java/res/xml/kbd_mini_keyboard_template.xml
@@ -20,8 +20,6 @@
<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
latin:keyWidth="10%p"
- latin:horizontalGap="@fraction/key_horizontal_gap"
- latin:verticalGap="0px"
latin:rowHeight="@dimen/popup_key_height"
>
</Keyboard>
diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml
index daa138255..7b4948a0e 100644
--- a/java/res/xml/kbd_qwerty_row1.xml
+++ b/java/res/xml/kbd_qwerty_row1.xml
@@ -27,43 +27,43 @@
<Key
latin:keyLabel="q"
latin:keyHintLabel="1"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:keyHintLabel="2"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:keyHintLabel="6"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
- latin:popupCharacters="@string/alternates_for_p"
+ latin:moreKeys="@string/alternates_for_p"
latin:keyWidth="fillRight" />
</Row>
</merge>
diff --git a/java/res/xml/kbd_qwerty_row2.xml b/java/res/xml/kbd_qwerty_row2.xml
index 6e4872e08..1468ff7f8 100644
--- a/java/res/xml/kbd_qwerty_row2.xml
+++ b/java/res/xml/kbd_qwerty_row2.xml
@@ -26,29 +26,29 @@
>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a"
+ latin:moreKeys="@string/alternates_for_a"
latin:keyXPos="5%p" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<!-- Here is 5%p space -->
</Row>
</merge>
diff --git a/java/res/xml/kbd_qwerty_row3.xml b/java/res/xml/kbd_qwerty_row3.xml
index 6a2035543..6a2d0bba5 100644
--- a/java/res/xml/kbd_qwerty_row3.xml
+++ b/java/res/xml/kbd_qwerty_row3.xml
@@ -30,20 +30,20 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="z"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<Key
diff --git a/java/res/xml/kbd_rows_arabic.xml b/java/res/xml/kbd_rows_arabic.xml
index daa2a65ed..569ac7ef9 100644
--- a/java/res/xml/kbd_rows_arabic.xml
+++ b/java/res/xml/kbd_rows_arabic.xml
@@ -29,47 +29,47 @@
<Key
latin:keyLabel="ض"
latin:keyHintLabel="1"
- latin:popupCharacters="1,١" />
+ latin:moreKeys="1,١" />
<Key
latin:keyLabel="ص"
latin:keyHintLabel="2"
- latin:popupCharacters="2,٢" />
+ latin:moreKeys="2,٢" />
<Key
latin:keyLabel="ق"
latin:keyHintLabel="3"
- latin:popupCharacters="3,٣" />
+ latin:moreKeys="3,٣" />
<!-- \u06a4: ARABIC LETTER VEH -->
<Key
latin:keyLabel="ف"
latin:keyHintLabel="4"
- latin:popupCharacters="4,٤,\u06a4" />
+ latin:moreKeys="4,٤,\u06a4" />
<Key
latin:keyLabel="غ"
latin:keyHintLabel="5"
- latin:popupCharacters="5,٥" />
+ latin:moreKeys="5,٥" />
<Key
latin:keyLabel="ع"
latin:keyHintLabel="6"
- latin:popupCharacters="6,٦" />
+ latin:moreKeys="6,٦" />
<!-- \ufeeb: ARABIC LETTER HEH INITIAL FORM
\u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
<Key
latin:keyLabel="ه"
latin:keyHintLabel="7"
- latin:popupCharacters="7,٧,\ufeeb|\u0647\u0640" />
+ latin:moreKeys="7,٧,\ufeeb|\u0647\u0640" />
<Key
latin:keyLabel="خ"
latin:keyHintLabel="8"
- latin:popupCharacters="8,٨" />
+ latin:moreKeys="8,٨" />
<Key
latin:keyLabel="ح"
latin:keyHintLabel="9"
- latin:popupCharacters="9,٩" />
+ latin:moreKeys="9,٩" />
<!-- \u0686: ARABIC LETTER TCHEH -->
<Key
latin:keyLabel="ج"
latin:keyHintLabel="0"
- latin:popupCharacters="0,٠,\u0686"
+ latin:moreKeys="0,٠,\u0686"
latin:keyWidth="fillRight" />
</Row>
<Row
@@ -83,10 +83,10 @@
\u0649: ARABIC LETTER ALEF MAKSURA -->
<Key
latin:keyLabel="ي"
- latin:popupCharacters="\u0626,\u0649" />
+ latin:moreKeys="\u0626,\u0649" />
<Key
latin:keyLabel="ب"
- latin:popupCharacters="پ" />
+ latin:moreKeys="پ" />
<!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
\u0644: ARABIC LETTER LAM
\u0627: ARABIC LETTER ALEF
@@ -98,24 +98,24 @@
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ل"
- latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+ latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
<!-- \u0621: ARABIC LETTER HAMZA
\u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
\u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
\u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
<Key
latin:keyLabel="ا"
- latin:popupCharacters="\u0621,\u0623,\u0625,\u0622" />
+ latin:moreKeys="\u0621,\u0623,\u0625,\u0622" />
<Key
latin:keyLabel="ت"
- latin:popupCharacters="ث" />
+ latin:moreKeys="ث" />
<Key
latin:keyLabel="ن" />
<Key
latin:keyLabel="م" />
<Key
latin:keyLabel="ك"
- latin:popupCharacters="گ"
+ latin:moreKeys="گ"
latin:keyWidth="fillRight" />
</Row>
<Row
@@ -132,14 +132,14 @@
latin:keyLabel="د" />
<Key
latin:keyLabel="ز"
- latin:popupCharacters="ژ" />
+ latin:moreKeys="ژ" />
<Key
latin:keyLabel="ر" />
<Key
latin:keyLabel="ة" />
<Key
latin:keyLabel="و"
- latin:popupCharacters="ؤ" />
+ latin:moreKeys="ؤ" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_rows_azerty.xml b/java/res/xml/kbd_rows_azerty.xml
index dbf25eb95..4169b48e0 100644
--- a/java/res/xml/kbd_rows_azerty.xml
+++ b/java/res/xml/kbd_rows_azerty.xml
@@ -29,43 +29,43 @@
<Key
latin:keyLabel="a"
latin:keyHintLabel="1"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="z"
latin:keyHintLabel="2"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:keyHintLabel="6"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
- latin:popupCharacters="@string/alternates_for_p"
+ latin:moreKeys="@string/alternates_for_p"
latin:keyWidth="fillRight" />
</Row>
<Row
@@ -73,28 +73,28 @@
>
<Key
latin:keyLabel="q"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="m"
latin:keyWidth="fillRight" />
@@ -108,24 +108,24 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="w"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="\'"
- latin:popupCharacters="‘,’,‚,‛" />
+ latin:moreKeys="‘,’,‚,‛" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_rows_hebrew.xml b/java/res/xml/kbd_rows_hebrew.xml
index 1ec076860..6be8174c5 100644
--- a/java/res/xml/kbd_rows_hebrew.xml
+++ b/java/res/xml/kbd_rows_hebrew.xml
@@ -57,17 +57,17 @@
latin:keyLabel="ד" />
<Key
latin:keyLabel="ג"
- latin:popupCharacters="ג׳" />
+ latin:moreKeys="ג׳" />
<Key
latin:keyLabel="כ" />
<Key
latin:keyLabel="ע" />
<Key
latin:keyLabel="י"
- latin:popupCharacters="ײַ" />
+ latin:moreKeys="ײַ" />
<Key
latin:keyLabel="ח"
- latin:popupCharacters="ח׳" />
+ latin:moreKeys="ח׳" />
<Key
latin:keyLabel="ל" />
<Key
@@ -81,7 +81,7 @@
>
<Key
latin:keyLabel="ז"
- latin:popupCharacters="ז׳"
+ latin:moreKeys="ז׳"
latin:keyXPos="5%p" />
<Key
latin:keyLabel="ס" />
@@ -95,13 +95,13 @@
latin:keyLabel="מ" />
<Key
latin:keyLabel="צ"
- latin:popupCharacters="צ׳" />
+ latin:moreKeys="צ׳" />
<Key
latin:keyLabel="ת"
- latin:popupCharacters="ת׳" />
+ latin:moreKeys="ת׳" />
<Key
latin:keyLabel="ץ"
- latin:popupCharacters="ץ׳" />
+ latin:moreKeys="ץ׳" />
<!-- Here is 5%p space -->
</Row>
<include
diff --git a/java/res/xml/kbd_rows_qwertz.xml b/java/res/xml/kbd_rows_qwertz.xml
index f94892125..9d9cfe11f 100644
--- a/java/res/xml/kbd_rows_qwertz.xml
+++ b/java/res/xml/kbd_rows_qwertz.xml
@@ -29,43 +29,43 @@
<Key
latin:keyLabel="q"
latin:keyHintLabel="1"
- latin:popupCharacters="@string/alternates_for_q" />
+ latin:moreKeys="@string/alternates_for_q" />
<Key
latin:keyLabel="w"
latin:keyHintLabel="2"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="z"
latin:keyHintLabel="6"
- latin:popupCharacters="@string/alternates_for_z" />
+ latin:moreKeys="@string/alternates_for_z" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
- latin:popupCharacters="@string/alternates_for_p"
+ latin:moreKeys="@string/alternates_for_p"
latin:keyWidth="fillRight" />
</Row>
<include
@@ -79,20 +79,20 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="y"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="x" />
<Key
latin:keyLabel="c"
- latin:popupCharacters="@string/alternates_for_c" />
+ latin:moreKeys="@string/alternates_for_c" />
<Key
latin:keyLabel="v"
- latin:popupCharacters="@string/alternates_for_v" />
+ latin:moreKeys="@string/alternates_for_v" />
<Key
latin:keyLabel="b" />
<Key
latin:keyLabel="n"
- latin:popupCharacters="@string/alternates_for_n" />
+ latin:moreKeys="@string/alternates_for_n" />
<Key
latin:keyLabel="m" />
<Key
diff --git a/java/res/xml/kbd_rows_russian.xml b/java/res/xml/kbd_rows_russian.xml
index 0c7a23754..0b2f329f7 100644
--- a/java/res/xml/kbd_rows_russian.xml
+++ b/java/res/xml/kbd_rows_russian.xml
@@ -29,47 +29,47 @@
<Key
latin:keyLabel="й"
latin:keyHintLabel="1"
- latin:popupCharacters="1"
+ latin:moreKeys="1"
latin:keyWidth="8.75%p" />
<Key
latin:keyLabel="ц"
latin:keyHintLabel="2"
- latin:popupCharacters="2" />
+ latin:moreKeys="2" />
<Key
latin:keyLabel="у"
latin:keyHintLabel="3"
- latin:popupCharacters="3" />
+ latin:moreKeys="3" />
<Key
latin:keyLabel="к"
latin:keyHintLabel="4"
- latin:popupCharacters="4" />
+ latin:moreKeys="4" />
<Key
latin:keyLabel="е"
latin:keyHintLabel="5"
- latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+ latin:moreKeys="@string/alternates_for_cyrillic_e" />
<Key
latin:keyLabel="н"
latin:keyHintLabel="6"
- latin:popupCharacters="6" />
+ latin:moreKeys="6" />
<Key
latin:keyLabel="г"
latin:keyHintLabel="7"
- latin:popupCharacters="7" />
+ latin:moreKeys="7" />
<Key
latin:keyLabel="ш"
latin:keyHintLabel="8"
- latin:popupCharacters="8" />
+ latin:moreKeys="8" />
<Key
latin:keyLabel="щ"
latin:keyHintLabel="9"
- latin:popupCharacters="9" />
+ latin:moreKeys="9" />
<Key
latin:keyLabel="з"
latin:keyHintLabel="0"
- latin:popupCharacters="0" />
+ latin:moreKeys="0" />
<Key
latin:keyLabel="х"
- latin:popupCharacters="@string/alternates_for_cyrillic_ha"
+ latin:moreKeys="@string/alternates_for_cyrillic_ha"
latin:keyWidth="fillRight" />
</Row>
<Row
@@ -120,7 +120,7 @@
latin:keyLabel="т" />
<Key
latin:keyLabel="ь"
- latin:popupCharacters="@string/alternates_for_cyrillic_soft_sign" />
+ latin:moreKeys="@string/alternates_for_cyrillic_soft_sign" />
<Key
latin:keyLabel="б" />
<Key
diff --git a/java/res/xml/kbd_rows_scandinavian.xml b/java/res/xml/kbd_rows_scandinavian.xml
index 7e8902e0b..3a04903f9 100644
--- a/java/res/xml/kbd_rows_scandinavian.xml
+++ b/java/res/xml/kbd_rows_scandinavian.xml
@@ -29,44 +29,44 @@
<Key
latin:keyLabel="q"
latin:keyHintLabel="1"
- latin:popupCharacters="@string/alternates_for_q"
+ latin:moreKeys="@string/alternates_for_q"
latin:keyWidth="8.75%p" />
<Key
latin:keyLabel="w"
latin:keyHintLabel="2"
- latin:popupCharacters="@string/alternates_for_w" />
+ latin:moreKeys="@string/alternates_for_w" />
<Key
latin:keyLabel="e"
latin:keyHintLabel="3"
- latin:popupCharacters="@string/alternates_for_e" />
+ latin:moreKeys="@string/alternates_for_e" />
<Key
latin:keyLabel="r"
latin:keyHintLabel="4"
- latin:popupCharacters="@string/alternates_for_r" />
+ latin:moreKeys="@string/alternates_for_r" />
<Key
latin:keyLabel="t"
latin:keyHintLabel="5"
- latin:popupCharacters="@string/alternates_for_t" />
+ latin:moreKeys="@string/alternates_for_t" />
<Key
latin:keyLabel="y"
latin:keyHintLabel="6"
- latin:popupCharacters="@string/alternates_for_y" />
+ latin:moreKeys="@string/alternates_for_y" />
<Key
latin:keyLabel="u"
latin:keyHintLabel="7"
- latin:popupCharacters="@string/alternates_for_u" />
+ latin:moreKeys="@string/alternates_for_u" />
<Key
latin:keyLabel="i"
latin:keyHintLabel="8"
- latin:popupCharacters="@string/alternates_for_i" />
+ latin:moreKeys="@string/alternates_for_i" />
<Key
latin:keyLabel="o"
latin:keyHintLabel="9"
- latin:popupCharacters="@string/alternates_for_o" />
+ latin:moreKeys="@string/alternates_for_o" />
<Key
latin:keyLabel="p"
latin:keyHintLabel="0"
- latin:popupCharacters="@string/alternates_for_p" />
+ latin:moreKeys="@string/alternates_for_p" />
<Key
latin:keyLabel="å"
latin:keyWidth="fillRight" />
@@ -76,35 +76,35 @@
>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a"
+ latin:moreKeys="@string/alternates_for_a"
latin:keyWidth="8.75%p" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
- latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+ latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
<Key
latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
- latin:popupCharacters="@string/alternates_for_scandinavia_row2_11"
+ latin:moreKeys="@string/alternates_for_scandinavia_row2_11"
latin:keyWidth="fillRight" />
</Row>
<include
diff --git a/java/res/xml/kbd_rows_serbian.xml b/java/res/xml/kbd_rows_serbian.xml
index 73c807f95..c911ae807 100644
--- a/java/res/xml/kbd_rows_serbian.xml
+++ b/java/res/xml/kbd_rows_serbian.xml
@@ -29,43 +29,43 @@
<Key
latin:keyLabel="љ"
latin:keyHintLabel="1"
- latin:popupCharacters="1" />
+ latin:moreKeys="1" />
<Key
latin:keyLabel="њ"
latin:keyHintLabel="2"
- latin:popupCharacters="2" />
+ latin:moreKeys="2" />
<Key
latin:keyLabel="е"
latin:keyHintLabel="3"
- latin:popupCharacters="3" />
+ latin:moreKeys="3" />
<Key
latin:keyLabel="р"
latin:keyHintLabel="4"
- latin:popupCharacters="4" />
+ latin:moreKeys="4" />
<Key
latin:keyLabel="т"
latin:keyHintLabel="5"
- latin:popupCharacters="5" />
+ latin:moreKeys="5" />
<Key
latin:keyLabel="з"
latin:keyHintLabel="6"
- latin:popupCharacters="6" />
+ latin:moreKeys="6" />
<Key
latin:keyLabel="у"
latin:keyHintLabel="7"
- latin:popupCharacters="7" />
+ latin:moreKeys="7" />
<Key
latin:keyLabel="и"
latin:keyHintLabel="8"
- latin:popupCharacters="8" />
+ latin:moreKeys="8" />
<Key
latin:keyLabel="о"
latin:keyHintLabel="9"
- latin:popupCharacters="9" />
+ latin:moreKeys="9" />
<Key
latin:keyLabel="п"
latin:keyHintLabel="0"
- latin:popupCharacters="0" />
+ latin:moreKeys="0" />
<Key
latin:keyLabel="ш"
latin:keyWidth="fillRight" />
diff --git a/java/res/xml/kbd_rows_spanish.xml b/java/res/xml/kbd_rows_spanish.xml
index 6d007187f..b3276d14a 100644
--- a/java/res/xml/kbd_rows_spanish.xml
+++ b/java/res/xml/kbd_rows_spanish.xml
@@ -30,28 +30,28 @@
>
<Key
latin:keyLabel="a"
- latin:popupCharacters="@string/alternates_for_a" />
+ latin:moreKeys="@string/alternates_for_a" />
<Key
latin:keyLabel="s"
- latin:popupCharacters="@string/alternates_for_s" />
+ latin:moreKeys="@string/alternates_for_s" />
<Key
latin:keyLabel="d"
- latin:popupCharacters="@string/alternates_for_d" />
+ latin:moreKeys="@string/alternates_for_d" />
<Key
latin:keyLabel="f" />
<Key
latin:keyLabel="g"
- latin:popupCharacters="@string/alternates_for_g" />
+ latin:moreKeys="@string/alternates_for_g" />
<Key
latin:keyLabel="h" />
<Key
latin:keyLabel="j" />
<Key
latin:keyLabel="k"
- latin:popupCharacters="@string/alternates_for_k" />
+ latin:moreKeys="@string/alternates_for_k" />
<Key
latin:keyLabel="l"
- latin:popupCharacters="@string/alternates_for_l" />
+ latin:moreKeys="@string/alternates_for_l" />
<Key
latin:keyLabel="ñ" />
</Row>
diff --git a/java/res/xml/kbd_rows_symbols.xml b/java/res/xml/kbd_rows_symbols.xml
index 75e21a002..ff3b473dc 100644
--- a/java/res/xml/kbd_rows_symbols.xml
+++ b/java/res/xml/kbd_rows_symbols.xml
@@ -30,34 +30,34 @@
>
<Key
latin:keyLabel="@string/keylabel_for_symbols_1"
- latin:popupCharacters="@string/alternates_for_symbols_1" />
+ latin:moreKeys="@string/alternates_for_symbols_1" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_2"
- latin:popupCharacters="@string/alternates_for_symbols_2" />
+ latin:moreKeys="@string/alternates_for_symbols_2" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_3"
- latin:popupCharacters="@string/alternates_for_symbols_3" />
+ latin:moreKeys="@string/alternates_for_symbols_3" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_4"
- latin:popupCharacters="@string/alternates_for_symbols_4" />
+ latin:moreKeys="@string/alternates_for_symbols_4" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_5"
- latin:popupCharacters="@string/alternates_for_symbols_5" />
+ latin:moreKeys="@string/alternates_for_symbols_5" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_6"
- latin:popupCharacters="@string/alternates_for_symbols_6" />
+ latin:moreKeys="@string/alternates_for_symbols_6" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_7"
- latin:popupCharacters="@string/alternates_for_symbols_7" />
+ latin:moreKeys="@string/alternates_for_symbols_7" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_8"
- latin:popupCharacters="@string/alternates_for_symbols_8" />
+ latin:moreKeys="@string/alternates_for_symbols_8" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_9"
- latin:popupCharacters="@string/alternates_for_symbols_9" />
+ latin:moreKeys="@string/alternates_for_symbols_9" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_0"
- latin:popupCharacters="@string/alternates_for_symbols_0"
+ latin:moreKeys="@string/alternates_for_symbols_0"
latin:keyWidth="fillRight" />
</Row>
<Row
@@ -71,24 +71,24 @@
latin:keyStyle="currencyKeyStyle" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_percent"
- latin:popupCharacters="@string/alternates_for_symbols_percent" />
+ latin:moreKeys="@string/alternates_for_symbols_percent" />
<Key
latin:keyLabel="&amp;" />
<Key
latin:keyLabel="*"
- latin:popupCharacters="†,‡,★" />
+ latin:moreKeys="†,‡,★" />
<Key
latin:keyLabel="-"
- latin:popupCharacters="_,–,—" />
+ latin:moreKeys="_,–,—" />
<Key
latin:keyLabel="+"
- latin:popupCharacters="±" />
+ latin:moreKeys="±" />
<Key
latin:keyLabel="("
- latin:popupCharacters="[,{,&lt;" />
+ latin:moreKeys="[,{,&lt;" />
<Key
latin:keyLabel=")"
- latin:popupCharacters="],},&gt;"
+ latin:moreKeys="],},&gt;"
latin:keyWidth="fillRight" />
</Row>
<Row
@@ -100,26 +100,26 @@
latin:visualInsetsRight="1%p" />
<Key
latin:keyLabel="!"
- latin:popupCharacters="¡" />
+ latin:moreKeys="¡" />
<!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
- <!-- latin:popupCharacters="“,”,„,‟,«,»" -->
+ <!-- latin:moreKeys="“,”,„,‟,«,»" -->
<Key
latin:keyLabel="&quot;"
- latin:popupCharacters="“,”,«,»"
- latin:maxPopupKeyboardColumn="6" />
+ latin:moreKeys="“,”,«,»"
+ latin:maxMoreKeysColumn="6" />
<Key
latin:keyLabel="\'"
- latin:popupCharacters="‘,’,‚,‛" />
+ latin:moreKeys="‘,’,‚,‛" />
<Key
latin:keyLabel=":" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_semicolon"
- latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+ latin:moreKeys="@string/alternates_for_symbols_semicolon" />
<Key
latin:keyLabel="/" />
<Key
latin:keyLabel="@string/keylabel_for_symbols_question"
- latin:popupCharacters="@string/alternates_for_symbols_question" />
+ latin:moreKeys="@string/alternates_for_symbols_question" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_rows_symbols_shift.xml b/java/res/xml/kbd_rows_symbols_shift.xml
index ff272f1b0..66c14fea3 100644
--- a/java/res/xml/kbd_rows_symbols_shift.xml
+++ b/java/res/xml/kbd_rows_symbols_shift.xml
@@ -34,12 +34,12 @@
latin:keyLabel="|" />
<Key
latin:keyLabel="•"
- latin:popupCharacters="♪,♥,♠,♦,♣" />
+ latin:moreKeys="♪,♥,♠,♦,♣" />
<Key
latin:keyLabel="√" />
<Key
latin:keyLabel="π"
- latin:popupCharacters="Π" />
+ latin:moreKeys="Π" />
<Key
latin:keyLabel="÷" />
<Key
@@ -63,15 +63,15 @@
latin:keyLabel="€" />
<Key
latin:keyLabel="°"
- latin:popupCharacters="′,″" />
+ latin:moreKeys="′,″" />
<Key
latin:keyLabel="^"
- latin:popupCharacters="↑,↓,←,→" />
+ latin:moreKeys="↑,↓,←,→" />
<Key
latin:keyLabel="_" />
<Key
latin:keyLabel="="
- latin:popupCharacters="≠,≈,∞" />
+ latin:moreKeys="≠,≈,∞" />
<Key
latin:keyLabel="[" />
<Key
@@ -93,15 +93,15 @@
latin:keyLabel="©" />
<Key
latin:keyLabel="¶"
- latin:popupCharacters="§" />
+ latin:moreKeys="§" />
<Key
latin:keyLabel="\\" />
<Key
latin:keyLabel="&lt;"
- latin:popupCharacters="≤,«,‹" />
+ latin:moreKeys="≤,«,‹" />
<Key
latin:keyLabel="&gt;"
- latin:popupCharacters="≥,»,›" />
+ latin:moreKeys="≥,»,›" />
<Key
latin:keyStyle="deleteKeyStyle"
latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_suggestions_pane_template.xml b/java/res/xml/kbd_suggestions_pane_template.xml
new file mode 100644
index 000000000..21316e6bb
--- /dev/null
+++ b/java/res/xml/kbd_suggestions_pane_template.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyWidth="10%p"
+ latin:rowHeight="@dimen/more_suggestions_row_height"
+ >
+</Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift_row4.xml b/java/res/xml/kbd_symbols_shift_row4.xml
index bcab19b06..c8d52932c 100644
--- a/java/res/xml/kbd_symbols_shift_row4.xml
+++ b/java/res/xml/kbd_symbols_shift_row4.xml
@@ -34,7 +34,7 @@
latin:keyWidth="15%p" />
<Key
latin:keyLabel="„"
- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛"
+ latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛"
latin:keyStyle="functionalKeyStyle" />
<Key
latin:keyStyle="spaceKeyStyle"
@@ -55,7 +55,7 @@
latin:keyboardLayout="@xml/kbd_settings_or_tab" />
<Key
latin:keyLabel="„"
- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛"
+ latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛"
latin:keyWidth="9.2%p"
latin:keyStyle="functionalKeyStyle" />
<Key
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 6d2218d2f..2f321814e 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -91,23 +91,6 @@
android:defaultValue="@string/prefs_suggestion_visibility_default_value" />
</PreferenceCategory>
<PreferenceCategory
- android:title="@string/ngram_category"
- android:key="ngram_settings">
- <CheckBoxPreference
- android:key="bigram_suggestion"
- android:title="@string/bigram_suggestion"
- android:summary="@string/bigram_suggestion_summary"
- android:persistent="true"
- android:defaultValue="true" />
- <CheckBoxPreference
- android:key="bigram_prediction"
- android:dependency="bigram_suggestion"
- android:title="@string/bigram_prediction"
- android:summary="@string/bigram_prediction_summary"
- android:persistent="true"
- android:defaultValue="false" />
- </PreferenceCategory>
- <PreferenceCategory
android:title="@string/misc_category"
android:key="misc_settings">
<CheckBoxPreference
@@ -143,6 +126,20 @@
android:summary="@string/use_contacts_dict_summary"
android:persistent="true"
android:defaultValue="true" />
+ <CheckBoxPreference
+ android:key="bigram_suggestion"
+ android:title="@string/bigram_suggestion"
+ android:summary="@string/bigram_suggestion_summary"
+ android:persistent="true"
+ android:defaultValue="true" />
+ <!-- TODO: evaluate results and revive this option. The code already supports it. -->
+ <!-- <CheckBoxPreference -->
+ <!-- android:key="bigram_prediction" -->
+ <!-- android:dependency="bigram_suggestion" -->
+ <!-- android:title="@string/bigram_prediction" -->
+ <!-- android:summary="@string/bigram_prediction_summary" -->
+ <!-- android:persistent="true" -->
+ <!-- android:defaultValue="false" /> -->
</PreferenceScreen>
<!-- <Preference
android:title="Debug Settings"
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index c3db1b318..b919bcfc4 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -30,7 +30,7 @@ import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
import com.android.inputmethod.keyboard.internal.KeyboardBuilder.ParseException;
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
+import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
import com.android.inputmethod.keyboard.internal.Row;
import com.android.inputmethod.latin.R;
@@ -90,10 +90,10 @@ public class Key {
public final int mY;
/** Text to output when pressed. This can be multiple characters, like ".com" */
public final CharSequence mOutputText;
- /** Popup characters */
- public final CharSequence[] mPopupCharacters;
- /** Popup keyboard maximum column number */
- public final int mMaxPopupColumn;
+ /** More keys */
+ public final CharSequence[] mMoreKeys;
+ /** More keys maximum column number */
+ public final int mMaxMoreKeysColumn;
/**
* Flags that specify the anchoring to edges of the keyboard for detecting touch events
@@ -192,21 +192,30 @@ public class Key {
}
}
+ private static int getCode(Resources res, KeyboardParams params, String moreKeySpec) {
+ return getRtlParenthesisCode(
+ MoreKeySpecParser.getCode(res, moreKeySpec), params.mIsRtlKeyboard);
+ }
+
+ private static Drawable getIcon(KeyboardParams params, String moreKeySpec) {
+ return params.mIconsSet.getIcon(MoreKeySpecParser.getIconId(moreKeySpec));
+ }
+
/**
- * This constructor is being used only for key in popup mini keyboard.
+ * This constructor is being used only for key in more keys keyboard.
*/
- public Key(Resources res, KeyboardParams params, String popupSpec,
+ public Key(Resources res, KeyboardParams params, String moreKeySpec,
int x, int y, int width, int height, int edgeFlags) {
- this(params, getRtlParenthesisCode(PopupCharactersParser.getCode(res, popupSpec),
- params.mIsRtlKeyboard),
- popupSpec, null, x, y, width, height, edgeFlags);
+ this(params, MoreKeySpecParser.getLabel(moreKeySpec), null, getIcon(params, moreKeySpec),
+ getCode(res, params, moreKeySpec), MoreKeySpecParser.getOutputText(moreKeySpec),
+ x, y, width, height, edgeFlags);
}
/**
* This constructor is being used only for key in popup suggestions pane.
*/
- public Key(KeyboardParams params, int code, String popupSpec, String hintLabel,
- int x, int y, int width, int height, int edgeFlags) {
+ public Key(KeyboardParams params, CharSequence label, CharSequence hintLabel, Drawable icon,
+ int code, CharSequence outputText, int x, int y, int width, int height, int edgeFlags) {
mHeight = height - params.mVerticalGap;
mHorizontalGap = params.mHorizontalGap;
mVerticalGap = params.mVerticalGap;
@@ -218,12 +227,12 @@ public class Key {
mFunctional = false;
mSticky = false;
mRepeatable = false;
- mPopupCharacters = null;
- mMaxPopupColumn = 0;
- mLabel = PopupCharactersParser.getLabel(popupSpec);
- mOutputText = PopupCharactersParser.getOutputText(popupSpec);
+ mMoreKeys = null;
+ mMaxMoreKeysColumn = 0;
+ mLabel = label;
+ mOutputText = outputText;
mCode = code;
- mIcon = params.mIconsSet.getIcon(PopupCharactersParser.getIconId(popupSpec));
+ mIcon = icon;
// Horizontal gap is divided equally to both sides of the key.
mX = x + mHorizontalGap / 2;
mY = y;
@@ -303,20 +312,20 @@ public class Key {
mY = y;
mWidth = keyWidth - mHorizontalGap;
- final CharSequence[] popupCharacters = style.getTextArray(
- keyAttr, R.styleable.Keyboard_Key_popupCharacters);
- // In Arabic symbol layouts, we'd like to keep digits in popup characters regardless of
- // config_digit_popup_characters_enabled.
+ final CharSequence[] moreKeys = style.getTextArray(
+ keyAttr, R.styleable.Keyboard_Key_moreKeys);
+ // In Arabic symbol layouts, we'd like to keep digits in more keys regardless of
+ // config_digit_more_keys_enabled.
if (params.mId.isAlphabetKeyboard() && !res.getBoolean(
- R.bool.config_digit_popup_characters_enabled)) {
- mPopupCharacters = PopupCharactersParser.filterOut(
- res, popupCharacters, PopupCharactersParser.DIGIT_FILTER);
+ R.bool.config_digit_more_keys_enabled)) {
+ mMoreKeys = MoreKeySpecParser.filterOut(
+ res, moreKeys, MoreKeySpecParser.DIGIT_FILTER);
} else {
- mPopupCharacters = popupCharacters;
+ mMoreKeys = moreKeys;
}
- mMaxPopupColumn = style.getInt(keyboardAttr,
- R.styleable.Keyboard_Key_maxPopupKeyboardColumn,
- params.mMaxPopupColumn);
+ mMaxMoreKeysColumn = style.getInt(keyboardAttr,
+ R.styleable.Keyboard_Key_maxMoreKeysColumn,
+ params.mMaxMiniKeyboardColumn);
mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);
mFunctional = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional, false);
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index f8e08b06a..3a8a1d4b8 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -101,11 +101,11 @@ public class Keyboard {
public final int mMostCommonKeyWidth;
- /** Popup keyboard template */
- public final int mPopupKeyboardResId;
+ /** More keys keyboard template */
+ public final int mMoreKeysTemplate;
- /** Maximum column for popup keyboard */
- public final int mMaxPopupColumn;
+ /** Maximum column for mini keyboard */
+ public final int mMaxMiniKeyboardColumn;
/** True if Right-To-Left keyboard */
public final boolean mIsRtlKeyboard;
@@ -130,8 +130,8 @@ public class Keyboard {
mWidth = params.mWidth;
mMostCommonKeyWidth = params.mMostCommonKeyWidth;
mIsRtlKeyboard = params.mIsRtlKeyboard;
- mPopupKeyboardResId = params.mPopupKeyboardResId;
- mMaxPopupColumn = params.mMaxPopupColumn;
+ mMoreKeysTemplate = params.mMoreKeysTemplate;
+ mMaxMiniKeyboardColumn = params.mMaxMiniKeyboardColumn;
mDefaultRowHeight = params.mDefaultRowHeight;
mVerticalGap = params.mVerticalGap;
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 5f824537e..ceadc919c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -77,7 +77,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// Miscellaneous constants
private static final int[] LONG_PRESSABLE_STATE_SET = { android.R.attr.state_long_pressable };
- // XML attribute
+ // XML attributes
+ protected final float mVerticalCorrection;
+ protected final int mMoreKeysLayout;
private final float mBackgroundDimAmount;
// HORIZONTAL ELLIPSIS "...", character for popup hint.
@@ -122,9 +124,6 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
new HashMap<Integer, Float>();
private static final String KEY_LABEL_REFERENCE_CHAR = "M";
- private static final int MEASURESPEC_UNSPECIFIED = MeasureSpec.makeMeasureSpec(
- 0, MeasureSpec.UNSPECIFIED);
-
private final DrawingHandler mDrawingHandler = new DrawingHandler(this);
public static class DrawingHandler extends StaticInnerHandlerWrapper<KeyboardView> {
@@ -342,6 +341,9 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
if (mKeyPreviewLayoutId == 0) {
mShowKeyPreviewPopup = false;
}
+ mVerticalCorrection = a.getDimensionPixelOffset(
+ R.styleable.KeyboardView_verticalCorrection, 0);
+ mMoreKeysLayout = a.getResourceId(R.styleable.KeyboardView_moreKeysLayout, 0);
mBackgroundDimAmount = a.getFloat(R.styleable.KeyboardView_backgroundDimAmount, 0.5f);
a.recycle();
@@ -677,7 +679,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
// Draw popup hint "..." at the bottom right corner of the key.
- if ((key.hasPopupHint() && key.mPopupCharacters != null && key.mPopupCharacters.length > 0)
+ if ((key.hasPopupHint() && key.mMoreKeys != null && key.mMoreKeys.length > 0)
|| key.needsSpecialPopupHint()) {
paint.setTextSize(params.mKeyHintLetterSize);
paint.setColor(params.mKeyHintLabelColor);
@@ -859,7 +861,8 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
previewText.setBackgroundDrawable(params.mPreviewBackground);
- previewText.measure(MEASURESPEC_UNSPECIFIED, MEASURESPEC_UNSPECIFIED);
+ previewText.measure(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final int previewWidth = Math.max(previewText.getMeasuredWidth(), keyDrawWidth
+ previewText.getPaddingLeft() + previewText.getPaddingRight());
final int previewHeight = params.mPreviewHeight;
@@ -877,7 +880,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
// Set the preview background state
previewText.getBackground().setState(
- key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
+ key.mMoreKeys != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
previewText.setTextColor(params.mPreviewTextColor);
FrameLayoutCompatUtils.placeViewAt(
previewText, previewX, previewY, previewWidth, previewHeight);
@@ -925,7 +928,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
}
@Override
- public boolean dismissPopupPanel() {
+ public boolean dismissMoreKeysPanel() {
return false;
}
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 69cbcb154..777bae3b0 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -19,7 +19,6 @@ package com.android.inputmethod.keyboard;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
-import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.os.Message;
import android.os.SystemClock;
@@ -30,6 +29,7 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
+import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.widget.PopupWindow;
@@ -63,16 +63,12 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
// Timing constants
private final int mKeyRepeatInterval;
- // XML attribute
- private final float mVerticalCorrection;
- private final int mPopupLayout;
-
// Mini keyboard
- private PopupWindow mPopupWindow;
- private PopupPanel mPopupPanel;
- private int mPopupPanelPointerTrackerId;
- private final WeakHashMap<Key, PopupPanel> mPopupPanelCache =
- new WeakHashMap<Key, PopupPanel>();
+ private PopupWindow mMoreKeysWindow;
+ private MoreKeysPanel mMoreKeysPanel;
+ private int mMoreKeysPanelPointerTrackerId;
+ private final WeakHashMap<Key, MoreKeysPanel> mMoreKeysPanelCache =
+ new WeakHashMap<Key, MoreKeysPanel>();
/** Listener for {@link KeyboardActionListener}. */
private KeyboardActionListener mKeyboardActionListener;
@@ -218,13 +214,6 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
mTouchScreenRegulator = new SuddenJumpingTouchEventHandler(getContext(), this);
- final TypedArray a = context.obtainStyledAttributes(
- attrs, R.styleable.KeyboardView, defStyle, R.style.KeyboardView);
- mVerticalCorrection = a.getDimensionPixelOffset(
- R.styleable.KeyboardView_verticalCorrection, 0);
- mPopupLayout = a.getResourceId(R.styleable.KeyboardView_popupLayout, 0);
- a.recycle();
-
final Resources res = getResources();
mConfigShowMiniKeyboardAtTouchedPoint = res.getBoolean(
R.bool.config_show_mini_keyboard_at_touched_point);
@@ -308,7 +297,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
mKeyDetector.setProximityThreshold(keyboard.mMostCommonKeyWidth);
PointerTracker.setKeyDetector(mKeyDetector);
mTouchScreenRegulator.setKeyboard(keyboard);
- mPopupPanelCache.clear();
+ mMoreKeysPanelCache.clear();
}
/**
@@ -344,12 +333,12 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
private boolean openMiniKeyboardIfRequired(int keyIndex, PointerTracker tracker) {
// Check if we have a popup layout specified first.
- if (mPopupLayout == 0) {
+ if (mMoreKeysLayout == 0) {
return false;
}
// Check if we are already displaying popup panel.
- if (mPopupPanel != null)
+ if (mMoreKeysPanel != null)
return false;
final Key parentKey = tracker.getKey(keyIndex);
if (parentKey == null)
@@ -364,31 +353,29 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
mKeyboardActionListener.onCodeInput(Keyboard.CODE_CAPSLOCK, null, 0, 0);
}
- // This default implementation returns a popup mini keyboard panel.
- protected PopupPanel onCreatePopupPanel(Key parentKey) {
- if (parentKey.mPopupCharacters == null)
+ // This default implementation returns a more keys panel.
+ protected MoreKeysPanel onCreateMoreKeysPanel(Key parentKey) {
+ if (parentKey.mMoreKeys == null)
return null;
- final View container = LayoutInflater.from(getContext()).inflate(mPopupLayout, null);
+ final View container = LayoutInflater.from(getContext()).inflate(mMoreKeysLayout, null);
if (container == null)
throw new NullPointerException();
- final PopupMiniKeyboardView miniKeyboardView =
- (PopupMiniKeyboardView)container.findViewById(R.id.mini_keyboard_view);
+ final MiniKeyboardView miniKeyboardView =
+ (MiniKeyboardView)container.findViewById(R.id.mini_keyboard_view);
final Keyboard parentKeyboard = getKeyboard();
final Keyboard miniKeyboard = new MiniKeyboard.Builder(
- this, parentKeyboard.mPopupKeyboardResId, parentKey, parentKeyboard).build();
+ this, parentKeyboard.mMoreKeysTemplate, parentKey, parentKeyboard).build();
miniKeyboardView.setKeyboard(miniKeyboard);
-
- container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ container.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
return miniKeyboardView;
}
@Override
protected boolean needsToDimKeyboard() {
- return mPopupPanel != null;
+ return mMoreKeysPanel != null;
}
public void setSpacebarTextFadeFactor(float fadeFactor, LatinKeyboard oldKeyboard) {
@@ -430,10 +417,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
tracker.onLongPressed();
return true;
} else {
- return openPopupPanel(parentKey, tracker);
+ return openMoreKeysPanel(parentKey, tracker);
}
} else {
- return openPopupPanel(parentKey, tracker);
+ return openMoreKeysPanel(parentKey, tracker);
}
}
@@ -444,34 +431,35 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
return true;
}
- private boolean openPopupPanel(Key parentKey, PointerTracker tracker) {
- PopupPanel popupPanel = mPopupPanelCache.get(parentKey);
- if (popupPanel == null) {
- popupPanel = onCreatePopupPanel(parentKey);
- if (popupPanel == null)
+ private boolean openMoreKeysPanel(Key parentKey, PointerTracker tracker) {
+ MoreKeysPanel moreKeysPanel = mMoreKeysPanelCache.get(parentKey);
+ if (moreKeysPanel == null) {
+ moreKeysPanel = onCreateMoreKeysPanel(parentKey);
+ if (moreKeysPanel == null)
return false;
- mPopupPanelCache.put(parentKey, popupPanel);
+ mMoreKeysPanelCache.put(parentKey, moreKeysPanel);
}
- if (mPopupWindow == null) {
- mPopupWindow = new PopupWindow(getContext());
- mPopupWindow.setBackgroundDrawable(null);
- mPopupWindow.setAnimationStyle(R.style.PopupMiniKeyboardAnimation);
+ if (mMoreKeysWindow == null) {
+ mMoreKeysWindow = new PopupWindow(getContext());
+ mMoreKeysWindow.setBackgroundDrawable(null);
+ mMoreKeysWindow.setAnimationStyle(R.style.MiniKeyboardAnimation);
// Allow popup window to be drawn off the screen.
- mPopupWindow.setClippingEnabled(false);
+ mMoreKeysWindow.setClippingEnabled(false);
}
- mPopupPanel = popupPanel;
- mPopupPanelPointerTrackerId = tracker.mPointerId;
+ mMoreKeysPanel = moreKeysPanel;
+ mMoreKeysPanelPointerTrackerId = tracker.mPointerId;
final Keyboard keyboard = getKeyboard();
- popupPanel.setShifted(keyboard.isShiftedOrShiftLocked());
+ moreKeysPanel.setShifted(keyboard.isShiftedOrShiftLocked());
final int pointX = (mConfigShowMiniKeyboardAtTouchedPoint) ? tracker.getLastX()
: parentKey.mX + parentKey.mWidth / 2;
final int pointY = parentKey.mY - keyboard.mVerticalGap;
- popupPanel.showPopupPanel(
- this, this, pointX, pointY, mPopupWindow, getKeyboardActionListener());
- final int translatedX = popupPanel.translateX(tracker.getLastX());
- final int translatedY = popupPanel.translateY(tracker.getLastY());
- tracker.onShowPopupPanel(translatedX, translatedY, SystemClock.uptimeMillis(), popupPanel);
+ moreKeysPanel.showMoreKeysPanel(
+ this, this, pointX, pointY, mMoreKeysWindow, getKeyboardActionListener());
+ final int translatedX = moreKeysPanel.translateX(tracker.getLastX());
+ final int translatedY = moreKeysPanel.translateY(tracker.getLastY());
+ tracker.onShowMoreKeysPanel(
+ translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);
invalidateAllKeys();
return true;
@@ -482,7 +470,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
public boolean isInSlidingKeyInput() {
- if (mPopupPanel != null) {
+ if (mMoreKeysPanel != null) {
return true;
} else {
return PointerTracker.isAnyInSlidingKeyInput();
@@ -517,7 +505,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
// Gesture detector must be enabled only when mini-keyboard is not on the screen.
- if (mPopupPanel == null && mGestureDetector != null
+ if (mMoreKeysPanel == null && mGestureDetector != null
&& mGestureDetector.onTouchEvent(me)) {
PointerTracker.dismissAllKeyPreviews();
mKeyTimerHandler.cancelKeyTimers();
@@ -528,9 +516,9 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
final int index = me.getActionIndex();
final int id = me.getPointerId(index);
final int x, y;
- if (mPopupPanel != null && id == mPopupPanelPointerTrackerId) {
- x = mPopupPanel.translateX((int)me.getX(index));
- y = mPopupPanel.translateY((int)me.getY(index));
+ if (mMoreKeysPanel != null && id == mMoreKeysPanelPointerTrackerId) {
+ x = mMoreKeysPanel.translateX((int)me.getX(index));
+ y = mMoreKeysPanel.translateY((int)me.getY(index));
} else {
x = (int)me.getX(index);
y = (int)me.getY(index);
@@ -582,9 +570,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
for (int i = 0; i < pointerCount; i++) {
final PointerTracker tracker = getPointerTracker(me.getPointerId(i));
final int px, py;
- if (mPopupPanel != null && tracker.mPointerId == mPopupPanelPointerTrackerId) {
- px = mPopupPanel.translateX((int)me.getX(i));
- py = mPopupPanel.translateY((int)me.getY(i));
+ if (mMoreKeysPanel != null
+ && tracker.mPointerId == mMoreKeysPanelPointerTrackerId) {
+ px = mMoreKeysPanel.translateX((int)me.getX(i));
+ py = mMoreKeysPanel.translateY((int)me.getY(i));
} else {
px = (int)me.getX(i);
py = (int)me.getY(i);
@@ -621,16 +610,16 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
@Override
public void closing() {
super.closing();
- dismissPopupPanel();
- mPopupPanelCache.clear();
+ dismissMoreKeysPanel();
+ mMoreKeysPanelCache.clear();
}
@Override
- public boolean dismissPopupPanel() {
- if (mPopupWindow != null && mPopupWindow.isShowing()) {
- mPopupWindow.dismiss();
- mPopupPanel = null;
- mPopupPanelPointerTrackerId = -1;
+ public boolean dismissMoreKeysPanel() {
+ if (mMoreKeysWindow != null && mMoreKeysWindow.isShowing()) {
+ mMoreKeysWindow.dismiss();
+ mMoreKeysPanel = null;
+ mMoreKeysPanelPointerTrackerId = -1;
invalidateAllKeys();
return true;
}
@@ -638,7 +627,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
}
public boolean handleBack() {
- return dismissPopupPanel();
+ return dismissMoreKeysPanel();
}
@Override
diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
index ff4e72853..da91b62d9 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
@@ -20,7 +20,7 @@ import android.graphics.Paint;
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
+import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
import com.android.inputmethod.latin.R;
public class MiniKeyboard extends Keyboard {
@@ -36,7 +36,7 @@ public class MiniKeyboard extends Keyboard {
}
public static class Builder extends KeyboardBuilder<Builder.MiniKeyboardParams> {
- private final CharSequence[] mPopupCharacters;
+ private final CharSequence[] mMoreKeys;
public static class MiniKeyboardParams extends KeyboardParams {
/* package */int mTopRowAdjustment;
@@ -224,22 +224,22 @@ public class MiniKeyboard extends Keyboard {
// mParams.mVerticalGap = parentKeyboard.mVerticalGap;
mParams.mIsRtlKeyboard = parentKeyboard.mIsRtlKeyboard;
- mPopupCharacters = parentKey.mPopupCharacters;
+ mMoreKeys = parentKey.mMoreKeys;
- final int keyWidth = getMaxKeyWidth(view, mPopupCharacters, mParams.mDefaultKeyWidth);
- mParams.setParameters(mPopupCharacters.length, parentKey.mMaxPopupColumn, keyWidth,
- parentKeyboard.mDefaultRowHeight, parentKey.mX
+ final int keyWidth = getMaxKeyWidth(view, mMoreKeys, mParams.mDefaultKeyWidth);
+ mParams.setParameters(mMoreKeys.length, parentKey.mMaxMoreKeysColumn,
+ keyWidth, parentKeyboard.mDefaultRowHeight, parentKey.mX
+ (mParams.mDefaultKeyWidth - keyWidth) / 2, view.getMeasuredWidth());
}
- private static int getMaxKeyWidth(KeyboardView view, CharSequence[] popupCharacters,
+ private static int getMaxKeyWidth(KeyboardView view, CharSequence[] moreKeys,
int minKeyWidth) {
final int padding = (int) view.getContext().getResources()
.getDimension(R.dimen.mini_keyboard_key_horizontal_padding);
Paint paint = null;
int maxWidth = minKeyWidth;
- for (CharSequence popupSpec : popupCharacters) {
- final CharSequence label = PopupCharactersParser.getLabel(popupSpec.toString());
+ for (CharSequence moreKeySpec : moreKeys) {
+ final CharSequence label = MoreKeySpecParser.getLabel(moreKeySpec.toString());
// If the label is single letter, minKeyWidth is enough to hold
// the label.
if (label != null && label.length() > 1) {
@@ -259,10 +259,10 @@ public class MiniKeyboard extends Keyboard {
@Override
public MiniKeyboard build() {
final MiniKeyboardParams params = mParams;
- for (int n = 0; n < mPopupCharacters.length; n++) {
- final CharSequence label = mPopupCharacters[n];
+ for (int n = 0; n < mMoreKeys.length; n++) {
+ final String moreKeySpec = mMoreKeys[n].toString();
final int row = n / params.mNumColumns;
- final Key key = new Key(mResources, params, label.toString(), params.getX(n, row),
+ final Key key = new Key(mResources, params, moreKeySpec, params.getX(n, row),
params.getY(row), params.mDefaultKeyWidth, params.mDefaultRowHeight,
params.getRowFlags(row));
params.onAddKey(key);
diff --git a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
index 7ace46cac..f331662d7 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
@@ -18,7 +18,6 @@ package com.android.inputmethod.keyboard;
import android.content.Context;
import android.content.res.Resources;
-import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
@@ -34,11 +33,10 @@ import java.util.List;
* A view that renders a virtual {@link MiniKeyboard}. It handles rendering of keys and detecting
* key presses and touch movements.
*/
-public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
+public class MiniKeyboardView extends KeyboardView implements MoreKeysPanel {
private final int[] mCoordinates = new int[2];
private final KeyDetector mKeyDetector;
- private final int mVerticalCorrection;
private Controller mController;
private KeyboardActionListener mListener;
@@ -90,16 +88,7 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
}
}
- private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy() {
- @Override
- public void startKeyRepeatTimer(long delay, int keyIndex, PointerTracker tracker) {}
- @Override
- public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker) {}
- @Override
- public void cancelLongPressTimer() {}
- @Override
- public void cancelKeyTimers() {}
- };
+ private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter();
private final KeyboardActionListener mMiniKeyboardListener =
new KeyboardActionListener.Adapter() {
@@ -128,19 +117,13 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
}
};
- public PopupMiniKeyboardView(Context context, AttributeSet attrs) {
- this(context, attrs, R.attr.popupMiniKeyboardViewStyle);
+ public MiniKeyboardView(Context context, AttributeSet attrs) {
+ this(context, attrs, R.attr.miniKeyboardViewStyle);
}
- public PopupMiniKeyboardView(Context context, AttributeSet attrs, int defStyle) {
+ public MiniKeyboardView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
- final TypedArray a = context.obtainStyledAttributes(
- attrs, R.styleable.KeyboardView, defStyle, R.style.KeyboardView);
- mVerticalCorrection = a.getDimensionPixelOffset(
- R.styleable.KeyboardView_verticalCorrection, 0);
- a.recycle();
-
final Resources res = context.getResources();
// Override default ProximityKeyDetector.
mKeyDetector = new MiniKeyboardKeyDetector(res.getDimension(
@@ -204,7 +187,7 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
}
@Override
- public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
+ public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
PopupWindow window, KeyboardActionListener listener) {
mController = controller;
mListener = listener;
@@ -240,8 +223,8 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel {
}
@Override
- public boolean dismissPopupPanel() {
- return mController.dismissPopupPanel();
+ public boolean dismissMoreKeysPanel() {
+ return mController.dismissMoreKeysPanel();
}
@Override
diff --git a/java/src/com/android/inputmethod/keyboard/PopupPanel.java b/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
index 5e51fd54a..6314a99db 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupPanel.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
@@ -19,36 +19,41 @@ package com.android.inputmethod.keyboard;
import android.view.View;
import android.widget.PopupWindow;
-public interface PopupPanel extends PointerTracker.KeyEventHandler {
+public interface MoreKeysPanel extends PointerTracker.KeyEventHandler {
public interface Controller {
- public boolean dismissPopupPanel();
+ public boolean dismissMoreKeysPanel();
}
public void setShifted(boolean shifted);
/**
- * Show popup panel.
- * @param parentView the parent view of this popup panel
- * @param controller the controller that can dismiss this popup panel
- * @param pointX x coordinate of this popup panel
- * @param pointY y coordinate of this popup panel
- * @param window PopupWindow to be used to show this popup panel
- * @param listener the listener that will receive keyboard action from this popup panel.
+ * Show more keys panel.
+ *
+ * @param parentView the parent view of this more keys panel
+ * @param controller the controller that can dismiss this more keys panel
+ * @param pointX x coordinate of this more keys panel
+ * @param pointY y coordinate of this more keys panel
+ * @param window PopupWindow to be used to show this more keys panel
+ * @param listener the listener that will receive keyboard action from this more keys panel.
*/
- public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
+ public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
PopupWindow window, KeyboardActionListener listener);
/**
- * Translate X-coordinate of touch event to the local X-coordinate of this PopupPanel.
+ * Translate X-coordinate of touch event to the local X-coordinate of this
+ * {@link MoreKeysPanel}.
+ *
* @param x the global X-coordinate
- * @return the local X-coordinate to this PopupPanel
+ * @return the local X-coordinate to this {@link MoreKeysPanel}
*/
public int translateX(int x);
/**
- * Translate Y-coordinate of touch event to the local Y-coordinate of this PopupPanel.
+ * Translate Y-coordinate of touch event to the local Y-coordinate of this
+ * {@link MoreKeysPanel}.
+ *
* @param y the global Y-coordinate
- * @return the local Y-coordinate to this PopupPanel
+ * @return the local Y-coordinate to this {@link MoreKeysPanel}
*/
public int translateY(int y);
}
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 7ae62200d..0314867b3 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -63,7 +63,7 @@ public class PointerTracker {
public TimerProxy getTimerProxy();
}
- public interface DrawingProxy extends PopupPanel.Controller {
+ public interface DrawingProxy extends MoreKeysPanel.Controller {
public void invalidateKey(Key key);
public TextView inflateKeyPreviewText();
public void showKeyPreview(int keyIndex, PointerTracker tracker);
@@ -76,6 +76,17 @@ public class PointerTracker {
public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker);
public void cancelLongPressTimer();
public void cancelKeyTimers();
+
+ public static class Adapter implements TimerProxy {
+ @Override
+ public void startKeyRepeatTimer(long delay, int keyIndex, PointerTracker tracker) {}
+ @Override
+ public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker) {}
+ @Override
+ public void cancelLongPressTimer() {}
+ @Override
+ public void cancelKeyTimers() {}
+ }
}
private static KeyboardSwitcher sKeyboardSwitcher;
@@ -123,8 +134,8 @@ public class PointerTracker {
// true if event is already translated to a key action.
private boolean mKeyAlreadyProcessed;
- // true if this pointer has been long-pressed and is showing a popup panel.
- private boolean mIsShowingPopupPanel;
+ // true if this pointer has been long-pressed and is showing a more keys panel.
+ private boolean mIsShowingMoreKeysPanel;
// true if this pointer is repeatable key
private boolean mIsRepeatableKey;
@@ -572,9 +583,9 @@ public class PointerTracker {
}
final int keyIndex = onUpKey(keyX, keyY, eventTime);
setReleasedKeyGraphics(keyIndex);
- if (mIsShowingPopupPanel) {
- mDrawingProxy.dismissPopupPanel();
- mIsShowingPopupPanel = false;
+ if (mIsShowingMoreKeysPanel) {
+ mDrawingProxy.dismissMoreKeysPanel();
+ mIsShowingMoreKeysPanel = false;
}
if (mKeyAlreadyProcessed)
return;
@@ -583,10 +594,10 @@ public class PointerTracker {
}
}
- public void onShowPopupPanel(int x, int y, long eventTime, KeyEventHandler handler) {
+ public void onShowMoreKeysPanel(int x, int y, long eventTime, KeyEventHandler handler) {
onLongPressed();
onDownEvent(x, y, eventTime, handler);
- mIsShowingPopupPanel = true;
+ mIsShowingMoreKeysPanel = true;
}
public void onLongPressed() {
@@ -615,9 +626,9 @@ public class PointerTracker {
mDrawingProxy.cancelShowKeyPreview(this);
setReleasedKeyGraphics(mKeyIndex);
mIsInSlidingKeyInput = false;
- if (mIsShowingPopupPanel) {
- mDrawingProxy.dismissPopupPanel();
- mIsShowingPopupPanel = false;
+ if (mIsShowingMoreKeysPanel) {
+ mDrawingProxy.dismissMoreKeysPanel();
+ mIsShowingMoreKeysPanel = false;
}
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index c0dba4173..6d78e8533 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -166,12 +166,12 @@ public class KeyStyles {
readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
- readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
+ readTextArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconPreview);
readInt(keyAttr, R.styleable.Keyboard_Key_keyIconShifted);
- readInt(keyAttr, R.styleable.Keyboard_Key_maxPopupKeyboardColumn);
+ readInt(keyAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky);
readBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index f599def36..c605debab 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -255,10 +255,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
mParams.mIsRtlKeyboard = keyboardAttr.getBoolean(
R.styleable.Keyboard_isRtlKeyboard, false);
- mParams.mPopupKeyboardResId = keyboardAttr.getResourceId(
- R.styleable.Keyboard_popupKeyboardTemplate, 0);
- mParams.mMaxPopupColumn = keyAttr.getInt(
- R.styleable.Keyboard_Key_maxPopupKeyboardColumn, 5);
+ mParams.mMoreKeysTemplate = keyboardAttr.getResourceId(
+ R.styleable.Keyboard_moreKeysTemplate, 0);
+ mParams.mMaxMiniKeyboardColumn = keyAttr.getInt(
+ R.styleable.Keyboard_Key_maxMoreKeysColumn, 5);
mParams.mIconsSet.loadIcons(keyboardAttr);
} finally {
@@ -365,9 +365,9 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
checkEndTag(TAG_KEY, parser);
} else {
Key key = new Key(mResources, mParams, row, mCurrentX, mCurrentY, parser, mKeyStyles);
- if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d popupCharacters=%s />",
+ if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d moreKeys=%s />",
TAG_KEY, (key.isEnabled() ? "" : " disabled"), key.mLabel, key.mCode,
- Arrays.toString(key.mPopupCharacters)));
+ Arrays.toString(key.mMoreKeys)));
checkEndTag(TAG_KEY, parser);
mParams.onAddKey(key);
endKey(key);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
index 980115200..4432ee121 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
@@ -49,8 +49,8 @@ public class KeyboardParams {
public int mVerticalGap;
public boolean mIsRtlKeyboard;
- public int mPopupKeyboardResId;
- public int mMaxPopupColumn;
+ public int mMoreKeysTemplate;
+ public int mMaxMiniKeyboardColumn;
public int GRID_WIDTH;
public int GRID_HEIGHT;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
index 7c5abe32a..a490b0ad6 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
@@ -26,9 +26,9 @@ import com.android.inputmethod.latin.R;
import java.util.ArrayList;
/**
- * String parser of popupCharacters attribute of Key.
- * The string is comma separated texts each of which represents one popup key.
- * Each popup key text is one of the following:
+ * String parser of moreKeys attribute of Key.
+ * The string is comma separated texts each of which represents one "more key".
+ * Each "more key" specification is one of the following:
* - A single letter (Letter)
* - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText).
* - Icon followed by keyOutputText or code (@icon/icon_number|@integer/key_code)
@@ -37,8 +37,8 @@ import java.util.ArrayList;
* Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well.
* See {@link KeyboardIconsSet} about icon_number.
*/
-public class PopupCharactersParser {
- private static final String TAG = PopupCharactersParser.class.getSimpleName();
+public class MoreKeySpecParser {
+ private static final String TAG = MoreKeySpecParser.class.getSimpleName();
private static final char ESCAPE = '\\';
private static final String LABEL_END = "|";
@@ -46,24 +46,24 @@ public class PopupCharactersParser {
private static final String PREFIX_ICON = PREFIX_AT + "icon/";
private static final String PREFIX_CODE = PREFIX_AT + "integer/";
- private PopupCharactersParser() {
+ private MoreKeySpecParser() {
// Intentional empty constructor for utility class.
}
- private static boolean hasIcon(String popupSpec) {
- if (popupSpec.startsWith(PREFIX_ICON)) {
- final int end = indexOfLabelEnd(popupSpec, 0);
+ private static boolean hasIcon(String moreKeySpec) {
+ if (moreKeySpec.startsWith(PREFIX_ICON)) {
+ final int end = indexOfLabelEnd(moreKeySpec, 0);
if (end > 0)
return true;
- throw new PopupCharactersParserError("outputText or code not specified: " + popupSpec);
+ throw new MoreKeySpecParserError("outputText or code not specified: " + moreKeySpec);
}
return false;
}
- private static boolean hasCode(String popupSpec) {
- final int end = indexOfLabelEnd(popupSpec, 0);
- if (end > 0 && end + 1 < popupSpec.length()
- && popupSpec.substring(end + 1).startsWith(PREFIX_CODE)) {
+ private static boolean hasCode(String moreKeySpec) {
+ final int end = indexOfLabelEnd(moreKeySpec, 0);
+ if (end > 0 && end + 1 < moreKeySpec.length()
+ && moreKeySpec.substring(end + 1).startsWith(PREFIX_CODE)) {
return true;
}
return false;
@@ -85,81 +85,81 @@ public class PopupCharactersParser {
return sb.toString();
}
- private static int indexOfLabelEnd(String popupSpec, int start) {
- if (popupSpec.indexOf(ESCAPE, start) < 0) {
- final int end = popupSpec.indexOf(LABEL_END, start);
+ private static int indexOfLabelEnd(String moreKeySpec, int start) {
+ if (moreKeySpec.indexOf(ESCAPE, start) < 0) {
+ final int end = moreKeySpec.indexOf(LABEL_END, start);
if (end == 0)
- throw new PopupCharactersParserError(LABEL_END + " at " + start + ": " + popupSpec);
+ throw new MoreKeySpecParserError(LABEL_END + " at " + start + ": " + moreKeySpec);
return end;
}
- final int length = popupSpec.length();
+ final int length = moreKeySpec.length();
for (int pos = start; pos < length; pos++) {
- final char c = popupSpec.charAt(pos);
+ final char c = moreKeySpec.charAt(pos);
if (c == ESCAPE && pos + 1 < length) {
pos++;
- } else if (popupSpec.startsWith(LABEL_END, pos)) {
+ } else if (moreKeySpec.startsWith(LABEL_END, pos)) {
return pos;
}
}
return -1;
}
- public static String getLabel(String popupSpec) {
- if (hasIcon(popupSpec))
+ public static String getLabel(String moreKeySpec) {
+ if (hasIcon(moreKeySpec))
return null;
- final int end = indexOfLabelEnd(popupSpec, 0);
- final String label = (end > 0) ? parseEscape(popupSpec.substring(0, end))
- : parseEscape(popupSpec);
+ final int end = indexOfLabelEnd(moreKeySpec, 0);
+ final String label = (end > 0) ? parseEscape(moreKeySpec.substring(0, end))
+ : parseEscape(moreKeySpec);
if (TextUtils.isEmpty(label))
- throw new PopupCharactersParserError("Empty label: " + popupSpec);
+ throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
return label;
}
- public static String getOutputText(String popupSpec) {
- if (hasCode(popupSpec))
+ public static String getOutputText(String moreKeySpec) {
+ if (hasCode(moreKeySpec))
return null;
- final int end = indexOfLabelEnd(popupSpec, 0);
+ final int end = indexOfLabelEnd(moreKeySpec, 0);
if (end > 0) {
- if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
- throw new PopupCharactersParserError("Multiple " + LABEL_END + ": "
- + popupSpec);
- final String outputText = parseEscape(popupSpec.substring(end + LABEL_END.length()));
+ if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0)
+ throw new MoreKeySpecParserError("Multiple " + LABEL_END + ": "
+ + moreKeySpec);
+ final String outputText = parseEscape(moreKeySpec.substring(end + LABEL_END.length()));
if (!TextUtils.isEmpty(outputText))
return outputText;
- throw new PopupCharactersParserError("Empty outputText: " + popupSpec);
+ throw new MoreKeySpecParserError("Empty outputText: " + moreKeySpec);
}
- final String label = getLabel(popupSpec);
+ final String label = getLabel(moreKeySpec);
if (label == null)
- throw new PopupCharactersParserError("Empty label: " + popupSpec);
+ throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
// Code is automatically generated for one letter label. See {@link getCode()}.
if (label.length() == 1)
return null;
return label;
}
- public static int getCode(Resources res, String popupSpec) {
- if (hasCode(popupSpec)) {
- final int end = indexOfLabelEnd(popupSpec, 0);
- if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
- throw new PopupCharactersParserError("Multiple " + LABEL_END + ": " + popupSpec);
+ public static int getCode(Resources res, String moreKeySpec) {
+ if (hasCode(moreKeySpec)) {
+ final int end = indexOfLabelEnd(moreKeySpec, 0);
+ if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0)
+ throw new MoreKeySpecParserError("Multiple " + LABEL_END + ": " + moreKeySpec);
final int resId = getResourceId(res,
- popupSpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
+ moreKeySpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
final int code = res.getInteger(resId);
return code;
}
- if (indexOfLabelEnd(popupSpec, 0) > 0)
+ if (indexOfLabelEnd(moreKeySpec, 0) > 0)
return Keyboard.CODE_DUMMY;
- final String label = getLabel(popupSpec);
+ final String label = getLabel(moreKeySpec);
// Code is automatically generated for one letter label.
if (label != null && label.length() == 1)
return label.charAt(0);
return Keyboard.CODE_DUMMY;
}
- public static int getIconId(String popupSpec) {
- if (hasIcon(popupSpec)) {
- int end = popupSpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
- final String iconId = popupSpec.substring(PREFIX_ICON.length(), end);
+ public static int getIconId(String moreKeySpec) {
+ if (hasIcon(moreKeySpec)) {
+ int end = moreKeySpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
+ final String iconId = moreKeySpec.substring(PREFIX_ICON.length(), end);
try {
return Integer.valueOf(iconId);
} catch (NumberFormatException e) {
@@ -174,13 +174,13 @@ public class PopupCharactersParser {
String packageName = res.getResourcePackageName(R.string.english_ime_name);
int resId = res.getIdentifier(name, null, packageName);
if (resId == 0)
- throw new PopupCharactersParserError("Unknown resource: " + name);
+ throw new MoreKeySpecParserError("Unknown resource: " + name);
return resId;
}
@SuppressWarnings("serial")
- public static class PopupCharactersParserError extends RuntimeException {
- public PopupCharactersParserError(String message) {
+ public static class MoreKeySpecParserError extends RuntimeException {
+ public MoreKeySpecParserError(String message) {
super(message);
}
}
@@ -196,31 +196,31 @@ public class PopupCharactersParser {
}
};
- public static CharSequence[] filterOut(Resources res, CharSequence[] popupCharacters,
+ public static CharSequence[] filterOut(Resources res, CharSequence[] moreKeys,
CodeFilter filter) {
- if (popupCharacters == null || popupCharacters.length < 1) {
+ if (moreKeys == null || moreKeys.length < 1) {
return null;
}
- if (popupCharacters.length == 1
- && filter.shouldFilterOut(getCode(res, popupCharacters[0].toString()))) {
+ if (moreKeys.length == 1
+ && filter.shouldFilterOut(getCode(res, moreKeys[0].toString()))) {
return null;
}
ArrayList<CharSequence> filtered = null;
- for (int i = 0; i < popupCharacters.length; i++) {
- final CharSequence popupSpec = popupCharacters[i];
- if (filter.shouldFilterOut(getCode(res, popupSpec.toString()))) {
+ for (int i = 0; i < moreKeys.length; i++) {
+ final CharSequence moreKeySpec = moreKeys[i];
+ if (filter.shouldFilterOut(getCode(res, moreKeySpec.toString()))) {
if (filtered == null) {
filtered = new ArrayList<CharSequence>();
for (int j = 0; j < i; j++) {
- filtered.add(popupCharacters[j]);
+ filtered.add(moreKeys[j]);
}
}
} else if (filtered != null) {
- filtered.add(popupSpec);
+ filtered.add(moreKeySpec);
}
}
if (filtered == null) {
- return popupCharacters;
+ return moreKeys;
}
if (filtered.size() == 0) {
return null;
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index e95172d1f..38563be4a 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -25,12 +25,15 @@ import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
+import java.io.BufferedInputStream;
+import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
@@ -46,7 +49,9 @@ public class BinaryDictionaryFileDumper {
/**
* The size of the temporary buffer to copy files.
*/
- static final int FILE_READ_BUFFER_SIZE = 1024;
+ private static final int FILE_READ_BUFFER_SIZE = 1024;
+ // TODO: make the following data common with the native code
+ private static final byte[] MAGIC_NUMBER = new byte[] { 0x78, (byte)0xB1 };
private static final String DICTIONARY_PROJECTION[] = { "id" };
@@ -135,6 +140,7 @@ public class BinaryDictionaryFileDumper {
for (int mode = MODE_MIN; mode <= MODE_MAX; ++mode) {
InputStream originalSourceStream = null;
InputStream inputStream = null;
+ File outputFile = null;
FileOutputStream outputStream = null;
AssetFileDescriptor afd = null;
try {
@@ -144,7 +150,8 @@ public class BinaryDictionaryFileDumper {
if (null == afd) return null;
originalSourceStream = afd.createInputStream();
// Open output.
- outputStream = new FileOutputStream(outputFileName);
+ outputFile = new File(outputFileName);
+ outputStream = new FileOutputStream(outputFile);
// Get the appropriate decryption method for this try
switch (mode) {
case COMPRESSED_CRYPTED_COMPRESSED:
@@ -171,7 +178,7 @@ public class BinaryDictionaryFileDumper {
inputStream = originalSourceStream;
break;
}
- copyFileTo(inputStream, outputStream);
+ checkMagicAndCopyFileTo(new BufferedInputStream(inputStream), outputStream);
if (0 >= resolver.delete(wordListUri, null, null)) {
Log.e(TAG, "Could not have the dictionary pack delete a word list");
}
@@ -181,6 +188,12 @@ public class BinaryDictionaryFileDumper {
if (DEBUG) {
Log.i(TAG, "Can't open word list in mode " + mode + " : " + e);
}
+ if (null != outputFile) {
+ // This may or may not fail. The file may not have been created if the
+ // exception was thrown before it could be. Hence, both failure and
+ // success are expected outcomes, so we don't check the return value.
+ outputFile.delete();
+ }
// Try the next method.
} finally {
// Ignore exceptions while closing files.
@@ -234,12 +247,29 @@ public class BinaryDictionaryFileDumper {
}
/**
- * Copies the data in an input stream to a target file.
+ * Copies the data in an input stream to a target file if the magic number matches.
+ *
+ * If the magic number does not match the expected value, this method throws an
+ * IOException. Other usual conditions for IOException or FileNotFoundException
+ * also apply.
+ *
* @param input the stream to be copied.
* @param outputFile an outputstream to copy the data to.
*/
- private static void copyFileTo(final InputStream input, final FileOutputStream output)
- throws FileNotFoundException, IOException {
+ private static void checkMagicAndCopyFileTo(final BufferedInputStream input,
+ final FileOutputStream output) throws FileNotFoundException, IOException {
+ // Check the magic number
+ final byte[] magicNumberBuffer = new byte[MAGIC_NUMBER.length];
+ final int readMagicNumberSize = input.read(magicNumberBuffer, 0, MAGIC_NUMBER.length);
+ if (readMagicNumberSize < MAGIC_NUMBER.length) {
+ throw new IOException("Less bytes to read than the magic number length");
+ }
+ if (!Arrays.equals(MAGIC_NUMBER, magicNumberBuffer)) {
+ throw new IOException("Wrong magic number for downloaded file");
+ }
+ output.write(MAGIC_NUMBER);
+
+ // Actually copy the file
final byte[] buffer = new byte[FILE_READ_BUFFER_SIZE];
for (int readBytes = input.read(buffer); readBytes >= 0; readBytes = input.read(buffer))
output.write(buffer, 0, readBytes);
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index f445abf48..0d355d01e 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -23,6 +23,7 @@ import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Message;
+import android.os.SystemClock;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
@@ -34,8 +35,10 @@ import android.text.style.ForegroundColorSpan;
import android.text.style.StyleSpan;
import android.text.style.UnderlineSpan;
import android.util.AttributeSet;
+import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.LayoutInflater;
+import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
@@ -46,6 +49,9 @@ import android.widget.TextView;
import com.android.inputmethod.compat.FrameLayoutCompatUtils;
import com.android.inputmethod.compat.LinearLayoutCompatUtils;
+import com.android.inputmethod.keyboard.KeyboardActionListener;
+import com.android.inputmethod.keyboard.MoreKeysPanel;
+import com.android.inputmethod.keyboard.PointerTracker;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import java.util.ArrayList;
@@ -58,18 +64,22 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
// The maximum number of suggestions available. See {@link Suggest#mPrefMaxSuggestions}.
- private static final int MAX_SUGGESTIONS = 18;
- private static final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;
- private static final int MATCH_PARENT = ViewGroup.LayoutParams.MATCH_PARENT;
+ public static final int MAX_SUGGESTIONS = 18;
private static final boolean DBG = LatinImeLogger.sDBG;
private final ViewGroup mCandidatesPlacer;
private final ViewGroup mCandidatesStrip;
+ // TODO: Remove these pane related fields and stuffs.
private ViewGroup mCandidatesPane;
private ViewGroup mCandidatesPaneContainer;
private View mKeyboardView;
+ private final View mMoreSuggestionsContainer;
+ private final MoreSuggestionsView mMoreSuggestionsView;
+ private final MoreSuggestions.Builder mMoreSuggestionsBuilder;
+ private final PopupWindow mMoreSuggestionsWindow;
+
private final ArrayList<TextView> mWords = new ArrayList<TextView>();
private final ArrayList<TextView> mInfos = new ArrayList<TextView>();
private final ArrayList<View> mDividers = new ArrayList<View>();
@@ -155,12 +165,13 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final TextView word = words.get(0);
final View divider = dividers.get(0);
mPadding = word.getCompoundPaddingLeft() + word.getCompoundPaddingRight();
- divider.measure(WRAP_CONTENT, MATCH_PARENT);
+ divider.measure(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
mDividerWidth = divider.getMeasuredWidth();
mDividerHeight = divider.getMeasuredHeight();
final Resources res = word.getResources();
- mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height);
+ mCandidateStripHeight = res.getDimensionPixelSize(R.dimen.candidate_strip_height);
}
}
@@ -224,7 +235,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
lastView = word;
if (x == 0)
centeringFrom = word;
- word.measure(WRAP_CONTENT,
+ word.measure(ViewGroup.LayoutParams.WRAP_CONTENT,
MeasureSpec.makeMeasureSpec(mCandidateStripHeight, MeasureSpec.EXACTLY));
final int width = word.getMeasuredWidth();
final int height = word.getMeasuredHeight();
@@ -234,7 +245,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
if (info != null) {
paneView.addView(info);
lastView = info;
- info.measure(WRAP_CONTENT, WRAP_CONTENT);
+ info.measure(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT);
final int infoWidth = info.getMeasuredWidth();
FrameLayoutCompatUtils.placeViewAt(
info, x - infoWidth, y, infoWidth, info.getMeasuredHeight());
@@ -257,7 +269,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
private final int mColorTypedWord;
private final int mColorAutoCorrect;
private final int mColorSuggestedCandidate;
- private final int mCandidateCountInStrip;
+ public final int mCandidateCountInStrip;
private final float mCenterCandidateWeight;
private final int mCenterCandidateIndex;
private final Drawable mMoreCandidateHint;
@@ -430,7 +442,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
word.setText(text); // TextView.setText() resets text scale x to 1.0.
word.setTextScaleX(scaleX);
stripView.addView(word);
- setLayoutWeight(word, getCandidateWeight(index), MATCH_PARENT);
+ setLayoutWeight(
+ word, getCandidateWeight(index), ViewGroup.LayoutParams.MATCH_PARENT);
x += word.getMeasuredWidth();
if (DBG) {
@@ -439,7 +452,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final TextView info = mInfos.get(pos);
info.setText(debugInfo);
placer.addView(info);
- info.measure(WRAP_CONTENT, WRAP_CONTENT);
+ info.measure(ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT);
final int infoWidth = info.getMeasuredWidth();
final int y = info.getMeasuredHeight();
FrameLayoutCompatUtils.placeViewAt(
@@ -447,7 +461,6 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
}
}
-
return countInStrip;
}
@@ -515,7 +528,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
wordView.setText(text);
wordView.setTextScaleX(wordScaleX);
stripView.addView(wordView);
- setLayoutWeight(wordView, mCenterCandidateWeight, MATCH_PARENT);
+ setLayoutWeight(wordView, mCenterCandidateWeight, ViewGroup.LayoutParams.MATCH_PARENT);
stripView.addView(mDividers.get(0));
@@ -526,7 +539,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
hintView.setText(mHintToSaveText);
hintView.setTextScaleX(hintScaleX);
stripView.addView(hintView);
- setLayoutWeight(hintView, 1.0f - mCenterCandidateWeight, MATCH_PARENT);
+ setLayoutWeight(
+ hintView, 1.0f - mCenterCandidateWeight, ViewGroup.LayoutParams.MATCH_PARENT);
}
}
@@ -558,7 +572,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mPreviewPopup = new PopupWindow(context);
mPreviewText = (TextView) inflater.inflate(R.layout.candidate_preview, null);
- mPreviewPopup.setWindowLayoutMode(WRAP_CONTENT, WRAP_CONTENT);
+ mPreviewPopup.setWindowLayoutMode(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mPreviewPopup.setContentView(mPreviewText);
mPreviewPopup.setBackgroundDrawable(null);
@@ -581,6 +596,15 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mInfos);
mPaneParams = new SuggestionsPaneParams(mWords, mDividers, mInfos);
mStripParams.mWordToSaveView.setOnClickListener(this);
+
+ mMoreSuggestionsContainer = inflater.inflate(R.layout.more_suggestions, null);
+ mMoreSuggestionsView = (MoreSuggestionsView)mMoreSuggestionsContainer
+ .findViewById(R.id.more_suggestions_view);
+ mMoreSuggestionsBuilder = new MoreSuggestions.Builder(mMoreSuggestionsView);
+ mMoreSuggestionsWindow = new PopupWindow(context);
+ mMoreSuggestionsWindow.setWindowLayoutMode(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ mMoreSuggestionsWindow.setBackgroundDrawable(null);
}
/**
@@ -617,8 +641,6 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final int width = getWidth();
final int countInStrip = mStripParams.layout(
mSuggestions, mCandidatesStrip, mCandidatesPlacer, width);
- mPaneParams.layout(
- mSuggestions, mCandidatesPane, countInStrip, mStripParams.getTextColor(), width);
}
private static CharSequence getDebugInfo(SuggestedWords suggestions, int pos) {
@@ -783,6 +805,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
mCandidatesStrip.removeAllViews();
mCandidatesPane.removeAllViews();
closeCandidatesPane();
+ mMoreSuggestionsWindow.dismiss();
}
private void hidePreview() {
@@ -796,8 +819,8 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
final TextView previewText = mPreviewText;
previewText.setTextColor(mStripParams.mColorTypedWord);
previewText.setText(word);
- previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ previewText.measure(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final int[] offsetInWindow = new int[2];
view.getLocationInWindow(offsetInWindow);
final int posX = offsetInWindow[0];
@@ -819,16 +842,103 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
}
}
+ private final KeyboardActionListener mMoreSuggestionsListener =
+ new KeyboardActionListener.Adapter() {
+ @Override
+ public boolean onCustomRequest(int requestCode) {
+ final int index = requestCode;
+ final CharSequence word = mSuggestions.getWord(index);
+ mListener.pickSuggestionManually(index, word);
+ mMoreSuggestionsView.dismissMoreKeysPanel();
+ return true;
+ }
+
+ @Override
+ public void onCancelInput() {
+ mMoreSuggestionsView.dismissMoreKeysPanel();
+ }
+ };
+
+ private final MoreKeysPanel.Controller mMoreSuggestionsController =
+ new MoreKeysPanel.Controller() {
+ @Override
+ public boolean dismissMoreKeysPanel() {
+ if (mMoreSuggestionsWindow.isShowing()) {
+ mMoreSuggestionsWindow.dismiss();
+ return true;
+ }
+ return false;
+ }
+ };
+
@Override
public boolean onLongClick(View view) {
- if (mStripParams.mMoreSuggestionsAvailable) {
- toggleCandidatesPane();
+ final SuggestionsStripParams params = mStripParams;
+ if (params.mMoreSuggestionsAvailable) {
+ final int stripWidth = getWidth();
+ final View container = mMoreSuggestionsContainer;
+ final int maxWidth = stripWidth - container.getPaddingLeft()
+ - container.getPaddingRight();
+ final DisplayMetrics dm = getContext().getResources().getDisplayMetrics();
+ // TODO: Revise how we determine the height
+ final int maxHeight = dm.heightPixels - mKeyboardView.getHeight() - getHeight() * 3;
+ final MoreSuggestions.Builder builder = mMoreSuggestionsBuilder;
+ builder.layout(mSuggestions, params.mCandidateCountInStrip, maxWidth, maxHeight);
+ mMoreSuggestionsView.setKeyboard(builder.build());
+ container.measure(
+ ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+
+ final MoreKeysPanel moreKeysPanel = mMoreSuggestionsView;
+ final int pointX = stripWidth / 2;
+ final int pointY = 0;
+ moreKeysPanel.showMoreKeysPanel(
+ this, mMoreSuggestionsController, pointX, pointY,
+ mMoreSuggestionsWindow, mMoreSuggestionsListener);
+ // TODO: Should figure out how to select the pointer tracker correctly.
+ final PointerTracker tracker = PointerTracker.getPointerTracker(0, moreKeysPanel);
+ final int translatedX = moreKeysPanel.translateX(tracker.getLastX());
+ final int translatedY = moreKeysPanel.translateY(tracker.getLastY());
+ tracker.onShowMoreKeysPanel(
+ translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);
+ view.setPressed(false);
+ // TODO: Should gray out the keyboard here as well?
return true;
}
return false;
}
@Override
+ public boolean dispatchTouchEvent(MotionEvent me) {
+ if (!mMoreSuggestionsWindow.isShowing()) {
+ return super.dispatchTouchEvent(me);
+ }
+ final int action = me.getAction();
+ final long eventTime = me.getEventTime();
+ final int index = me.getActionIndex();
+ final int id = me.getPointerId(index);
+ final PointerTracker tracker = PointerTracker.getPointerTracker(id, mMoreSuggestionsView);
+ final int x = mMoreSuggestionsView.translateX((int)me.getX(index));
+ final int y = mMoreSuggestionsView.translateY((int)me.getY(index));
+ switch (action) {
+ case MotionEvent.ACTION_DOWN:
+ case MotionEvent.ACTION_POINTER_DOWN:
+ tracker.onDownEvent(x, y, eventTime, mMoreSuggestionsView);
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_POINTER_UP:
+ tracker.onUpEvent(x, y, eventTime);
+ break;
+ case MotionEvent.ACTION_MOVE:
+ tracker.onMoveEvent(x, y, eventTime);
+ break;
+ case MotionEvent.ACTION_CANCEL:
+ tracker.onCancelEvent(x, y, eventTime);
+ break;
+ }
+ return true;
+ }
+
+ @Override
public void onClick(View view) {
if (view == mStripParams.mWordToSaveView) {
addToDictionary((CharSequence)view.getTag());
diff --git a/java/src/com/android/inputmethod/latin/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/MoreSuggestions.java
new file mode 100644
index 000000000..0446fb2a8
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/MoreSuggestions.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.graphics.Paint;
+import android.text.TextUtils;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.keyboard.KeyboardSwitcher;
+import com.android.inputmethod.keyboard.KeyboardView;
+import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
+import com.android.inputmethod.keyboard.internal.KeyboardParams;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+
+public class MoreSuggestions extends Keyboard {
+ private static final boolean DBG = LatinImeLogger.sDBG;
+
+ public static final int SUGGESTION_CODE_BASE = 1024;
+
+ private MoreSuggestions(Builder.MoreSuggestionsParam params) {
+ super(params);
+ }
+
+ public static class Builder extends KeyboardBuilder<Builder.MoreSuggestionsParam> {
+ private final MoreSuggestionsView mPaneView;
+ private SuggestedWords mSuggestions;
+ private int mFromPos;
+ private int mToPos;
+
+ public static class MoreSuggestionsParam extends KeyboardParams {
+ private final int[] mWidths = new int[CandidateView.MAX_SUGGESTIONS];
+ private final int[] mRowNumbers = new int[CandidateView.MAX_SUGGESTIONS];
+ private final int[] mColumnOrders = new int[CandidateView.MAX_SUGGESTIONS];
+ private final int[] mNumColumnsInRow = new int[CandidateView.MAX_SUGGESTIONS];
+ private static final int MAX_COLUMNS_IN_ROW = 3;
+ private int mNumRows;
+
+ public int layout(SuggestedWords suggestions, int fromPos, int maxWidth, int maxHeight,
+ KeyboardView view) {
+ clearKeys();
+ final Paint paint = new Paint();
+ paint.setAntiAlias(true);
+ final int padding = (int) view.getContext().getResources()
+ .getDimension(R.dimen.more_suggestions_key_horizontal_padding);
+
+ int row = 0;
+ int pos = fromPos, rowStartPos = fromPos;
+ final int size = Math.min(suggestions.size(), CandidateView.MAX_SUGGESTIONS);
+ while (pos < size) {
+ final CharSequence word = suggestions.getWord(pos);
+ // TODO: Should take care of text x-scaling.
+ mWidths[pos] = (int)view.getDefaultLabelWidth(word, paint) + padding;
+ final int numColumn = pos - rowStartPos + 1;
+ if (numColumn > MAX_COLUMNS_IN_ROW
+ || !fitInWidth(rowStartPos, pos + 1, maxWidth / numColumn)) {
+ if ((row + 1) * mDefaultRowHeight > maxHeight) {
+ break;
+ }
+ mNumColumnsInRow[row] = pos - rowStartPos;
+ rowStartPos = pos;
+ row++;
+ }
+ mColumnOrders[pos] = pos - rowStartPos;
+ mRowNumbers[pos] = row;
+ pos++;
+ }
+ mNumColumnsInRow[row] = pos - rowStartPos;
+ mNumRows = row + 1;
+ mWidth = mOccupiedWidth = calcurateMaxRowWidth(fromPos, pos);
+ mHeight = mOccupiedHeight = mNumRows * mDefaultRowHeight + mVerticalGap;
+ return pos - fromPos;
+ }
+
+ private boolean fitInWidth(int startPos, int endPos, int width) {
+ for (int pos = startPos; pos < endPos; pos++) {
+ if (mWidths[pos] > width)
+ return false;
+ }
+ return true;
+ }
+
+ private int calcurateMaxRowWidth(int startPos, int endPos) {
+ int maxRowWidth = 0;
+ int pos = startPos;
+ for (int row = 0; row < mNumRows; row++) {
+ final int numColumn = mNumColumnsInRow[row];
+ int maxKeyWidth = 0;
+ while (pos < endPos && mRowNumbers[pos] == row) {
+ maxKeyWidth = Math.max(maxKeyWidth, mWidths[pos]);
+ pos++;
+ }
+ maxRowWidth = Math.max(maxRowWidth, maxKeyWidth * numColumn);
+ }
+ return maxRowWidth;
+ }
+
+ private static final int[][] COLUMN_ORDER_TO_NUMBER = {
+ { 0, },
+ { 1, 0, },
+ { 2, 0, 1},
+ };
+
+ private int getColumnNumber(int pos) {
+ final int columnOrder = mColumnOrders[pos];
+ final int numColumn = mNumColumnsInRow[mRowNumbers[pos]];
+ return COLUMN_ORDER_TO_NUMBER[numColumn - 1][columnOrder];
+ }
+
+ public int getX(int pos) {
+ final int columnNumber = getColumnNumber(pos);
+ return columnNumber * getWidth(pos);
+ }
+
+ public int getY(int pos) {
+ final int row = mRowNumbers[pos];
+ return (mNumRows -1 - row) * mDefaultRowHeight + mTopPadding;
+ }
+
+ public int getWidth(int pos) {
+ final int row = mRowNumbers[pos];
+ final int numColumn = mNumColumnsInRow[row];
+ return mWidth / numColumn;
+ }
+
+ public int getFlags(int pos) {
+ int rowFlags = 0;
+
+ final int row = mRowNumbers[pos];
+ if (row == 0)
+ rowFlags |= Keyboard.EDGE_BOTTOM;
+ if (row == mNumRows - 1)
+ rowFlags |= Keyboard.EDGE_TOP;
+
+ final int numColumn = mNumColumnsInRow[row];
+ final int column = getColumnNumber(pos);
+ if (column == 0)
+ rowFlags |= Keyboard.EDGE_LEFT;
+ if (column == numColumn - 1)
+ rowFlags |= Keyboard.EDGE_RIGHT;
+
+ return rowFlags;
+ }
+ }
+
+ public Builder(MoreSuggestionsView paneView) {
+ super(paneView.getContext(), new MoreSuggestionsParam());
+ mPaneView = paneView;
+ }
+
+ public Builder layout(SuggestedWords suggestions, int fromPos, int maxWidth,
+ int maxHeight) {
+ final Keyboard keyboard = KeyboardSwitcher.getInstance().getLatinKeyboard();
+ final int xmlId = R.xml.kbd_suggestions_pane_template;
+ load(keyboard.mId.cloneWithNewXml(mResources.getResourceEntryName(xmlId), xmlId));
+ mParams.mVerticalGap = mParams.mTopPadding = keyboard.mVerticalGap / 2;
+
+ final int count = mParams.layout(suggestions, fromPos, maxWidth, maxHeight, mPaneView);
+ mFromPos = fromPos;
+ mToPos = fromPos + count;
+ mSuggestions = suggestions;
+ return this;
+ }
+
+ private static String getDebugInfo(SuggestedWords suggestions, int pos) {
+ if (!DBG) return null;
+ final SuggestedWordInfo wordInfo = suggestions.getInfo(pos);
+ if (wordInfo == null) return null;
+ final String info = wordInfo.getDebugString();
+ if (TextUtils.isEmpty(info)) return null;
+ return info;
+ }
+
+ @Override
+ public MoreSuggestions build() {
+ final MoreSuggestionsParam params = mParams;
+ for (int pos = mFromPos; pos < mToPos; pos++) {
+ final String word = mSuggestions.getWord(pos).toString();
+ final String info = getDebugInfo(mSuggestions, pos);
+ final int index = pos + SUGGESTION_CODE_BASE;
+ final Key key = new Key(
+ params, word, info, null, index, null, params.getX(pos), params.getY(pos),
+ params.getWidth(pos), params.mDefaultRowHeight, params.getFlags(pos));
+ params.onAddKey(key);
+ }
+ return new MoreSuggestions(params);
+ }
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/MoreSuggestionsView.java
new file mode 100644
index 000000000..828490112
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/MoreSuggestionsView.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.KeyDetector;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.keyboard.KeyboardActionListener;
+import com.android.inputmethod.keyboard.KeyboardView;
+import com.android.inputmethod.keyboard.MoreKeysPanel;
+import com.android.inputmethod.keyboard.PointerTracker;
+import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
+import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
+
+import java.util.List;
+
+/**
+ * A view that renders a virtual {@link MoreSuggestions}. It handles rendering of keys and detecting
+ * key presses and touch movements.
+ */
+public class MoreSuggestionsView extends KeyboardView implements MoreKeysPanel {
+ private final int[] mCoordinates = new int[2];
+
+ private final KeyDetector mKeyDetector;
+
+ private Controller mController;
+ private KeyboardActionListener mListener;
+ private int mOriginX;
+ private int mOriginY;
+
+ private static class SuggestionsPaneKeyDetector extends KeyDetector {
+ private final int mSlideAllowanceSquare;
+ private final int mSlideAllowanceSquareTop;
+
+ public SuggestionsPaneKeyDetector(float slideAllowance) {
+ super(/* keyHysteresisDistance */0);
+ mSlideAllowanceSquare = (int)(slideAllowance * slideAllowance);
+ // Top slide allowance is slightly longer (sqrt(2) times) than other edges.
+ mSlideAllowanceSquareTop = mSlideAllowanceSquare * 2;
+ }
+
+ @Override
+ public boolean alwaysAllowsSlidingInput() {
+ return true;
+ }
+
+ @Override
+ protected int getMaxNearbyKeys() {
+ // No nearby key will be returned.
+ return 1;
+ }
+
+ @Override
+ public int getKeyIndexAndNearbyCodes(int x, int y, final int[] allCodes) {
+ final List<Key> keys = getKeyboard().mKeys;
+ final int touchX = getTouchX(x);
+ final int touchY = getTouchY(y);
+
+ int nearestIndex = NOT_A_KEY;
+ int nearestDist = (y < 0) ? mSlideAllowanceSquareTop : mSlideAllowanceSquare;
+ final int keyCount = keys.size();
+ for (int index = 0; index < keyCount; index++) {
+ final int dist = keys.get(index).squaredDistanceToEdge(touchX, touchY);
+ if (dist < nearestDist) {
+ nearestIndex = index;
+ nearestDist = dist;
+ }
+ }
+
+ if (allCodes != null && nearestIndex != NOT_A_KEY)
+ allCodes[0] = keys.get(nearestIndex).mCode;
+ return nearestIndex;
+ }
+ }
+
+ private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter();
+
+ private final KeyboardActionListener mSuggestionsPaneListener =
+ new KeyboardActionListener.Adapter() {
+ @Override
+ public void onPress(int primaryCode, boolean withSliding) {
+ mListener.onPress(primaryCode, withSliding);
+ }
+
+ @Override
+ public void onRelease(int primaryCode, boolean withSliding) {
+ mListener.onRelease(primaryCode, withSliding);
+ }
+
+ @Override
+ public void onCodeInput(int primaryCode, int[] keyCodes, int x, int y) {
+ mListener.onCustomRequest(primaryCode - MoreSuggestions.SUGGESTION_CODE_BASE);
+ }
+
+ @Override
+ public void onCancelInput() {
+ mListener.onCancelInput();
+ }
+ };
+
+ public MoreSuggestionsView(Context context, AttributeSet attrs) {
+ this(context, attrs, R.attr.suggestionsPaneViewStyle);
+ }
+
+ public MoreSuggestionsView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+
+ final Resources res = context.getResources();
+ // Override default ProximityKeyDetector.
+ mKeyDetector = new SuggestionsPaneKeyDetector(res.getDimension(
+ R.dimen.more_suggestions_slide_allowance));
+ // Remove gesture detector on suggestions pane
+ setKeyPreviewPopupEnabled(false, 0);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ final Keyboard keyboard = getKeyboard();
+ if (keyboard != null) {
+ final int width = keyboard.mOccupiedWidth + getPaddingLeft() + getPaddingRight();
+ final int height = keyboard.mOccupiedHeight + getPaddingTop() + getPaddingBottom();
+ setMeasuredDimension(width, height);
+ } else {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+ }
+
+ @Override
+ public void setKeyboard(Keyboard keyboard) {
+ super.setKeyboard(keyboard);
+ mKeyDetector.setKeyboard(keyboard, -getPaddingLeft(),
+ -getPaddingTop() + mVerticalCorrection);
+ }
+
+ @Override
+ public KeyDetector getKeyDetector() {
+ return mKeyDetector;
+ }
+
+ @Override
+ public KeyboardActionListener getKeyboardActionListener() {
+ return mSuggestionsPaneListener;
+ }
+
+ @Override
+ public DrawingProxy getDrawingProxy() {
+ return this;
+ }
+
+ @Override
+ public TimerProxy getTimerProxy() {
+ return EMPTY_TIMER_PROXY;
+ }
+
+ @Override
+ public void setKeyPreviewPopupEnabled(boolean previewEnabled, int delay) {
+ // Suggestions pane needs no pop-up key preview displayed, so we pass always false with a
+ // delay of 0. The delay does not matter actually since the popup is not shown anyway.
+ super.setKeyPreviewPopupEnabled(false, 0);
+ }
+
+ @Override
+ public void setShifted(boolean shifted) {
+ // Nothing to do with.
+ }
+
+ @Override
+ public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
+ PopupWindow window, KeyboardActionListener listener) {
+ mController = controller;
+ mListener = listener;
+ final View container = (View)getParent();
+ final MoreSuggestions pane = (MoreSuggestions)getKeyboard();
+
+ parentView.getLocationInWindow(mCoordinates);
+ final int paneLeft = pointX - (pane.mOccupiedWidth / 2) + parentView.getPaddingLeft();
+ final int x = wrapUp(Math.max(0, Math.min(paneLeft,
+ parentView.getWidth() - pane.mOccupiedWidth))
+ - container.getPaddingLeft() + mCoordinates[0],
+ container.getMeasuredWidth(), 0, parentView.getWidth());
+ final int y = pointY
+ - (container.getMeasuredHeight() - container.getPaddingBottom())
+ + parentView.getPaddingTop() + mCoordinates[1];
+
+ window.setContentView(container);
+ window.setWidth(container.getMeasuredWidth());
+ window.setHeight(container.getMeasuredHeight());
+ window.showAtLocation(parentView, Gravity.NO_GRAVITY, x, y);
+
+ mOriginX = x + container.getPaddingLeft() - mCoordinates[0];
+ mOriginY = y + container.getPaddingTop() - mCoordinates[1];
+ }
+
+ private static int wrapUp(int x, int width, int left, int right) {
+ if (x < left)
+ return left;
+ if (x + width > right)
+ return right - width;
+ return x;
+ }
+
+ @Override
+ public boolean dismissMoreKeysPanel() {
+ return mController.dismissMoreKeysPanel();
+ }
+
+ @Override
+ public int translateX(int x) {
+ return x - mOriginX;
+ }
+
+ @Override
+ public int translateY(int y) {
+ return y - mOriginY;
+ }
+}
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index a5eed9015..1e2ef4824 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -73,7 +73,6 @@ public class Settings extends InputMethodSettingsActivity
public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold";
public static final String PREF_DEBUG_SETTINGS = "debug_settings";
- public static final String PREF_NGRAM_SETTINGS_KEY = "ngram_settings";
public static final String PREF_BIGRAM_SUGGESTIONS = "bigram_suggestion";
public static final String PREF_BIGRAM_PREDICTIONS = "bigram_prediction";
@@ -337,7 +336,9 @@ public class Settings extends InputMethodSettingsActivity
R.string.auto_correction_threshold_mode_index_off);
final String currentSetting = mAutoCorrectionThresholdPreference.getValue();
mBigramSuggestion.setEnabled(!currentSetting.equals(autoCorrectionOff));
- mBigramPrediction.setEnabled(!currentSetting.equals(autoCorrectionOff));
+ if (null != mBigramPrediction) {
+ mBigramPrediction.setEnabled(!currentSetting.equals(autoCorrectionOff));
+ }
}
public Activity getActivityInternal() {