1
0
Fork 0

Initial code cleanup (#34)

* slightly optimized candidate scrolling animation

* added missing Russian translations

* the soft keys fit properly on the screen

* central soft key is now always 'OK', because users do not care about the exact functions it performs in the code

* removed 'mode notify'; it wasn't working on Android 11 anyway

* removed 'space on 0' option; 0 is always 'space' now

* disallowed global key remapping and removed the app setting
This commit is contained in:
Dimo Karaivanov 2022-07-30 12:11:22 +03:00 committed by GitHub
parent 24ec816681
commit b5e44e2a51
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 90 additions and 229 deletions

View file

@ -13,11 +13,11 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" android:layout_gravity="center_vertical|center_horizontal"
android:layout_marginBottom="2dp"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:layout_marginBottom="2dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="2dp" android:padding="2dp"
android:paddingTop="5dp" android:paddingTop="4dp"
android:text="@string/main_left_insert" android:text="@string/main_left_insert"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/button_text" android:textColor="@color/button_text"
@ -29,9 +29,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" android:layout_gravity="center_vertical|center_horizontal"
android:drawableLeft="@drawable/holdicon" android:drawableLeft="@drawable/holdicon"
android:drawablePadding="5dp" android:drawablePadding="3dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="2dp" android:padding="0dp"
android:text="@string/main_left_addword" android:text="@string/main_left_addword"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/button_text" android:textColor="@color/button_text"

View file

@ -1,61 +1,77 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="58dp"
android:layout_marginLeft="0dp" android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:layout_marginRight="0dp"
android:background="@drawable/bggradient" android:background="@drawable/bggradient"
android:baselineAligned="true" android:baselineAligned="true"
android:gravity="bottom" android:gravity="bottom"
android:orientation="horizontal" > android:orientation="horizontal">
<ViewSwitcher <ViewSwitcher
android:id="@+id/main_left" android:id="@+id/main_left"
android:layout_width="190px" android:layout_width="0dp"
android:layout_height="58dp" android:layout_height="match_parent"
android:layout_marginLeft="1px" android:layout_marginLeft="1px"
android:layout_marginRight="1px" android:layout_marginRight="1px"
android:layout_weight="5"
android:background="@drawable/button_custom" android:background="@drawable/button_custom"
android:clickable="true" android:clickable="true"
android:focusable="false" android:focusable="false"
android:longClickable="true" > android:longClickable="true">
<include android:id="@+id/main_left_nohold" layout="@layout/lbuttonnohold" /> <include
<include android:id="@+id/main_left_hold" layout="@layout/lbuttonhold" /> android:id="@+id/main_left_nohold"
layout="@layout/lbuttonnohold"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<include
android:id="@+id/main_left_hold"
layout="@layout/lbuttonhold"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ViewSwitcher> </ViewSwitcher>
<Button <Button
android:id="@+id/main_mid" android:id="@+id/main_mid"
android:layout_width="94px" android:layout_width="0dp"
android:layout_height="58dp" android:layout_height="58dp"
android:layout_marginLeft="1px" android:layout_marginLeft="1px"
android:layout_marginRight="1px" android:layout_marginRight="1px"
android:layout_weight="2"
android:background="@drawable/button_custom" android:background="@drawable/button_custom"
android:focusable="false" android:focusable="false"
android:longClickable="true" android:longClickable="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:text="@string/main_mid" android:text="@string/main_mid"
android:textColor="@color/button_text" /> android:textColor="@color/button_text" />
<RelativeLayout <RelativeLayout
android:id="@+id/main_right" android:id="@+id/main_right"
android:layout_width="190px" android:layout_width="0dp"
android:layout_height="58dp" android:layout_height="match_parent"
android:layout_marginLeft="1px" android:layout_marginLeft="1px"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:layout_weight="5"
android:background="@drawable/button_custom" android:background="@drawable/button_custom"
android:clickable="true" android:clickable="true"
android:focusable="false" android:focusable="false"
android:longClickable="true" android:longClickable="true"
android:paddingLeft="2dp" android:paddingLeft="2dp"
android:paddingTop="1dp" > android:paddingTop="1dp">
<include <include
android:layout_width="wrap_content" layout="@layout/rbutton"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
layout="@layout/rbutton" /> android:layout_marginEnd="0dp" />
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>

View file

@ -13,13 +13,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" android:layout_gravity="center_vertical|center_horizontal"
android:layout_marginBottom="2dp"
android:layout_marginTop="0dp" android:layout_marginTop="0dp"
android:layout_marginBottom="2dp"
android:drawableLeft="@drawable/rcycle" android:drawableLeft="@drawable/rcycle"
android:drawablePadding="5dp" android:drawablePadding="5dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="2dp" android:padding="2dp"
android:paddingTop="5dp" android:paddingTop="4dp"
android:text="@string/main_right_upper" android:text="@string/main_right_upper"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/button_text" android:textColor="@color/button_text"
@ -31,9 +31,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" android:layout_gravity="center_vertical|center_horizontal"
android:drawableLeft="@drawable/holdicon" android:drawableLeft="@drawable/holdicon"
android:drawablePadding="5dp" android:drawablePadding="3dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="2dp" android:padding="0dp"
android:text="@string/main_right_lower" android:text="@string/main_right_lower"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/button_text" android:textColor="@color/button_text"

View file

@ -7,11 +7,9 @@
<string name="pref_inputmode_desc">Дали да е включено или не подсказването на думи, когато започнете да пишете</string> <string name="pref_inputmode_desc">Дали да е включено или не подсказването на думи, когато започнете да пишете</string>
<string name="traditionalt9_settings">Настройки на Traditional T9</string> <string name="traditionalt9_settings">Настройки на Traditional T9</string>
<string name="main_left_insert">Въведи символ</string> <string name="main_left_insert">Въведи символ</string>
<string name="main_left_addword">Добави дума</string> <string name="main_left_addword">Нова дума</string>
<string name="main_mid">Готово</string> <string name="main_right_upper">Режим</string>
<string name="main_mid_commit">Въведи</string> <string name="main_right_lower">Настройки</string>
<string name="main_right_upper">Следващ режим</string>
<string name="main_right_lower">Избор</string>
<string name="main_left_notfound">Добавяне на дума?</string> <string name="main_left_notfound">Добавяне на дума?</string>
<string name="ricon_desc">Hold Icon</string> <string name="ricon_desc">Hold Icon</string>
<string name="symbol_next">Следващи</string> <string name="symbol_next">Следващи</string>
@ -20,7 +18,7 @@
<string name="smiley_insert">Въведи усмивка</string> <string name="smiley_insert">Въведи усмивка</string>
<string name="symbol_page">Страница: %1$s/%2$s</string> <string name="symbol_page">Страница: %1$s/%2$s</string>
<string name="add_word">Добави дума</string> <string name="add_word">Добави</string>
<string name="close">Затвори</string> <string name="close">Затвори</string>
<string name="add_word_blank">Не може да се въведе никаква дума.</string> <string name="add_word_blank">Не може да се въведе никаква дума.</string>
<string name="add_word_badchar">Не може да се въведе дума с непозволени символи за %1$s (%2$s).</string> <string name="add_word_badchar">Не може да се въведе дума с непозволени символи за %1$s (%2$s).</string>
@ -46,9 +44,6 @@
<string name="pref_querytest">Query test</string> <string name="pref_querytest">Query test</string>
<string name="pref_testfunc">Test func</string> <string name="pref_testfunc">Test func</string>
<string name="pref_mode_notify">Показвай режима</string>
<string name="pref_mode_notify_subtitle">Ще се показва икона с текущият режим на писане</string>
<string name="pref_loadingdict">Зареждане на речник…</string> <string name="pref_loadingdict">Зареждане на речник…</string>
<string name="pref_loadinguserdict">Зареждане на вашия речник…</string> <string name="pref_loadinguserdict">Зареждане на вашия речник…</string>
<string name="pref_load_title">Зареди речник</string> <string name="pref_load_title">Зареди речник</string>
@ -71,10 +66,6 @@
<string name="pref_reloadKeysDone">Упешно зареждане.</string> <string name="pref_reloadKeysDone">Упешно зареждане.</string>
<string name="pref_reloadKeysDoneWE">Имаше грешки при зареждане (виж logcat.)</string> <string name="pref_reloadKeysDoneWE">Имаше грешки при зареждане (виж logcat.)</string>
<string name="pref_reloadKeysNoFile">Няма файл keymap.txt.</string> <string name="pref_reloadKeysNoFile">Няма файл keymap.txt.</string>
<string name="pref_keyRemap">Смени клавиши</string>
<string name="pref_keyRemapSum">Ако е избрано, сменените клавиши ще важат не само при писане, но и във всички приложения.</string>
<string name="pref_spaceOnZero">Интервал с 0</string>
<string name="pref_spaceOnZeroSum" tools:ignore="MissingTranslation">Ако е избрано, ще пишете интервал с 0, вместо с #.</string>
<string name="hello_world">Работи!</string> <string name="hello_world">Работи!</string>

View file

@ -8,8 +8,6 @@
<string name="traditionalt9_settings">Traditional T9 Einstellungen</string> <string name="traditionalt9_settings">Traditional T9 Einstellungen</string>
<string name="main_left_insert">Symbole</string> <string name="main_left_insert">Symbole</string>
<string name="main_left_addword">Wort hinzu</string> <string name="main_left_addword">Wort hinzu</string>
<string name="main_mid">Fertig</string>
<string name="main_mid_commit">Eingabe</string>
<string name="main_right_upper">Modus</string> <string name="main_right_upper">Modus</string>
<string name="main_right_lower">Optionen</string> <string name="main_right_lower">Optionen</string>
<string name="main_left_notfound">Wort hinzu?</string> <string name="main_left_notfound">Wort hinzu?</string>
@ -46,9 +44,6 @@
<string name="pref_querytest">Query test</string> <string name="pref_querytest">Query test</string>
<string name="pref_testfunc">Test func</string> <string name="pref_testfunc">Test func</string>
<string name="pref_mode_notify">Modus-Benachrichtigungen</string>
<string name="pref_mode_notify_subtitle">Genutzt für die Vokalisierung von Modusänderungen</string>
<string name="pref_loadingdict">Lade Wörterbuch…</string> <string name="pref_loadingdict">Lade Wörterbuch…</string>
<string name="pref_loadinguserdict">Lade Benutzerwörterbuch…</string> <string name="pref_loadinguserdict">Lade Benutzerwörterbuch…</string>
<string name="pref_load_title">IME-Wörterbuch laden</string> <string name="pref_load_title">IME-Wörterbuch laden</string>

View file

@ -8,8 +8,6 @@
<string name="traditionalt9_settings">Configuration Traditional T9 </string> <string name="traditionalt9_settings">Configuration Traditional T9 </string>
<string name="main_left_insert">Ins. symbole</string> <string name="main_left_insert">Ins. symbole</string>
<string name="main_left_addword">Aj. mot</string> <string name="main_left_addword">Aj. mot</string>
<string name="main_mid">Terminer</string>
<string name="main_mid_commit">Accepter</string>
<string name="main_right_upper">Changer de mode</string> <string name="main_right_upper">Changer de mode</string>
<string name="main_right_lower">Options</string> <string name="main_right_lower">Options</string>
<string name="main_left_notfound">Aj. mot?</string> <string name="main_left_notfound">Aj. mot?</string>
@ -46,9 +44,6 @@
<string name="pref_querytest">Tester le clavier</string> <string name="pref_querytest">Tester le clavier</string>
<string name="pref_testfunc">Teste fonc</string> <string name="pref_testfunc">Teste fonc</string>
<string name="pref_mode_notify">Mode notifications</string>
<string name="pref_mode_notify_subtitle">Utilisé pour la vocalisation de changement de mode</string>
<string name="pref_loadingdict">Chargement du dictionnaire…</string> <string name="pref_loadingdict">Chargement du dictionnaire…</string>
<string name="pref_loadinguserdict">Chargement du dictionnaire utilisateur…</string> <string name="pref_loadinguserdict">Chargement du dictionnaire utilisateur…</string>
<string name="pref_load_title">Charger le dictionnaire IME</string> <string name="pref_load_title">Charger le dictionnaire IME</string>

View file

@ -8,8 +8,6 @@
<string name="traditionalt9_settings">Traditional T9 Impostazioni</string> <string name="traditionalt9_settings">Traditional T9 Impostazioni</string>
<string name="main_left_insert">Ins. simbolo</string> <string name="main_left_insert">Ins. simbolo</string>
<string name="main_left_addword">Agg. parola</string> <string name="main_left_addword">Agg. parola</string>
<string name="main_mid">Fatto</string>
<string name="main_mid_commit">Accettare</string>
<string name="main_right_upper">Cambia modalità</string> <string name="main_right_upper">Cambia modalità</string>
<string name="main_right_lower">Opzioni</string> <string name="main_right_lower">Opzioni</string>
<string name="main_left_notfound">Agg. parola?</string> <string name="main_left_notfound">Agg. parola?</string>
@ -46,9 +44,6 @@
<string name="pref_querytest">Test ricerca</string> <string name="pref_querytest">Test ricerca</string>
<string name="pref_testfunc">Test func</string> <string name="pref_testfunc">Test func</string>
<string name="pref_mode_notify">Modalità notifiche</string>
<string name="pref_mode_notify_subtitle">Usato per la vocalizzazione del cambio modalità</string>
<string name="pref_loadingdict">Caricamento dizionario…</string> <string name="pref_loadingdict">Caricamento dizionario…</string>
<string name="pref_loadinguserdict">Caricamento dizionario utente…</string> <string name="pref_loadinguserdict">Caricamento dizionario utente…</string>
<string name="pref_load_title">Caricamento dizionario IME</string> <string name="pref_load_title">Caricamento dizionario IME</string>

View file

@ -11,10 +11,8 @@
<string name="ime_name">Клавиатура T9</string> <string name="ime_name">Клавиатура T9</string>
<string name="ime_number">Цифры</string> <string name="ime_number">Цифры</string>
<string name="main_left_addword">Добавить слово</string> <string name="main_left_addword">Добавить слово</string>
<string name="main_left_insert">вставить символ</string> <string name="main_left_insert">Вставить символ</string>
<string name="main_left_notfound">Добавить слово?</string> <string name="main_left_notfound">Добавить слово?</string>
<string name="main_mid">Готово</string>
<string name="main_mid_commit">Commit</string>
<string name="main_right_lower">Изменить IME</string> <string name="main_right_lower">Изменить IME</string>
<string name="main_right_upper">Режим ввода</string> <string name="main_right_upper">Режим ввода</string>
<string name="pref_backup_noext">Ошибка: Внешняя память недоступна. Резервное копирование невозможно невозможно.</string> <string name="pref_backup_noext">Ошибка: Внешняя память недоступна. Резервное копирование невозможно невозможно.</string>
@ -58,12 +56,11 @@
<string name="updating_database_done">Обновление базы данных словаря выполнено успешно.</string> <string name="updating_database_done">Обновление базы данных словаря выполнено успешно.</string>
<string name="updating_database_unavailable">Обновление базы данных словаря недоступно.</string> <string name="updating_database_unavailable">Обновление базы данных словаря недоступно.</string>
<string name="pref_loaduser_notfound"> Ошибка. \n Словарь %1$s не найден. </string> <string name="pref_loaduser_notfound"> Ошибка. \n Словарь %1$s не найден. </string>
<string name="pref_mode_notify_subtitle">Используется для озвучивания изменения режима ввода.</string> <string name="database_settings_notready">База данных недоступна. Используем значения по умолчанию.</string>
<string name="pref_mode_notify">Режим уведомления</string> <string name="pref_reloadKeys">>Перезагрузить кеймап</string>
<string name="database_settings_notready">Database unavailable. Using default settings.</string>
<string name="pref_reloadKeys">Force reload of key overrides</string>
<string name="title_activity_add_word">Добавить слово</string> <string name="title_activity_add_word">Добавить слово</string>
<string name="traditionalt9_settings">Traditional T9 настройки</string> <string name="traditionalt9_settings">Traditional T9 настройки</string>
</resources> </resources>

View file

@ -13,8 +13,6 @@
<string name="main_left_addword">Додати слово</string> <string name="main_left_addword">Додати слово</string>
<string name="main_left_insert">Вставити символ</string> <string name="main_left_insert">Вставити символ</string>
<string name="main_left_notfound">Додати слово?</string> <string name="main_left_notfound">Додати слово?</string>
<string name="main_mid">Готово</string>
<string name="main_mid_commit">Застосувати</string>
<string name="main_right_lower">Змінити IME</string> <string name="main_right_lower">Змінити IME</string>
<string name="main_right_upper">Режим введення</string> <string name="main_right_upper">Режим введення</string>
<string name="pref_backup_noext">Помилка: Зовнішня пам\'ять недоступна. Резервне копіювання неможливе.</string> <string name="pref_backup_noext">Помилка: Зовнішня пам\'ять недоступна. Резервне копіювання неможливе.</string>
@ -58,8 +56,6 @@
<string name="updating_database_done">Оновлення бази даних словника виконано успішно.</string> <string name="updating_database_done">Оновлення бази даних словника виконано успішно.</string>
<string name="updating_database_unavailable">Оновлення бізи даних словника недоступне.</string> <string name="updating_database_unavailable">Оновлення бізи даних словника недоступне.</string>
<string name="pref_loaduser_notfound"> Помилка. \n Словник %1$s не знайдено. </string> <string name="pref_loaduser_notfound"> Помилка. \n Словник %1$s не знайдено. </string>
<string name="pref_mode_notify_subtitle">Використовується для індикації зміни режима введення.</string>
<string name="pref_mode_notify">Режим індикації</string>
<string name="database_settings_notready">База даних недоступна. Використовуюься значення за замовчуванням.</string> <string name="database_settings_notready">База даних недоступна. Використовуюься значення за замовчуванням.</string>
<string name="pref_reloadKeys">Перезавантажити значення клавіш</string> <string name="pref_reloadKeys">Перезавантажити значення клавіш</string>

View file

@ -9,8 +9,7 @@
<string name="traditionalt9_settings">Traditional T9 Settings</string> <string name="traditionalt9_settings">Traditional T9 Settings</string>
<string name="main_left_insert">Insert symbol</string> <string name="main_left_insert">Insert symbol</string>
<string name="main_left_addword">Add word</string> <string name="main_left_addword">Add word</string>
<string name="main_mid">Done</string> <string name="main_mid" translatable="false">OK</string>
<string name="main_mid_commit">Commit</string>
<string name="main_right_upper">Cycle Mode</string> <string name="main_right_upper">Cycle Mode</string>
<string name="main_right_lower">Options</string> <string name="main_right_lower">Options</string>
<string name="main_left_notfound">Add word?</string> <string name="main_left_notfound">Add word?</string>
@ -48,9 +47,6 @@
<string name="pref_querytest">Query test</string> <string name="pref_querytest">Query test</string>
<string name="pref_testfunc">Test func</string> <string name="pref_testfunc">Test func</string>
<string name="pref_mode_notify">Mode notifications</string>
<string name="pref_mode_notify_subtitle">Used for vocalization of mode changes</string>
<string name="pref_loadingdict">Loading dictionary…</string> <string name="pref_loadingdict">Loading dictionary…</string>
<string name="pref_loadinguserdict">Loading user dictionary…</string> <string name="pref_loadinguserdict">Loading user dictionary…</string>
<string name="pref_load_title">Load IME dictionary</string> <string name="pref_load_title">Load IME dictionary</string>
@ -73,10 +69,6 @@
<string name="pref_reloadKeysDone" translatable="false">Reload complete.</string> <string name="pref_reloadKeysDone" translatable="false">Reload complete.</string>
<string name="pref_reloadKeysDoneWE" translatable="false">Reload complete with errors (check logcat.)</string> <string name="pref_reloadKeysDoneWE" translatable="false">Reload complete with errors (check logcat.)</string>
<string name="pref_reloadKeysNoFile" translatable="false">No keymap.txt file found.</string> <string name="pref_reloadKeysNoFile" translatable="false">No keymap.txt file found.</string>
<string name="pref_keyRemap" translatable="false">Translate keys</string>
<string name="pref_keyRemapSum" translatable="false">Enable to send translated keys to apps, otherwise keymap is for IME only.</string>
<string name="pref_spaceOnZero" translatable="false">Space on 0 key</string>
<string name="pref_spaceOnZeroSum" tools:ignore="MissingTranslation">Map space to 0 key if checked, otherwise to # key.</string>
<string name="hello_world">Hello world!</string> <string name="hello_world">Hello world!</string>

View file

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- WHEN ADDING NEW SETTING KEY THAT STORES VALUE, ADD KEY AND QUERY TO T9DB -->
<Settings> <Settings>
<Setting title="@string/pref_help" id="help" /> <Setting title="@string/pref_help" id="help" />
<SettingList <SettingList
@ -15,28 +14,10 @@
entries="@array/pref_lang_titles" entries="@array/pref_lang_titles"
entryValues="@array/pref_lang_values" entryValues="@array/pref_lang_values"
title="@string/pref_lang_title" /> title="@string/pref_lang_title" />
<SettingCheck
id="pref_spaceOnZero"
title="@string/pref_spaceOnZero"
summary="@string/pref_spaceOnZeroSum"
defaultValue="false"
/>
<SettingCheck
id="pref_mode_notify"
title="@string/pref_mode_notify"
summary="@string/pref_mode_notify_subtitle"
defaultValue="false"
/>
<Setting title="@string/pref_loaddict" id="loaddict"/> <Setting title="@string/pref_loaddict" id="loaddict"/>
<Setting title="@string/pref_loaduserdict" summary="@string/pref_loaduserdictdesc" id="loaduserdict"/> <Setting title="@string/pref_loaduserdict" summary="@string/pref_loaduserdictdesc" id="loaduserdict"/>
<Setting title="@string/pref_nukedict" id="nukedict"/> <Setting title="@string/pref_nukedict" id="nukedict"/>
<Setting title="@string/pref_backupdict" id="backupdict"/> <Setting title="@string/pref_backupdict" id="backupdict"/>
<Setting title="@string/pref_restoredict" id="restoredict"/> <Setting title="@string/pref_restoredict" id="restoredict"/>
<Setting title="@string/pref_reloadKeys" summary="@string/pref_reloadKeysSum" id="reloadKeys"/> <Setting title="@string/pref_reloadKeys" summary="@string/pref_reloadKeysSum" id="reloadKeys"/>
<SettingCheck
id="pref_keyMap"
title="@string/pref_keyRemap"
summary="@string/pref_keyRemapSum"
defaultValue="false"
/>
</Settings> </Settings>

View file

@ -21,7 +21,7 @@ public class CandidateView extends View {
private Rect mBgPadding; private Rect mBgPadding;
private static final int MAX_SUGGESTIONS = 32; private static final int MAX_SUGGESTIONS = 32;
private static final int SCROLL_PIXELS = 20; private static final int CANDIDATE_SCROLL_STEP = 20; // px
private int[] mWordWidth = new int[MAX_SUGGESTIONS]; private int[] mWordWidth = new int[MAX_SUGGESTIONS];
private int[] mWordX = new int[MAX_SUGGESTIONS]; private int[] mWordX = new int[MAX_SUGGESTIONS];
@ -152,27 +152,21 @@ public class CandidateView extends View {
x += wordWidth; x += wordWidth;
} }
mTotalWidth = x; mTotalWidth = x;
if (mTargetScrollX != getScrollX()) { scrollTargetIntoView();
scrollToTarget();
}
} }
private void scrollToTarget() { private void scrollTargetIntoView() {
int sx = getScrollX(); int currentX = getScrollX();
if (mTargetScrollX > sx) { int scrollDistance = mTargetScrollX - currentX;
sx += SCROLL_PIXELS;
if (sx >= mTargetScrollX) { if (scrollDistance == 0) {
sx = mTargetScrollX; return;
requestLayout();
} }
} else {
sx -= SCROLL_PIXELS; int maxStepX = (Math.abs(scrollDistance) > getWidth() * 0.5) ? (int)(CANDIDATE_SCROLL_STEP * 2.25) : CANDIDATE_SCROLL_STEP;
if (sx <= mTargetScrollX) { int stepX = Integer.signum(scrollDistance) * Math.min(Math.abs(scrollDistance), maxStepX);
sx = mTargetScrollX;
requestLayout(); scrollTo(currentX + stepX, getScrollY());
}
}
scrollTo(sx, getScrollY());
invalidate(); invalidate();
} }
@ -196,7 +190,7 @@ public class CandidateView extends View {
invalidate(); invalidate();
} }
protected void scrollSuggestion(int increment) { protected void scrollToSuggestion(int increment) {
if (mSuggestions != null && mSuggestions.size() > 1) { if (mSuggestions != null && mSuggestions.size() > 1) {
mSelectedIndex = mSelectedIndex + increment; mSelectedIndex = mSelectedIndex + increment;
if (mSelectedIndex == mSuggestions.size()) { if (mSelectedIndex == mSuggestions.size()) {

View file

@ -70,14 +70,6 @@ public class InterfaceHandler implements View.OnClickListener, View.OnLongClickL
((Button) mainview.findViewById(R.id.main_mid)).performClick(); ((Button) mainview.findViewById(R.id.main_mid)).performClick();
} }
protected void midButtonUpdate(boolean composing) {
if (composing) {
((TextView) mainview.findViewById(R.id.main_mid)).setText(R.string.main_mid_commit);
} else {
((TextView) mainview.findViewById(R.id.main_mid)).setText(R.string.main_mid);
}
}
@Override @Override
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {

View file

@ -68,11 +68,11 @@ public class T9DB {
public enum SETTING { public enum SETTING {
INPUT_MODE("pref_inputmode", 0, 0), INPUT_MODE("pref_inputmode", 0, 0),
LANG_SUPPORT("pref_lang_support", 1, 1), LANG_SUPPORT("pref_lang_support", 1, 1),
MODE_NOTIFY("pref_mode_notify", 0, 2), MODE_NOTIFY("pref_mode_notify", 0, 2), // no longer in use; delete in #7
LAST_LANG("set_last_lang", 1, 5), LAST_LANG("set_last_lang", 1, 5),
LAST_WORD("set_last_word", null, 6), LAST_WORD("set_last_word", null, 6),
SPACE_ZERO("pref_spaceOnZero", 0, 4), SPACE_ZERO("pref_spaceOnZero", 0, 4), // no longer in use; delete in #7
KEY_REMAP("pref_keyMap", 0, 3); KEY_REMAP("pref_keyMap", 0, 3); // no longer in use; delete in #7
public final String id; public final String id;
public final Integer defvalue; public final Integer defvalue;
@ -515,10 +515,10 @@ public class T9DB {
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
DBSettings.SETTING.INPUT_MODE.id + " INTEGER, " + DBSettings.SETTING.INPUT_MODE.id + " INTEGER, " +
DBSettings.SETTING.LANG_SUPPORT.id + " INTEGER, " + DBSettings.SETTING.LANG_SUPPORT.id + " INTEGER, " +
DBSettings.SETTING.MODE_NOTIFY.id + " INTEGER, " + DBSettings.SETTING.MODE_NOTIFY.id + " INTEGER, " + // no longer in use; delete in #7
DBSettings.SETTING.LAST_LANG.id + " INTEGER, " + DBSettings.SETTING.LAST_LANG.id + " INTEGER, " +
DBSettings.SETTING.KEY_REMAP.id + " INTEGER, " + DBSettings.SETTING.KEY_REMAP.id + " INTEGER, " + // no longer in use; delete in #7
DBSettings.SETTING.SPACE_ZERO.id + " INTEGER, " + DBSettings.SETTING.SPACE_ZERO.id + " INTEGER, " + // no longer in use; delete in #7
DBSettings.SETTING.LAST_WORD.id + " TEXT )"); DBSettings.SETTING.LAST_WORD.id + " TEXT )");
} }

View file

@ -1,7 +1,6 @@
package io.github.sspanak.tt9; package io.github.sspanak.tt9;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources;
import android.inputmethodservice.InputMethodService; import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.KeyboardView; import android.inputmethodservice.KeyboardView;
import android.os.Handler; import android.os.Handler;
@ -47,9 +46,6 @@ public class TraditionalT9 extends InputMethodService implements
private boolean mGaveUpdateWarn = false; private boolean mGaveUpdateWarn = false;
private boolean mFirstPress = false; private boolean mFirstPress = false;
private boolean keyRemap = false;
private boolean spaceOnZero = false;
private boolean mIgnoreDPADKeyUp = false; private boolean mIgnoreDPADKeyUp = false;
private KeyEvent mDPADkeyEvent = null; private KeyEvent mDPADkeyEvent = null;
@ -95,8 +91,6 @@ public class TraditionalT9 extends InputMethodService implements
private InputConnection currentInputConnection = null; private InputConnection currentInputConnection = null;
private Toast modeNotification = null;
/** /**
* Main initialization of the input method component. Be sure to call to * Main initialization of the input method component. Be sure to call to
* super class. * super class.
@ -268,9 +262,6 @@ public class TraditionalT9 extends InputMethodService implements
// if (interfacehandler != null) { // if (interfacehandler != null) {
// interfacehandler.hideView(); // interfacehandler.hideView();
// } // }
// Get keyMap setting:
Object[] setting = db.getSettings(new SETTING[] {SETTING.KEY_REMAP} );
keyRemap = setting[0].equals(1);
return; return;
} }
@ -284,12 +275,13 @@ public class TraditionalT9 extends InputMethodService implements
// get settings // get settings
Object[] settings = db.getSettings(new SETTING[] { Object[] settings = db.getSettings(new SETTING[] {
// 0, 1, 2, // 0, 1, 2,
// "2" is no longer in use; delete in #7
SETTING.LANG_SUPPORT, SETTING.LAST_LANG, SETTING.MODE_NOTIFY, SETTING.LANG_SUPPORT, SETTING.LAST_LANG, SETTING.MODE_NOTIFY,
// 3, 4, 5 // 3, 4, 5
// "5" is no longer in use; delete in #7
SETTING.INPUT_MODE, SETTING.LAST_WORD, SETTING.SPACE_ZERO SETTING.INPUT_MODE, SETTING.LAST_WORD, SETTING.SPACE_ZERO
}); });
spaceOnZero = settings[5].equals(1);
mLangsAvailable = LangHelper.buildLangs((Integer)settings[0]); mLangsAvailable = LangHelper.buildLangs((Integer)settings[0]);
mLang = sanitizeLang(LANGUAGE.get((Integer)settings[1])); mLang = sanitizeLang(LANGUAGE.get((Integer)settings[1]));
@ -299,14 +291,6 @@ public class TraditionalT9 extends InputMethodService implements
mKeyMode = MODE_TEXT; mKeyMode = MODE_TEXT;
boolean modenotify = settings[2].equals(1);
if (!modenotify && modeNotification != null) {
modeNotification = null;
} else if (modenotify && modeNotification == null){
modeNotification = Toast.makeText(this, "", Toast.LENGTH_SHORT);
}
// We are now going to initialize our state based on the type of // We are now going to initialize our state based on the type of
// text being edited. // text being edited.
switch (inputField.inputType & InputType.TYPE_MASK_CLASS) { switch (inputField.inputType & InputType.TYPE_MASK_CLASS) {
@ -394,15 +378,6 @@ public class TraditionalT9 extends InputMethodService implements
onText(prevword); onText(prevword);
db.storeSettingString(SETTING.LAST_WORD, null); db.storeSettingString(SETTING.LAST_WORD, null);
} }
if (modenotify) {
Resources r = getResources();
if (mKeyMode != MODE_NUM)
modeNotify(String.format("%s %s %s", r.getStringArray(R.array.pref_lang_titles)[mLang.index],
r.getStringArray(R.array.keyMode)[mKeyMode], r.getStringArray(R.array.capsMode)[mCapsMode]));
else
modeNotify(String.format("%s %s", r.getStringArray(R.array.pref_lang_titles)[mLang.index],
r.getStringArray(R.array.keyMode)[mKeyMode]));
}
} }
// Update the label on the enter key, depending on what the application // Update the label on the enter key, depending on what the application
@ -413,9 +388,6 @@ public class TraditionalT9 extends InputMethodService implements
mSuggestionStrings.clear(); mSuggestionStrings.clear();
mSuggestionInts.clear(); mSuggestionInts.clear();
mSuggestionSym.clear(); mSuggestionSym.clear();
if (interfacehandler != null) {
interfacehandler.midButtonUpdate(false);
}
updateKeyMode(); updateKeyMode();
// show Window()? // show Window()?
@ -598,28 +570,13 @@ public class TraditionalT9 extends InputMethodService implements
* the app. * the app.
*/ */
@Override @Override
public boolean onKeyDown(int keyCode, KeyEvent event) { public boolean onKeyDown(int inputKeyCode, KeyEvent inputEvent) {
// Translate key KeyEvent event = TranslateKey(inputKeyCode, inputEvent);
KeyEvent key = TranslateKey(keyCode, event); if (event != null) {
if (key != null) { return onKeyDown_(event.getKeyCode(), event);
keyCode = key.getKeyCode();
event = key;
} }
if (!onKeyDown_(keyCode, event)) { return onKeyDown_(inputKeyCode, inputEvent);
if (key == null || !keyRemap) {
return false;
}
else {
// push key to lower level
// dumb handling of null for edge weird timing cases.
if (currentInputConnection == null)
currentInputConnection = getCurrentInputConnection();
if (currentInputConnection != null)
currentInputConnection.sendKeyEvent(event);
}
}
return true;
} }
protected void launchOptions() { protected void launchOptions() {
@ -792,28 +749,13 @@ public class TraditionalT9 extends InputMethodService implements
* the app. * the app.
*/ */
@Override @Override
public boolean onKeyUp(int keyCode, KeyEvent event) { public boolean onKeyUp(int inputKeyCode, KeyEvent inputEvent) {
// Translate key KeyEvent event = TranslateKey(inputKeyCode, inputEvent);
KeyEvent key = TranslateKey(keyCode, event); if (event != null) {
if (key != null) { return onKeyUp_(event.getKeyCode(), event);
keyCode = key.getKeyCode();
event = key;
} }
if (!onKeyUp_(keyCode, event)) { return onKeyUp_(inputKeyCode, inputEvent);
if (key == null || !keyRemap) {
return false;
}
else {
// push key to lower level
// dumb handling of null for edge weird timing cases.
if (currentInputConnection == null)
currentInputConnection = getCurrentInputConnection();
if (currentInputConnection != null)
currentInputConnection.sendKeyEvent(event);
}
}
return true;
} }
/** /**
@ -822,7 +764,6 @@ public class TraditionalT9 extends InputMethodService implements
// private void commitTyped() { commitTyped(getCurrentInputConnection()); } // private void commitTyped() { commitTyped(getCurrentInputConnection()); }
private void commitTyped() { private void commitTyped() {
if (interfacehandler != null) { if (interfacehandler != null) {
interfacehandler.midButtonUpdate(false);
interfacehandler.showNotFound(false); interfacehandler.showNotFound(false);
} }
@ -1054,9 +995,6 @@ public class TraditionalT9 extends InputMethodService implements
final int length2 = mComposingI.length(); final int length2 = mComposingI.length();
if (mKeyMode == MODE_TEXT) { if (mKeyMode == MODE_TEXT) {
charReset(); charReset();
if (interfacehandler != null) {
interfacehandler.midButtonUpdate(false);
}
setCandidatesViewShown(false); setCandidatesViewShown(false);
} }
//Log.d("handleBS", "Stage1: (" + length + "," + length2 + ")"); //Log.d("handleBS", "Stage1: (" + length + "," + length2 + ")");
@ -1083,7 +1021,6 @@ public class TraditionalT9 extends InputMethodService implements
//Log.d("handleBS", "resetting thing"); //Log.d("handleBS", "resetting thing");
mComposing.setLength(0); mComposing.setLength(0);
mComposingI.setLength(0); mComposingI.setLength(0);
interfacehandler.midButtonUpdate(false);
interfacehandler.showNotFound(false); interfacehandler.showNotFound(false);
mSuggestionStrings.clear(); mSuggestionStrings.clear();
mPreviousWord = ""; mPreviousWord = "";
@ -1112,8 +1049,6 @@ public class TraditionalT9 extends InputMethodService implements
currentInputConnection.setComposingText(mComposing, 1); currentInputConnection.setComposingText(mComposing, 1);
} }
updateKeyMode(); updateKeyMode();
if (modeNotification != null)
modeNotify(getResources().getStringArray(R.array.capsMode)[mCapsMode]);
} }
/** /**
@ -1125,18 +1060,13 @@ public class TraditionalT9 extends InputMethodService implements
switch (mKeyMode) { switch (mKeyMode) {
case MODE_LANG: case MODE_LANG:
// it begins // it begins
// take note of spaceOnZero if (keyCode == KeyEvent.KEYCODE_POUND || keyCode == KeyEvent.KEYCODE_0) {
if (keyCode == KeyEvent.KEYCODE_POUND ||
( spaceOnZero && (keyCode == KeyEvent.KEYCODE_0) )) {
if (mComposing.length() > 0) { if (mComposing.length() > 0) {
commitTyped(); commitTyped();
} }
onText(" "); onText(" ");
} else { } else {
// do things // do things
if (interfacehandler != null) {
interfacehandler.midButtonUpdate(true);
}
keyCode = keyCode - KeyEvent.KEYCODE_0; keyCode = keyCode - KeyEvent.KEYCODE_0;
mComposingI.append(keyCode); mComposingI.append(keyCode);
updateCandidates(); updateCandidates();
@ -1152,12 +1082,10 @@ public class TraditionalT9 extends InputMethodService implements
keyCode = keyCode - KeyEvent.KEYCODE_0; keyCode = keyCode - KeyEvent.KEYCODE_0;
} }
// special translation of that keyCode (which is now T9TABLE index // special translation of that keyCode (which is now T9TABLE index
if (spaceOnZero) {
if (keyCode == 0) if (keyCode == 0)
keyCode = 11; keyCode = 11;
if (keyCode == 10) if (keyCode == 10)
keyCode = 12; keyCode = 12;
}
//Log.d("handleChar", "Key: " + keyCode + "Previous Key: " + mPrevious + " Index:" + mCharIndex); //Log.d("handleChar", "Key: " + keyCode + "Previous Key: " + mPrevious + " Index:" + mCharIndex);
boolean newChar = false; boolean newChar = false;
@ -1247,12 +1175,12 @@ public class TraditionalT9 extends InputMethodService implements
} else { } else {
if (mKeyMode != MODE_NUM && mComposing.length() > 0) { if (mKeyMode != MODE_NUM && mComposing.length() > 0) {
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) { if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
mCandidateView.scrollSuggestion(1); mCandidateView.scrollToSuggestion(1);
if (mSuggestionStrings.size() > mCandidateView.mSelectedIndex) if (mSuggestionStrings.size() > mCandidateView.mSelectedIndex)
currentInputConnection.setComposingText(mSuggestionStrings.get(mCandidateView.mSelectedIndex), 1); currentInputConnection.setComposingText(mSuggestionStrings.get(mCandidateView.mSelectedIndex), 1);
return true; return true;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
mCandidateView.scrollSuggestion(-1); mCandidateView.scrollToSuggestion(-1);
if (mSuggestionStrings.size() > mCandidateView.mSelectedIndex) if (mSuggestionStrings.size() > mCandidateView.mSelectedIndex)
currentInputConnection.setComposingText(mSuggestionStrings.get(mCandidateView.mSelectedIndex), 1); currentInputConnection.setComposingText(mSuggestionStrings.get(mCandidateView.mSelectedIndex), 1);
return true; return true;
@ -1319,15 +1247,6 @@ public class TraditionalT9 extends InputMethodService implements
} }
updateKeyMode(); updateKeyMode();
resetKeyMode(); resetKeyMode();
if (modeNotification != null)
modeNotify(getResources().getStringArray(R.array.keyMode)[mKeyMode]);
}
private void modeNotify(String s) {
modeNotification.setText(s);
modeNotification.show();
modeNotification.cancel(); // TODO: This will not always hide the Toast.
// will probably need to implement custom view
} }
private void nextLang() { private void nextLang() {
@ -1337,9 +1256,6 @@ public class TraditionalT9 extends InputMethodService implements
} }
mLang = mLangsAvailable[mLangIndex]; mLang = mLangsAvailable[mLangIndex];
updateKeyMode(); updateKeyMode();
if (modeNotification != null) {
modeNotify(getResources().getStringArray(R.array.pref_lang_titles)[mLang.index]);
}
} }
private void resetKeyMode() { private void resetKeyMode() {

View file

@ -686,6 +686,7 @@ public class TraditionalT9Settings extends ListActivity implements
// get settings // get settings
Object[] settings = T9DB.getInstance(this).getSettings(new SETTING[] Object[] settings = T9DB.getInstance(this).getSettings(new SETTING[]
// Order should be based on SETTING.sqOrder // Order should be based on SETTING.sqOrder
// "MODE_NOTIFY", "SPACE_ZERO" and "KEY_REMAP" are no longer in use; delete in #7
{SETTING.INPUT_MODE, SETTING.LANG_SUPPORT, SETTING.MODE_NOTIFY, SETTING.KEY_REMAP, SETTING.SPACE_ZERO}); {SETTING.INPUT_MODE, SETTING.LANG_SUPPORT, SETTING.MODE_NOTIFY, SETTING.KEY_REMAP, SETTING.SPACE_ZERO});
ListAdapter settingitems; ListAdapter settingitems;
try { try {