diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java index e1d3fbd9..8d1e8b7c 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java @@ -57,7 +57,7 @@ abstract public class CommandHandler extends TextEditingHandler { showTextEditingPalette(); break; case 8: - changeKeyboard(); + selectKeyboard(); break; } } @@ -99,7 +99,7 @@ abstract public class CommandHandler extends TextEditingHandler { } - public void changeKeyboard() { + public void selectKeyboard() { suggestionOps.cancelDelayedAccept(); stopVoiceInput(); UI.showChangeKeyboardDialog(this); diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java index 772fe51b..3bd95e36 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java @@ -62,10 +62,18 @@ public abstract class HotkeyHandler extends CommandHandler { return false; } + if (keyCode == settings.getKeyAddWord()) { + return onKeyAddWord(validateOnly); + } + if (keyCode == settings.getKeyCommandPalette()) { return onKeyCommandPalette(validateOnly); } + if (keyCode == settings.getKeyEditText()) { + return onKeyEditText(validateOnly); + } + if (keyCode == settings.getKeyFilterClear()) { return onKeyFilterClear(validateOnly); } @@ -91,13 +99,72 @@ public abstract class HotkeyHandler extends CommandHandler { } if (keyCode == settings.getKeyTab()) { - return onTab(validateOnly); + return onKeyTab(validateOnly); + } + + if (keyCode == settings.getKeySelectKeyboard()) { + return onKeySelectKeyboard(validateOnly); + } + + if (keyCode == settings.getKeyShowSettings()) { + return onKeyShowSettings(validateOnly); + } + + if (keyCode == settings.getKeyVoiceInput()) { + return onKeyVoiceInput(validateOnly); } return false; } + private boolean onKeyAddWord(boolean validateOnly) { + if (!isInputViewShown() || shouldBeOff()) { + return false; + } + + if (!validateOnly) { + addWord(); + } + + return true; + } + + + public boolean onKeyCommandPalette(boolean validateOnly) { + if (shouldBeOff()) { + return false; + } + + if (validateOnly) { + return true; + } + + if (mainView.isCommandPaletteShown()) { + hideCommandPalette(); + } else { + showCommandPalette(); + forceShowWindow(); + } + + return true; + } + + + private boolean onKeyEditText(boolean validateOnly) { + if (!isInputViewShown() || shouldBeOff()) { + return false; + } + + if (!validateOnly) { + showTextEditingPalette(); + forceShowWindow(); + } + + return true; + } + + public boolean onKeyMoveCursor(boolean backward) { if (textSelection.isEmpty()) { return appHacks.onMoveCursor(backward) || textField.moveCursor(backward); @@ -227,27 +294,7 @@ public abstract class HotkeyHandler extends CommandHandler { } - public boolean onKeyCommandPalette(boolean validateOnly) { - if (shouldBeOff()) { - return false; - } - - if (validateOnly) { - return true; - } - - if (mainView.isCommandPaletteShown()) { - hideCommandPalette(); - } else { - showCommandPalette(); - forceShowWindow(); - } - - return true; - } - - - public boolean onTab(boolean validateOnly) { + public boolean onKeyTab(boolean validateOnly) { if (shouldBeOff()) { return false; } @@ -264,4 +311,41 @@ public abstract class HotkeyHandler extends CommandHandler { return true; } + + + private boolean onKeySelectKeyboard(boolean validateOnly) { + if (!isInputViewShown() || shouldBeOff()) { + return false; + } + + if (!validateOnly) { + selectKeyboard(); + } + + return true; + } + + private boolean onKeyShowSettings(boolean validateOnly) { + if (!isInputViewShown() || shouldBeOff()) { + return false; + } + + if (!validateOnly) { + showSettings(); + } + + return true; + } + + private boolean onKeyVoiceInput(boolean validateOnly) { + if (!isInputViewShown() || shouldBeOff() || !voiceInputOps.isAvailable()) { + return false; + } + + if (!validateOnly) { + toggleVoiceInput(); + } + + return true; + } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java b/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java index 393ad6a1..7371af69 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java @@ -1,7 +1,7 @@ package io.github.sspanak.tt9.ime.voice; +import android.content.Context; import android.content.Intent; -import android.inputmethodservice.InputMethodService; import android.os.Build; import android.speech.RecognizerIntent; import android.speech.SpeechRecognizer; @@ -20,7 +20,7 @@ public class VoiceInputOps { private final boolean isRecognitionAvailable; - private final InputMethodService ims; + private final Context ims; private Language language; private SpeechRecognizer speechRecognizer; private final VoiceListener listener; @@ -30,7 +30,7 @@ public class VoiceInputOps { public VoiceInputOps( - @NonNull InputMethodService ims, + @NonNull Context ims, Runnable onStart, ConsumerCompat onStop, ConsumerCompat onError diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/helpers/Hotkeys.java b/app/src/main/java/io/github/sspanak/tt9/preferences/helpers/Hotkeys.java index 857fe413..9849fba1 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/helpers/Hotkeys.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/helpers/Hotkeys.java @@ -6,10 +6,12 @@ import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.ViewConfiguration; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Set; import io.github.sspanak.tt9.R; +import io.github.sspanak.tt9.preferences.screens.hotkeys.SectionKeymap; import io.github.sspanak.tt9.preferences.settings.SettingsStore; public class Hotkeys { @@ -17,7 +19,7 @@ public class Hotkeys { private final Resources resources; private final String holdKeyTranslation; - private final LinkedHashMap KEYS = new LinkedHashMap<>(); + private final LinkedHashMap HARDWARE_KEYS = new LinkedHashMap<>(); public Hotkeys(Context context) { @@ -30,13 +32,13 @@ public class Hotkeys { } - public String get(String key) { - return KEYS.get(key); + public String getHardwareKeyName(String key) { + return HARDWARE_KEYS.get(key); } - public Set toSet() { - return KEYS.keySet(); + public Set getHardwareKeys() { + return HARDWARE_KEYS.keySet(); } @@ -52,31 +54,50 @@ public class Hotkeys { * Arrow keys for manipulating suggestions are also assigned only if available. */ public static void setDefault(SettingsStore settings) { - int backspace = KeyEvent.KEYCODE_BACK; + HashMap defaultKeys = new HashMap<>(); + + defaultKeys.put(SectionKeymap.ITEM_ADD_WORD, KeyEvent.KEYCODE_UNKNOWN); // unassigned + + defaultKeys.put(SectionKeymap.ITEM_BACKSPACE, KeyEvent.KEYCODE_BACK); if ( KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_CLEAR) || KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DEL) || settings.isMainLayoutNumpad() ) { - backspace = 0; + defaultKeys.put(SectionKeymap.ITEM_BACKSPACE, 0); } - int clearFilter = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_DOWN) ? KeyEvent.KEYCODE_DPAD_DOWN : 0; - int filter = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_UP) ? KeyEvent.KEYCODE_DPAD_UP : 0; - int nextSuggestion = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_RIGHT) ? KeyEvent.KEYCODE_DPAD_RIGHT : 0; - int previousSuggestion = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_LEFT) ? KeyEvent.KEYCODE_DPAD_LEFT : 0; + defaultKeys.put(SectionKeymap.ITEM_COMMAND_PALETTE, KeyEvent.KEYCODE_STAR); + defaultKeys.put(SectionKeymap.ITEM_EDIT_TEXT, KeyEvent.KEYCODE_UNKNOWN); - settings.setDefaultKeys( - backspace, - KeyEvent.KEYCODE_STAR, - clearFilter, - filter, - previousSuggestion, - nextSuggestion, - KeyEvent.KEYCODE_POUND, - -KeyEvent.KEYCODE_POUND, // negative means "hold" - KeyEvent.KEYCODE_UNKNOWN // unassigned + defaultKeys.put( + SectionKeymap.ITEM_FILTER_CLEAR, + KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_DOWN) ? KeyEvent.KEYCODE_DPAD_DOWN : 0 ); + + defaultKeys.put( + SectionKeymap.ITEM_FILTER_SUGGESTIONS, + KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_UP) ? KeyEvent.KEYCODE_DPAD_UP : 0 + ); + + defaultKeys.put( + SectionKeymap.ITEM_PREVIOUS_SUGGESTION, + KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_LEFT) ? KeyEvent.KEYCODE_DPAD_LEFT : 0 + ); + + defaultKeys.put( + SectionKeymap.ITEM_NEXT_SUGGESTION, + KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_DPAD_RIGHT) ? KeyEvent.KEYCODE_DPAD_RIGHT : 0 + ); + + defaultKeys.put(SectionKeymap.ITEM_NEXT_INPUT_MODE, KeyEvent.KEYCODE_POUND); + defaultKeys.put(SectionKeymap.ITEM_NEXT_LANGUAGE, -KeyEvent.KEYCODE_POUND); // negative means "hold" + defaultKeys.put(SectionKeymap.ITEM_TAB, KeyEvent.KEYCODE_UNKNOWN); + defaultKeys.put(SectionKeymap.ITEM_SELECT_KEYBOARD, KeyEvent.KEYCODE_UNKNOWN); + defaultKeys.put(SectionKeymap.ITEM_SHOW_SETTINGS, KeyEvent.KEYCODE_UNKNOWN); + defaultKeys.put(SectionKeymap.ITEM_VOICE_INPUT, KeyEvent.KEYCODE_UNKNOWN); + + settings.setDefaultKeys(defaultKeys); } @@ -111,10 +132,10 @@ public class Hotkeys { * No validation will be performed. */ private void add(int code, String name, boolean allowHold) { - KEYS.put(String.valueOf(code), name); + HARDWARE_KEYS.put(String.valueOf(code), name); if (allowHold) { - KEYS.put(String.valueOf(-code), name + " " + holdKeyTranslation); + HARDWARE_KEYS.put(String.valueOf(-code), name + " " + holdKeyTranslation); } } diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/HotkeysScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/HotkeysScreen.java index 752c1c81..faf6af05 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/HotkeysScreen.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/HotkeysScreen.java @@ -20,8 +20,10 @@ public class HotkeysScreen extends BaseScreenFragment { @Override public void onCreate() { DropDownPreference[] dropDowns = { + findPreference(SectionKeymap.ITEM_ADD_WORD), findPreference(SectionKeymap.ITEM_BACKSPACE), findPreference(SectionKeymap.ITEM_COMMAND_PALETTE), + findPreference(SectionKeymap.ITEM_EDIT_TEXT), findPreference(SectionKeymap.ITEM_FILTER_CLEAR), findPreference(SectionKeymap.ITEM_FILTER_SUGGESTIONS), findPreference(SectionKeymap.ITEM_PREVIOUS_SUGGESTION), @@ -29,6 +31,9 @@ public class HotkeysScreen extends BaseScreenFragment { findPreference(SectionKeymap.ITEM_NEXT_INPUT_MODE), findPreference(SectionKeymap.ITEM_NEXT_LANGUAGE), findPreference(SectionKeymap.ITEM_TAB), + findPreference(SectionKeymap.ITEM_SELECT_KEYBOARD), + findPreference(SectionKeymap.ITEM_SHOW_SETTINGS), + findPreference(SectionKeymap.ITEM_VOICE_INPUT), }; SectionKeymap section = new SectionKeymap(Arrays.asList(dropDowns), activity); section.populate().activate(); diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/SectionKeymap.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/SectionKeymap.java index 364d3536..8924e672 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/SectionKeymap.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/SectionKeymap.java @@ -6,14 +6,17 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Objects; +import io.github.sspanak.tt9.ime.voice.VoiceInputOps; import io.github.sspanak.tt9.preferences.PreferencesActivity; import io.github.sspanak.tt9.preferences.helpers.Hotkeys; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.util.Logger; public class SectionKeymap { + public static final String ITEM_ADD_WORD = "key_add_word"; public static final String ITEM_BACKSPACE = "key_backspace"; public static final String ITEM_COMMAND_PALETTE = "key_command_palette"; + public static final String ITEM_EDIT_TEXT = "key_edit_text"; public static final String ITEM_FILTER_CLEAR = "key_filter_clear"; public static final String ITEM_FILTER_SUGGESTIONS = "key_filter_suggestions"; public static final String ITEM_PREVIOUS_SUGGESTION = "key_previous_suggestion"; @@ -21,16 +24,21 @@ public class SectionKeymap { public static final String ITEM_NEXT_INPUT_MODE = "key_next_input_mode"; public static final String ITEM_NEXT_LANGUAGE = "key_next_language"; public static final String ITEM_TAB = "key_tab"; + public static final String ITEM_SELECT_KEYBOARD = "key_select_keyboard"; + public static final String ITEM_SHOW_SETTINGS = "key_show_settings"; + public static final String ITEM_VOICE_INPUT = "key_voice_input"; private final Hotkeys hotkeys; private final Collection items; private final SettingsStore settings; + private final boolean isVoiceInputAvailable; public SectionKeymap(Collection dropDowns, PreferencesActivity activity) { items = dropDowns; hotkeys = new Hotkeys(activity); this.settings = activity.getSettings(); + isVoiceInputAvailable = new VoiceInputOps(activity, null, null, null).isAvailable(); } @@ -74,7 +82,7 @@ public class SectionKeymap { } ArrayList keys = new ArrayList<>(); - for (String key : hotkeys.toSet()) { + for (String key : hotkeys.getHardwareKeys()) { if ( validateKey(dropDown, String.valueOf(key)) // backspace works both when pressed short and long, @@ -87,7 +95,7 @@ public class SectionKeymap { ArrayList values = new ArrayList<>(); for (String key : keys) { - values.add(hotkeys.get(key)); + values.add(hotkeys.getHardwareKeyName(key)); } dropDown.setEntries(values.toArray(new CharSequence[0])); @@ -124,7 +132,11 @@ public class SectionKeymap { return; } - dropDown.setSummary(hotkeys.get(key)); + dropDown.setSummary(hotkeys.getHardwareKeyName(key)); + + if (dropDown.getKey().equals(ITEM_VOICE_INPUT)) { + dropDown.setVisible(isVoiceInputAvailable); + } } diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHotkeys.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHotkeys.java index db03c71b..d5d2d1a9 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHotkeys.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHotkeys.java @@ -3,38 +3,23 @@ package io.github.sspanak.tt9.preferences.settings; import android.content.Context; import android.view.KeyEvent; +import java.util.HashMap; + import io.github.sspanak.tt9.preferences.screens.hotkeys.SectionKeymap; class SettingsHotkeys extends SettingsHacks { SettingsHotkeys(Context context) { super(context); } public boolean areHotkeysInitialized() { - return !prefs.getBoolean("hotkeys_v2_initialized", false); + return !prefs.getBoolean("hotkeys_v3_initialized", false); } - public void setDefaultKeys( - int backspace, - int comandPalette, - int filterClear, - int filterSuggestions, - int previousSuggestion, - int nextSuggestion, - int nextInputMode, - int nextLanguage, - int tab - ) { - prefsEditor - .putString(SectionKeymap.ITEM_BACKSPACE, String.valueOf(backspace)) - .putString(SectionKeymap.ITEM_COMMAND_PALETTE, String.valueOf(comandPalette)) - .putString(SectionKeymap.ITEM_FILTER_CLEAR, String.valueOf(filterClear)) - .putString(SectionKeymap.ITEM_FILTER_SUGGESTIONS, String.valueOf(filterSuggestions)) - .putString(SectionKeymap.ITEM_PREVIOUS_SUGGESTION, String.valueOf(previousSuggestion)) - .putString(SectionKeymap.ITEM_NEXT_SUGGESTION, String.valueOf(nextSuggestion)) - .putString(SectionKeymap.ITEM_NEXT_INPUT_MODE, String.valueOf(nextInputMode)) - .putString(SectionKeymap.ITEM_NEXT_LANGUAGE, String.valueOf(nextLanguage)) - .putString(SectionKeymap.ITEM_TAB, String.valueOf(tab)) - .putBoolean("hotkeys_v2_initialized", true) - .apply(); + public void setDefaultKeys(HashMap defaultKeys) { + for (String key : defaultKeys.keySet()) { + prefsEditor.putString(key, String.valueOf(defaultKeys.get(key))); + } + + prefsEditor.putBoolean("hotkeys_v3_initialized", true).apply(); } @@ -43,9 +28,18 @@ class SettingsHotkeys extends SettingsHacks { } + public int getKeyAddWord() { + return getFunctionKey(SectionKeymap.ITEM_ADD_WORD); + } public int getKeyBackspace() { return getFunctionKey(SectionKeymap.ITEM_BACKSPACE); } + public int getKeyCommandPalette() { + return getFunctionKey(SectionKeymap.ITEM_COMMAND_PALETTE); + } + public int getKeyEditText() { + return getFunctionKey(SectionKeymap.ITEM_EDIT_TEXT); + } public int getKeyFilterClear() { return getFunctionKey(SectionKeymap.ITEM_FILTER_CLEAR); } @@ -64,10 +58,16 @@ class SettingsHotkeys extends SettingsHacks { public int getKeyNextLanguage() { return getFunctionKey(SectionKeymap.ITEM_NEXT_LANGUAGE); } - public int getKeyCommandPalette() { - return getFunctionKey(SectionKeymap.ITEM_COMMAND_PALETTE); - } public int getKeyTab() { return getFunctionKey(SectionKeymap.ITEM_TAB); } + public int getKeySelectKeyboard() { + return getFunctionKey(SectionKeymap.ITEM_SELECT_KEYBOARD); + } + public int getKeyShowSettings() { + return getFunctionKey(SectionKeymap.ITEM_SHOW_SETTINGS); + } + public int getKeyVoiceInput() { + return getFunctionKey(SectionKeymap.ITEM_VOICE_INPUT); + } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftInputModeKey.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftInputModeKey.java index 429ff3f4..6630d5f9 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftInputModeKey.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftInputModeKey.java @@ -25,7 +25,7 @@ public class SoftInputModeKey extends SoftKey { if (validateTT9Handler()) { vibrate(Vibration.getHoldVibration()); - tt9.changeKeyboard(); + tt9.selectKeyboard(); } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyLF2.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyLF2.java index 462e09b8..aa3c92b7 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyLF2.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyLF2.java @@ -24,7 +24,7 @@ public class SoftKeyLF2 extends SoftKey { @Override protected boolean handleRelease() { - return validateTT9Handler() && tt9.onTab(false); + return validateTT9Handler() && tt9.onKeyTab(false); } @Override diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index e48fd3f3..794fe516 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -66,9 +66,11 @@ Зареди Дарете Ако харесвате %1$s, подкрепете разработката му на: %2$s. + Редактиране на текст Триене на текст Речникови известия Получавайте известия за обновления на речника и за прогреса при зареждане. + Добавяне на дума Списък с команди Изчистване на филтър Филтриране на думи @@ -76,6 +78,7 @@ Следваща дума Следващ eзик Режим на писане + Настройки Възстанови стандартните бутони Възстановени са стандартните „бързи“ бутони. Състояние @@ -148,4 +151,6 @@ В средата Вляво Вдясно + Избор на клавиатура + Гласово въвеждане diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 60758461..7821af36 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -141,4 +141,5 @@ In der Mitte Links Rechts + Tastaturauswahl diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a1b92736..8cd94b36 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -83,6 +83,8 @@ Sugerencia siguiente Idioma siguiente Modo de ingreso + Agregar palabra + Mostrar configuración Restaurar valores de teclas por defecto Valores de teclas por defecto restaurados %1$s está habilitado @@ -148,4 +150,5 @@ En el centro A la izquierda A la derecha + Cambiar el teclado diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index cf0f900d..83c44d1e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -76,6 +76,8 @@ Mot suivant Langue suivante Mode de saisie suivant + Ajouter un mot + Afficher les paramètres Restaurer les paramètres par défaut Paramètres par défaut sont restaurés. État @@ -146,4 +148,5 @@ Au milieu À gauche À droite + Choisir le clavier diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index c7b53568..851cf6d6 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -77,6 +77,8 @@ לחצן מחיקה לחצן למעבר לשפה הבאה לחצן מצב קלט + לחצן הוספת מילה + לחצן הצגת הגדרות שחזור לחצני ברירת מחדל הגדרות ברירת המחדל שוחזרו. @@ -151,4 +153,5 @@ באמצע שמאלה ימינה + בחירת מקלדת diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index d282964d..61097946 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -86,6 +86,8 @@ Sekantis pasiūlytas žodis Rašymo kalba Rašymo būdas + Pridėti žodį + Rodyti nustatymus Atkurti numatytąsias reikšmes Numatytosios reikšmės atkurtos. @@ -157,4 +159,5 @@ Centre Kairėje Dešinėje + Keisti klaviatūrą diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 3f521377..36fc9d3a 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -139,4 +139,5 @@ In het midden Links Rechts + Toetsenbordkeuze diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 929ef1f2..bed688d5 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -72,6 +72,8 @@ Backspace Próximo Idioma Modo de Entrada + Adicionar palavra + Entrar em Configurações Restaurar Atalhos Padrão Atalhos Restaurados. @@ -151,4 +153,5 @@ No meio À esquerda À direita + Mude o teclado diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e6c63361..3aa8da11 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -75,6 +75,8 @@ Следующее слово Следующий язык Режим ввода + Добавить слово + Настройки Вернуть кнопки по умолчанию Настройки кнопок по умолчанию восстановлены. Состояние @@ -148,4 +150,5 @@ Посередине Налево Направо + Выбор клавиатуры diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index aa501f26..5a5e0ab0 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -130,6 +130,8 @@ Sonraki Tahmin Sonraki Dil Giriş Yöntemi + Kelime ekle + Ayarları Göster Varsayılan Ayarlara Geri Dön Varsayılan tuş ayarlarına dönüldü. Kırmızı düğme @@ -151,4 +153,5 @@ Ortada Sola Sağa + Klavye Seçimi diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index b153ce8e..3bbcf931 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -113,6 +113,8 @@ Наступна пропозиція Наступна мова Режим вводу + Додати слово + Показати налаштування Відновити стандартні клавіші Стандартні налаштування клавіш відновленно. @@ -159,4 +161,5 @@ Посередині Ліворуч Праворуч + Змінити клавіатуру diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9391cf81..94ab31aa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -127,14 +127,19 @@ https://www.buymeacoffee.com/sspanak www.buymeacoffee.com + Add Word Backspace Show Command List Clear Filter + Edit Text Filter Suggestions Previous Suggestion Next Suggestion Next Language Input Mode + Select Keyboard + Show Settings + Voice Input Restore Default Keys Default key settings restored. diff --git a/app/src/main/res/xml/prefs_screen_hotkeys.xml b/app/src/main/res/xml/prefs_screen_hotkeys.xml index 1fe8d1cd..73313504 100644 --- a/app/src/main/res/xml/prefs_screen_hotkeys.xml +++ b/app/src/main/res/xml/prefs_screen_hotkeys.xml @@ -2,6 +2,10 @@ + + @@ -14,6 +18,10 @@ app:key="key_filter_clear" app:title="@string/function_filter_clear" /> + + @@ -38,6 +46,18 @@ app:key="key_tab" app:title="@string/key_tab" /> + + + + + +