All commands can be assigned to hotkeys (#582)
This commit is contained in:
parent
00680e804c
commit
907bb90c64
22 changed files with 260 additions and 82 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String> onStop,
|
||||
ConsumerCompat<VoiceInputError> onError
|
||||
|
|
|
|||
|
|
@ -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<String, String> KEYS = new LinkedHashMap<>();
|
||||
private final LinkedHashMap<String, String> 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<String> toSet() {
|
||||
return KEYS.keySet();
|
||||
public Set<String> 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<String, Integer> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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<DropDownPreference> items;
|
||||
private final SettingsStore settings;
|
||||
private final boolean isVoiceInputAvailable;
|
||||
|
||||
|
||||
public SectionKeymap(Collection<DropDownPreference> 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<String> 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<String> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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<String, Integer> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class SoftInputModeKey extends SoftKey {
|
|||
|
||||
if (validateTT9Handler()) {
|
||||
vibrate(Vibration.getHoldVibration());
|
||||
tt9.changeKeyboard();
|
||||
tt9.selectKeyboard();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class SoftKeyLF2 extends SoftKey {
|
|||
|
||||
@Override
|
||||
protected boolean handleRelease() {
|
||||
return validateTT9Handler() && tt9.onTab(false);
|
||||
return validateTT9Handler() && tt9.onKeyTab(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -66,9 +66,11 @@
|
|||
<string name="dictionary_update_update">Зареди</string>
|
||||
<string name="donate_title">Дарете</string>
|
||||
<string name="donate_summary">Ако харесвате %1$s, подкрепете разработката му на: %2$s.</string>
|
||||
<string name="function_edit_text">Редактиране на текст</string>
|
||||
<string name="function_backspace">Триене на текст</string>
|
||||
<string name="dictionary_no_notifications">Речникови известия</string>
|
||||
<string name="dictionary_no_notifications_summary">Получавайте известия за обновления на речника и за прогреса при зареждане.</string>
|
||||
<string name="function_add_word">Добавяне на дума</string>
|
||||
<string name="function_show_command_palette">Списък с команди</string>
|
||||
<string name="function_filter_clear">Изчистване на филтър</string>
|
||||
<string name="function_filter_suggestions">Филтриране на думи</string>
|
||||
|
|
@ -76,6 +78,7 @@
|
|||
<string name="function_next_suggestion">Следваща дума</string>
|
||||
<string name="function_next_language">Следващ eзик</string>
|
||||
<string name="function_next_mode">Режим на писане</string>
|
||||
<string name="function_show_settings">Настройки</string>
|
||||
<string name="function_reset_keys_title">Възстанови стандартните бутони</string>
|
||||
<string name="function_reset_keys_done">Възстановени са стандартните „бързи“ бутони.</string>
|
||||
<string name="setup_keyboard_status">Състояние</string>
|
||||
|
|
@ -148,4 +151,6 @@
|
|||
<string name="virtual_numpad_alignment_center">В средата</string>
|
||||
<string name="virtual_numpad_alignment_left">Вляво</string>
|
||||
<string name="virtual_numpad_alignment_right">Вдясно</string>
|
||||
<string name="function_select_keyboard">Избор на клавиатура</string>
|
||||
<string name="function_voice_input">Гласово въвеждане</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -141,4 +141,5 @@
|
|||
<string name="virtual_numpad_alignment_center">In der Mitte</string>
|
||||
<string name="virtual_numpad_alignment_left">Links</string>
|
||||
<string name="virtual_numpad_alignment_right">Rechts</string>
|
||||
<string name="function_select_keyboard">Tastaturauswahl</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -83,6 +83,8 @@
|
|||
<string name="function_next_suggestion">Sugerencia siguiente</string>
|
||||
<string name="function_next_language">Idioma siguiente</string>
|
||||
<string name="function_next_mode">Modo de ingreso</string>
|
||||
<string name="function_add_word">Agregar palabra</string>
|
||||
<string name="function_show_settings">Mostrar configuración</string>
|
||||
<string name="function_reset_keys_title">Restaurar valores de teclas por defecto</string>
|
||||
<string name="function_reset_keys_done">Valores de teclas por defecto restaurados</string>
|
||||
<string name="setup_tt9_on">%1$s está habilitado</string>
|
||||
|
|
@ -148,4 +150,5 @@
|
|||
<string name="virtual_numpad_alignment_center">En el centro</string>
|
||||
<string name="virtual_numpad_alignment_left">A la izquierda</string>
|
||||
<string name="virtual_numpad_alignment_right">A la derecha</string>
|
||||
<string name="function_select_keyboard">Cambiar el teclado</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -76,6 +76,8 @@
|
|||
<string name="function_next_suggestion">Mot suivant</string>
|
||||
<string name="function_next_language">Langue suivante</string>
|
||||
<string name="function_next_mode">Mode de saisie suivant</string>
|
||||
<string name="function_add_word">Ajouter un mot</string>
|
||||
<string name="function_show_settings">Afficher les paramètres</string>
|
||||
<string name="function_reset_keys_title">Restaurer les paramètres par défaut</string>
|
||||
<string name="function_reset_keys_done">Paramètres par défaut sont restaurés.</string>
|
||||
<string name="setup_keyboard_status">État</string>
|
||||
|
|
@ -146,4 +148,5 @@
|
|||
<string name="virtual_numpad_alignment_center">Au milieu</string>
|
||||
<string name="virtual_numpad_alignment_left">À gauche</string>
|
||||
<string name="virtual_numpad_alignment_right">À droite</string>
|
||||
<string name="function_select_keyboard">Choisir le clavier</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@
|
|||
<string name="function_backspace">לחצן מחיקה</string>
|
||||
<string name="function_next_language">לחצן למעבר לשפה הבאה</string>
|
||||
<string name="function_next_mode">לחצן מצב קלט</string>
|
||||
<string name="function_add_word">לחצן הוספת מילה</string>
|
||||
<string name="function_show_settings">לחצן הצגת הגדרות</string>
|
||||
<string name="function_reset_keys_title">שחזור לחצני ברירת מחדל</string>
|
||||
<string name="function_reset_keys_done">הגדרות ברירת המחדל שוחזרו.</string>
|
||||
|
||||
|
|
@ -151,4 +153,5 @@
|
|||
<string name="virtual_numpad_alignment_center">באמצע</string>
|
||||
<string name="virtual_numpad_alignment_left">שמאלה</string>
|
||||
<string name="virtual_numpad_alignment_right">ימינה</string>
|
||||
<string name="function_select_keyboard">בחירת מקלדת</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -86,6 +86,8 @@
|
|||
<string name="function_next_suggestion">Sekantis pasiūlytas žodis</string>
|
||||
<string name="function_next_language">Rašymo kalba</string>
|
||||
<string name="function_next_mode">Rašymo būdas</string>
|
||||
<string name="function_add_word">Pridėti žodį</string>
|
||||
<string name="function_show_settings">Rodyti nustatymus</string>
|
||||
<string name="function_reset_keys_title">Atkurti numatytąsias reikšmes</string>
|
||||
<string name="function_reset_keys_done">Numatytosios reikšmės atkurtos.</string>
|
||||
|
||||
|
|
@ -157,4 +159,5 @@
|
|||
<string name="virtual_numpad_alignment_center">Centre</string>
|
||||
<string name="virtual_numpad_alignment_left">Kairėje</string>
|
||||
<string name="virtual_numpad_alignment_right">Dešinėje</string>
|
||||
<string name="function_select_keyboard">Keisti klaviatūrą</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -139,4 +139,5 @@
|
|||
<string name="virtual_numpad_alignment_center">In het midden</string>
|
||||
<string name="virtual_numpad_alignment_left">Links</string>
|
||||
<string name="virtual_numpad_alignment_right">Rechts</string>
|
||||
<string name="function_select_keyboard">Toetsenbordkeuze</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@
|
|||
<string name="function_backspace">Backspace</string>
|
||||
<string name="function_next_language">Próximo Idioma</string>
|
||||
<string name="function_next_mode">Modo de Entrada</string>
|
||||
<string name="function_add_word">Adicionar palavra</string>
|
||||
<string name="function_show_settings">Entrar em Configurações</string>
|
||||
<string name="function_reset_keys_title">Restaurar Atalhos Padrão</string>
|
||||
<string name="function_reset_keys_done">Atalhos Restaurados.</string>
|
||||
|
||||
|
|
@ -151,4 +153,5 @@
|
|||
<string name="virtual_numpad_alignment_center">No meio</string>
|
||||
<string name="virtual_numpad_alignment_left">À esquerda</string>
|
||||
<string name="virtual_numpad_alignment_right">À direita</string>
|
||||
<string name="function_select_keyboard">Mude o teclado</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -75,6 +75,8 @@
|
|||
<string name="function_next_suggestion">Следующее слово</string>
|
||||
<string name="function_next_language">Следующий язык</string>
|
||||
<string name="function_next_mode">Режим ввода</string>
|
||||
<string name="function_add_word">Добавить слово</string>
|
||||
<string name="function_show_settings">Настройки</string>
|
||||
<string name="function_reset_keys_title">Вернуть кнопки по умолчанию</string>
|
||||
<string name="function_reset_keys_done">Настройки кнопок по умолчанию восстановлены.</string>
|
||||
<string name="setup_keyboard_status">Состояние</string>
|
||||
|
|
@ -148,4 +150,5 @@
|
|||
<string name="virtual_numpad_alignment_center">Посередине</string>
|
||||
<string name="virtual_numpad_alignment_left">Налево</string>
|
||||
<string name="virtual_numpad_alignment_right">Направо</string>
|
||||
<string name="function_select_keyboard">Выбор клавиатуры</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -130,6 +130,8 @@
|
|||
<string name="function_next_suggestion">Sonraki Tahmin</string>
|
||||
<string name="function_next_language">Sonraki Dil</string>
|
||||
<string name="function_next_mode">Giriş Yöntemi</string>
|
||||
<string name="function_add_word">Kelime ekle</string>
|
||||
<string name="function_show_settings">Ayarları Göster</string>
|
||||
<string name="function_reset_keys_title">Varsayılan Ayarlara Geri Dön</string>
|
||||
<string name="function_reset_keys_done">Varsayılan tuş ayarlarına dönüldü.</string>
|
||||
<string name="key_red">Kırmızı düğme</string>
|
||||
|
|
@ -151,4 +153,5 @@
|
|||
<string name="virtual_numpad_alignment_center">Ortada</string>
|
||||
<string name="virtual_numpad_alignment_left">Sola</string>
|
||||
<string name="virtual_numpad_alignment_right">Sağa</string>
|
||||
<string name="function_select_keyboard">Klavye Seçimi</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -113,6 +113,8 @@
|
|||
<string name="function_next_suggestion">Наступна пропозиція</string>
|
||||
<string name="function_next_language">Наступна мова</string>
|
||||
<string name="function_next_mode">Режим вводу</string>
|
||||
<string name="function_add_word">Додати слово</string>
|
||||
<string name="function_show_settings">Показати налаштування</string>
|
||||
<string name="function_reset_keys_title">Відновити стандартні клавіші</string>
|
||||
<string name="function_reset_keys_done">Стандартні налаштування клавіш відновленно.</string>
|
||||
|
||||
|
|
@ -159,4 +161,5 @@
|
|||
<string name="virtual_numpad_alignment_center">Посередині</string>
|
||||
<string name="virtual_numpad_alignment_left">Ліворуч</string>
|
||||
<string name="virtual_numpad_alignment_right">Праворуч</string>
|
||||
<string name="function_select_keyboard">Змінити клавіатуру</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -127,14 +127,19 @@
|
|||
<string name="donate_url" translatable="false">https://www.buymeacoffee.com/sspanak</string>
|
||||
<string name="donate_url_short" translatable="false">www.buymeacoffee.com</string>
|
||||
|
||||
<string name="function_add_word">Add Word</string>
|
||||
<string name="function_backspace">Backspace</string>
|
||||
<string name="function_show_command_palette">Show Command List</string>
|
||||
<string name="function_filter_clear">Clear Filter</string>
|
||||
<string name="function_edit_text">Edit Text</string>
|
||||
<string name="function_filter_suggestions">Filter Suggestions</string>
|
||||
<string name="function_previous_suggestion">Previous Suggestion</string>
|
||||
<string name="function_next_suggestion">Next Suggestion</string>
|
||||
<string name="function_next_language">Next Language</string>
|
||||
<string name="function_next_mode">Input Mode</string>
|
||||
<string name="function_select_keyboard">Select Keyboard</string>
|
||||
<string name="function_show_settings">Show Settings</string>
|
||||
<string name="function_voice_input">Voice Input</string>
|
||||
<string name="function_reset_keys_title">Restore Default Keys</string>
|
||||
<string name="function_reset_keys_done">Default key settings restored.</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@
|
|||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:orderingFromXml="true">
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_add_word"
|
||||
app:title="@string/function_add_word" />
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_backspace"
|
||||
app:title="@string/function_backspace" />
|
||||
|
|
@ -14,6 +18,10 @@
|
|||
app:key="key_filter_clear"
|
||||
app:title="@string/function_filter_clear" />
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_edit_text"
|
||||
app:title="@string/function_edit_text" />
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_filter_suggestions"
|
||||
app:title="@string/function_filter_suggestions" />
|
||||
|
|
@ -38,6 +46,18 @@
|
|||
app:key="key_tab"
|
||||
app:title="@string/key_tab" />
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_select_keyboard"
|
||||
app:title="@string/function_select_keyboard" />
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_show_settings"
|
||||
app:title="@string/function_show_settings" />
|
||||
|
||||
<DropDownPreference
|
||||
app:key="key_voice_input"
|
||||
app:title="@string/function_voice_input" />
|
||||
|
||||
<Preference
|
||||
app:key="reset_keys"
|
||||
app:title="@string/function_reset_keys_title" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue