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:
parent
24ec816681
commit
b5e44e2a51
16 changed files with 90 additions and 229 deletions
|
|
@ -13,11 +13,11 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|center_horizontal"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="2dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingTop="4dp"
|
||||
android:text="@string/main_left_insert"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textColor="@color/button_text"
|
||||
|
|
@ -29,9 +29,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|center_horizontal"
|
||||
android:drawableLeft="@drawable/holdicon"
|
||||
android:drawablePadding="5dp"
|
||||
android:drawablePadding="3dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="2dp"
|
||||
android:padding="0dp"
|
||||
android:text="@string/main_left_addword"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="@color/button_text"
|
||||
|
|
|
|||
|
|
@ -1,61 +1,77 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="58dp"
|
||||
android:layout_marginLeft="0dp"
|
||||
android:layout_marginRight="0dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginRight="0dp"
|
||||
android:background="@drawable/bggradient"
|
||||
android:baselineAligned="true"
|
||||
android:gravity="bottom"
|
||||
android:orientation="horizontal" >
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ViewSwitcher
|
||||
android:id="@+id/main_left"
|
||||
android:layout_width="190px"
|
||||
android:layout_height="58dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1px"
|
||||
android:layout_marginRight="1px"
|
||||
android:layout_weight="5"
|
||||
android:background="@drawable/button_custom"
|
||||
android:clickable="true"
|
||||
android:focusable="false"
|
||||
android:longClickable="true" >
|
||||
android:longClickable="true">
|
||||
|
||||
<include android:id="@+id/main_left_nohold" layout="@layout/lbuttonnohold" />
|
||||
<include android:id="@+id/main_left_hold" layout="@layout/lbuttonhold" />
|
||||
<include
|
||||
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>
|
||||
|
||||
<Button
|
||||
android:id="@+id/main_mid"
|
||||
android:layout_width="94px"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="58dp"
|
||||
android:layout_marginLeft="1px"
|
||||
android:layout_marginRight="1px"
|
||||
android:layout_weight="2"
|
||||
android:background="@drawable/button_custom"
|
||||
android:focusable="false"
|
||||
android:longClickable="true"
|
||||
android:paddingLeft="2dp"
|
||||
android:paddingRight="2dp"
|
||||
android:text="@string/main_mid"
|
||||
android:textColor="@color/button_text" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/main_right"
|
||||
android:layout_width="190px"
|
||||
android:layout_height="58dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="1px"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_weight="5"
|
||||
android:background="@drawable/button_custom"
|
||||
android:clickable="true"
|
||||
android:focusable="false"
|
||||
android:longClickable="true"
|
||||
android:paddingLeft="2dp"
|
||||
android:paddingTop="1dp" >
|
||||
android:paddingTop="1dp">
|
||||
|
||||
<include
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
layout="@layout/rbutton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginTop="0dp"
|
||||
layout="@layout/rbutton" />
|
||||
android:layout_marginEnd="0dp" />
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
|||
|
|
@ -13,13 +13,13 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|center_horizontal"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:drawableLeft="@drawable/rcycle"
|
||||
android:drawablePadding="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="2dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingTop="4dp"
|
||||
android:text="@string/main_right_upper"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:textColor="@color/button_text"
|
||||
|
|
@ -31,9 +31,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|center_horizontal"
|
||||
android:drawableLeft="@drawable/holdicon"
|
||||
android:drawablePadding="5dp"
|
||||
android:drawablePadding="3dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="2dp"
|
||||
android:padding="0dp"
|
||||
android:text="@string/main_right_lower"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="@color/button_text"
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@
|
|||
<string name="pref_inputmode_desc">Дали да е включено или не подсказването на думи, когато започнете да пишете</string>
|
||||
<string name="traditionalt9_settings">Настройки на Traditional T9</string>
|
||||
<string name="main_left_insert">Въведи символ</string>
|
||||
<string name="main_left_addword">Добави дума</string>
|
||||
<string name="main_mid">Готово</string>
|
||||
<string name="main_mid_commit">Въведи</string>
|
||||
<string name="main_right_upper">Следващ режим</string>
|
||||
<string name="main_right_lower">Избор</string>
|
||||
<string name="main_left_addword">Нова дума</string>
|
||||
<string name="main_right_upper">Режим</string>
|
||||
<string name="main_right_lower">Настройки</string>
|
||||
<string name="main_left_notfound">Добавяне на дума?</string>
|
||||
<string name="ricon_desc">Hold Icon</string>
|
||||
<string name="symbol_next">Следващи</string>
|
||||
|
|
@ -20,7 +18,7 @@
|
|||
<string name="smiley_insert">Въведи усмивка</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="add_word_blank">Не може да се въведе никаква дума.</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_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_loadinguserdict">Зареждане на вашия речник…</string>
|
||||
<string name="pref_load_title">Зареди речник</string>
|
||||
|
|
@ -71,10 +66,6 @@
|
|||
<string name="pref_reloadKeysDone">Упешно зареждане.</string>
|
||||
<string name="pref_reloadKeysDoneWE">Имаше грешки при зареждане (виж logcat.)</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>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
<string name="traditionalt9_settings">Traditional T9 Einstellungen</string>
|
||||
<string name="main_left_insert">Symbole</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_lower">Optionen</string>
|
||||
<string name="main_left_notfound">Wort hinzu?</string>
|
||||
|
|
@ -46,9 +44,6 @@
|
|||
<string name="pref_querytest">Query test</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_loadinguserdict">Lade Benutzerwörterbuch…</string>
|
||||
<string name="pref_load_title">IME-Wörterbuch laden</string>
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
<string name="traditionalt9_settings">Configuration Traditional T9 </string>
|
||||
<string name="main_left_insert">Ins. symbole</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_lower">Options</string>
|
||||
<string name="main_left_notfound">Aj. mot?</string>
|
||||
|
|
@ -46,9 +44,6 @@
|
|||
<string name="pref_querytest">Tester le clavier</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_loadinguserdict">Chargement du dictionnaire utilisateur…</string>
|
||||
<string name="pref_load_title">Charger le dictionnaire IME</string>
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
<string name="traditionalt9_settings">Traditional T9 Impostazioni</string>
|
||||
<string name="main_left_insert">Ins. simbolo</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_lower">Opzioni</string>
|
||||
<string name="main_left_notfound">Agg. parola?</string>
|
||||
|
|
@ -46,9 +44,6 @@
|
|||
<string name="pref_querytest">Test ricerca</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_loadinguserdict">Caricamento dizionario utente…</string>
|
||||
<string name="pref_load_title">Caricamento dizionario IME</string>
|
||||
|
|
|
|||
|
|
@ -11,10 +11,8 @@
|
|||
<string name="ime_name">Клавиатура T9</string>
|
||||
<string name="ime_number">Цифры</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_mid">Готово</string>
|
||||
<string name="main_mid_commit">Commit</string>
|
||||
<string name="main_right_lower">Изменить IME</string>
|
||||
<string name="main_right_upper">Режим ввода</string>
|
||||
<string name="pref_backup_noext">Ошибка: Внешняя память недоступна. Резервное копирование невозможно невозможно.</string>
|
||||
|
|
@ -58,12 +56,11 @@
|
|||
<string name="updating_database_done">Обновление базы данных словаря выполнено успешно.</string>
|
||||
<string name="updating_database_unavailable">Обновление базы данных словаря недоступно.</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">Database unavailable. Using default settings.</string>
|
||||
<string name="pref_reloadKeys">Force reload of key overrides</string>
|
||||
<string name="database_settings_notready">База данных недоступна. Используем значения по умолчанию.</string>
|
||||
<string name="pref_reloadKeys">>Перезагрузить кеймап</string>
|
||||
|
||||
<string name="title_activity_add_word">Добавить слово</string>
|
||||
<string name="traditionalt9_settings">Traditional T9 настройки</string>
|
||||
|
||||
<string name="title_activity_add_word">Добавить слово</string>
|
||||
<string name="traditionalt9_settings">Traditional T9 настройки</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@
|
|||
<string name="main_left_addword">Додати слово</string>
|
||||
<string name="main_left_insert">Вставити символ</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_upper">Режим введення</string>
|
||||
<string name="pref_backup_noext">Помилка: Зовнішня пам\'ять недоступна. Резервне копіювання неможливе.</string>
|
||||
|
|
@ -58,8 +56,6 @@
|
|||
<string name="updating_database_done">Оновлення бази даних словника виконано успішно.</string>
|
||||
<string name="updating_database_unavailable">Оновлення бізи даних словника недоступне.</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="pref_reloadKeys">Перезавантажити значення клавіш</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@
|
|||
<string name="traditionalt9_settings">Traditional T9 Settings</string>
|
||||
<string name="main_left_insert">Insert symbol</string>
|
||||
<string name="main_left_addword">Add word</string>
|
||||
<string name="main_mid">Done</string>
|
||||
<string name="main_mid_commit">Commit</string>
|
||||
<string name="main_mid" translatable="false">OK</string>
|
||||
<string name="main_right_upper">Cycle Mode</string>
|
||||
<string name="main_right_lower">Options</string>
|
||||
<string name="main_left_notfound">Add word?</string>
|
||||
|
|
@ -48,9 +47,6 @@
|
|||
<string name="pref_querytest">Query test</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_loadinguserdict">Loading user 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_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_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>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- WHEN ADDING NEW SETTING KEY THAT STORES VALUE, ADD KEY AND QUERY TO T9DB -->
|
||||
<Settings>
|
||||
<Setting title="@string/pref_help" id="help" />
|
||||
<SettingList
|
||||
|
|
@ -15,28 +14,10 @@
|
|||
entries="@array/pref_lang_titles"
|
||||
entryValues="@array/pref_lang_values"
|
||||
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_loaduserdict" summary="@string/pref_loaduserdictdesc" id="loaduserdict"/>
|
||||
<Setting title="@string/pref_nukedict" id="nukedict"/>
|
||||
<Setting title="@string/pref_backupdict" id="backupdict"/>
|
||||
<Setting title="@string/pref_restoredict" id="restoredict"/>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class CandidateView extends View {
|
|||
private Rect mBgPadding;
|
||||
|
||||
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[] mWordX = new int[MAX_SUGGESTIONS];
|
||||
|
|
@ -152,27 +152,21 @@ public class CandidateView extends View {
|
|||
x += wordWidth;
|
||||
}
|
||||
mTotalWidth = x;
|
||||
if (mTargetScrollX != getScrollX()) {
|
||||
scrollToTarget();
|
||||
}
|
||||
scrollTargetIntoView();
|
||||
}
|
||||
|
||||
private void scrollToTarget() {
|
||||
int sx = getScrollX();
|
||||
if (mTargetScrollX > sx) {
|
||||
sx += SCROLL_PIXELS;
|
||||
if (sx >= mTargetScrollX) {
|
||||
sx = mTargetScrollX;
|
||||
requestLayout();
|
||||
}
|
||||
} else {
|
||||
sx -= SCROLL_PIXELS;
|
||||
if (sx <= mTargetScrollX) {
|
||||
sx = mTargetScrollX;
|
||||
requestLayout();
|
||||
}
|
||||
private void scrollTargetIntoView() {
|
||||
int currentX = getScrollX();
|
||||
int scrollDistance = mTargetScrollX - currentX;
|
||||
|
||||
if (scrollDistance == 0) {
|
||||
return;
|
||||
}
|
||||
scrollTo(sx, getScrollY());
|
||||
|
||||
int maxStepX = (Math.abs(scrollDistance) > getWidth() * 0.5) ? (int)(CANDIDATE_SCROLL_STEP * 2.25) : CANDIDATE_SCROLL_STEP;
|
||||
int stepX = Integer.signum(scrollDistance) * Math.min(Math.abs(scrollDistance), maxStepX);
|
||||
|
||||
scrollTo(currentX + stepX, getScrollY());
|
||||
invalidate();
|
||||
}
|
||||
|
||||
|
|
@ -196,7 +190,7 @@ public class CandidateView extends View {
|
|||
invalidate();
|
||||
}
|
||||
|
||||
protected void scrollSuggestion(int increment) {
|
||||
protected void scrollToSuggestion(int increment) {
|
||||
if (mSuggestions != null && mSuggestions.size() > 1) {
|
||||
mSelectedIndex = mSelectedIndex + increment;
|
||||
if (mSelectedIndex == mSuggestions.size()) {
|
||||
|
|
|
|||
|
|
@ -70,14 +70,6 @@ public class InterfaceHandler implements View.OnClickListener, View.OnLongClickL
|
|||
((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
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
|
|
|
|||
|
|
@ -68,11 +68,11 @@ public class T9DB {
|
|||
public enum SETTING {
|
||||
INPUT_MODE("pref_inputmode", 0, 0),
|
||||
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_WORD("set_last_word", null, 6),
|
||||
SPACE_ZERO("pref_spaceOnZero", 0, 4),
|
||||
KEY_REMAP("pref_keyMap", 0, 3);
|
||||
SPACE_ZERO("pref_spaceOnZero", 0, 4), // no longer in use; delete in #7
|
||||
KEY_REMAP("pref_keyMap", 0, 3); // no longer in use; delete in #7
|
||||
|
||||
public final String id;
|
||||
public final Integer defvalue;
|
||||
|
|
@ -515,10 +515,10 @@ public class T9DB {
|
|||
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
|
||||
DBSettings.SETTING.INPUT_MODE.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.KEY_REMAP.id + " INTEGER, " +
|
||||
DBSettings.SETTING.SPACE_ZERO.id + " INTEGER, " +
|
||||
DBSettings.SETTING.KEY_REMAP.id + " INTEGER, " + // no longer in use; delete in #7
|
||||
DBSettings.SETTING.SPACE_ZERO.id + " INTEGER, " + // no longer in use; delete in #7
|
||||
DBSettings.SETTING.LAST_WORD.id + " TEXT )");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package io.github.sspanak.tt9;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.inputmethodservice.InputMethodService;
|
||||
import android.inputmethodservice.KeyboardView;
|
||||
import android.os.Handler;
|
||||
|
|
@ -47,9 +46,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
private boolean mGaveUpdateWarn = false;
|
||||
|
||||
private boolean mFirstPress = false;
|
||||
private boolean keyRemap = false;
|
||||
|
||||
private boolean spaceOnZero = false;
|
||||
|
||||
private boolean mIgnoreDPADKeyUp = false;
|
||||
private KeyEvent mDPADkeyEvent = null;
|
||||
|
|
@ -95,8 +91,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
|
||||
private InputConnection currentInputConnection = null;
|
||||
|
||||
private Toast modeNotification = null;
|
||||
|
||||
/**
|
||||
* Main initialization of the input method component. Be sure to call to
|
||||
* super class.
|
||||
|
|
@ -268,9 +262,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
// if (interfacehandler != null) {
|
||||
// interfacehandler.hideView();
|
||||
// }
|
||||
// Get keyMap setting:
|
||||
Object[] setting = db.getSettings(new SETTING[] {SETTING.KEY_REMAP} );
|
||||
keyRemap = setting[0].equals(1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -284,12 +275,13 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
// get settings
|
||||
Object[] settings = db.getSettings(new SETTING[] {
|
||||
// 0, 1, 2,
|
||||
// "2" is no longer in use; delete in #7
|
||||
SETTING.LANG_SUPPORT, SETTING.LAST_LANG, SETTING.MODE_NOTIFY,
|
||||
// 3, 4, 5
|
||||
// "5" is no longer in use; delete in #7
|
||||
SETTING.INPUT_MODE, SETTING.LAST_WORD, SETTING.SPACE_ZERO
|
||||
});
|
||||
|
||||
spaceOnZero = settings[5].equals(1);
|
||||
mLangsAvailable = LangHelper.buildLangs((Integer)settings[0]);
|
||||
mLang = sanitizeLang(LANGUAGE.get((Integer)settings[1]));
|
||||
|
||||
|
|
@ -299,14 +291,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
|
||||
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
|
||||
// text being edited.
|
||||
switch (inputField.inputType & InputType.TYPE_MASK_CLASS) {
|
||||
|
|
@ -394,15 +378,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
onText(prevword);
|
||||
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
|
||||
|
|
@ -413,9 +388,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
mSuggestionStrings.clear();
|
||||
mSuggestionInts.clear();
|
||||
mSuggestionSym.clear();
|
||||
if (interfacehandler != null) {
|
||||
interfacehandler.midButtonUpdate(false);
|
||||
}
|
||||
|
||||
updateKeyMode();
|
||||
// show Window()?
|
||||
|
|
@ -598,28 +570,13 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
* the app.
|
||||
*/
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
// Translate key
|
||||
KeyEvent key = TranslateKey(keyCode, event);
|
||||
if (key != null) {
|
||||
keyCode = key.getKeyCode();
|
||||
event = key;
|
||||
public boolean onKeyDown(int inputKeyCode, KeyEvent inputEvent) {
|
||||
KeyEvent event = TranslateKey(inputKeyCode, inputEvent);
|
||||
if (event != null) {
|
||||
return onKeyDown_(event.getKeyCode(), event);
|
||||
}
|
||||
|
||||
if (!onKeyDown_(keyCode, event)) {
|
||||
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;
|
||||
return onKeyDown_(inputKeyCode, inputEvent);
|
||||
}
|
||||
|
||||
protected void launchOptions() {
|
||||
|
|
@ -792,28 +749,13 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
* the app.
|
||||
*/
|
||||
@Override
|
||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||
// Translate key
|
||||
KeyEvent key = TranslateKey(keyCode, event);
|
||||
if (key != null) {
|
||||
keyCode = key.getKeyCode();
|
||||
event = key;
|
||||
public boolean onKeyUp(int inputKeyCode, KeyEvent inputEvent) {
|
||||
KeyEvent event = TranslateKey(inputKeyCode, inputEvent);
|
||||
if (event != null) {
|
||||
return onKeyUp_(event.getKeyCode(), event);
|
||||
}
|
||||
|
||||
if (!onKeyUp_(keyCode, event)) {
|
||||
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;
|
||||
return onKeyUp_(inputKeyCode, inputEvent);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -822,7 +764,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
// private void commitTyped() { commitTyped(getCurrentInputConnection()); }
|
||||
private void commitTyped() {
|
||||
if (interfacehandler != null) {
|
||||
interfacehandler.midButtonUpdate(false);
|
||||
interfacehandler.showNotFound(false);
|
||||
}
|
||||
|
||||
|
|
@ -1054,9 +995,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
final int length2 = mComposingI.length();
|
||||
if (mKeyMode == MODE_TEXT) {
|
||||
charReset();
|
||||
if (interfacehandler != null) {
|
||||
interfacehandler.midButtonUpdate(false);
|
||||
}
|
||||
setCandidatesViewShown(false);
|
||||
}
|
||||
//Log.d("handleBS", "Stage1: (" + length + "," + length2 + ")");
|
||||
|
|
@ -1083,7 +1021,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
//Log.d("handleBS", "resetting thing");
|
||||
mComposing.setLength(0);
|
||||
mComposingI.setLength(0);
|
||||
interfacehandler.midButtonUpdate(false);
|
||||
interfacehandler.showNotFound(false);
|
||||
mSuggestionStrings.clear();
|
||||
mPreviousWord = "";
|
||||
|
|
@ -1112,8 +1049,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
currentInputConnection.setComposingText(mComposing, 1);
|
||||
}
|
||||
updateKeyMode();
|
||||
if (modeNotification != null)
|
||||
modeNotify(getResources().getStringArray(R.array.capsMode)[mCapsMode]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1125,18 +1060,13 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
switch (mKeyMode) {
|
||||
case MODE_LANG:
|
||||
// it begins
|
||||
// take note of spaceOnZero
|
||||
if (keyCode == KeyEvent.KEYCODE_POUND ||
|
||||
( spaceOnZero && (keyCode == KeyEvent.KEYCODE_0) )) {
|
||||
if (keyCode == KeyEvent.KEYCODE_POUND || keyCode == KeyEvent.KEYCODE_0) {
|
||||
if (mComposing.length() > 0) {
|
||||
commitTyped();
|
||||
}
|
||||
onText(" ");
|
||||
} else {
|
||||
// do things
|
||||
if (interfacehandler != null) {
|
||||
interfacehandler.midButtonUpdate(true);
|
||||
}
|
||||
keyCode = keyCode - KeyEvent.KEYCODE_0;
|
||||
mComposingI.append(keyCode);
|
||||
updateCandidates();
|
||||
|
|
@ -1152,12 +1082,10 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
keyCode = keyCode - KeyEvent.KEYCODE_0;
|
||||
}
|
||||
// special translation of that keyCode (which is now T9TABLE index
|
||||
if (spaceOnZero) {
|
||||
if (keyCode == 0)
|
||||
keyCode = 11;
|
||||
if (keyCode == 10)
|
||||
keyCode = 12;
|
||||
}
|
||||
if (keyCode == 0)
|
||||
keyCode = 11;
|
||||
if (keyCode == 10)
|
||||
keyCode = 12;
|
||||
//Log.d("handleChar", "Key: " + keyCode + "Previous Key: " + mPrevious + " Index:" + mCharIndex);
|
||||
|
||||
boolean newChar = false;
|
||||
|
|
@ -1247,12 +1175,12 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
} else {
|
||||
if (mKeyMode != MODE_NUM && mComposing.length() > 0) {
|
||||
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
|
||||
mCandidateView.scrollSuggestion(1);
|
||||
mCandidateView.scrollToSuggestion(1);
|
||||
if (mSuggestionStrings.size() > mCandidateView.mSelectedIndex)
|
||||
currentInputConnection.setComposingText(mSuggestionStrings.get(mCandidateView.mSelectedIndex), 1);
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
|
||||
mCandidateView.scrollSuggestion(-1);
|
||||
mCandidateView.scrollToSuggestion(-1);
|
||||
if (mSuggestionStrings.size() > mCandidateView.mSelectedIndex)
|
||||
currentInputConnection.setComposingText(mSuggestionStrings.get(mCandidateView.mSelectedIndex), 1);
|
||||
return true;
|
||||
|
|
@ -1319,15 +1247,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
}
|
||||
updateKeyMode();
|
||||
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() {
|
||||
|
|
@ -1337,9 +1256,6 @@ public class TraditionalT9 extends InputMethodService implements
|
|||
}
|
||||
mLang = mLangsAvailable[mLangIndex];
|
||||
updateKeyMode();
|
||||
if (modeNotification != null) {
|
||||
modeNotify(getResources().getStringArray(R.array.pref_lang_titles)[mLang.index]);
|
||||
}
|
||||
}
|
||||
|
||||
private void resetKeyMode() {
|
||||
|
|
|
|||
|
|
@ -686,6 +686,7 @@ public class TraditionalT9Settings extends ListActivity implements
|
|||
// get settings
|
||||
Object[] settings = T9DB.getInstance(this).getSettings(new SETTING[]
|
||||
// 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});
|
||||
ListAdapter settingitems;
|
||||
try {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue