Undo/Redo (#777)
This commit is contained in:
parent
94f3ffd9a8
commit
9998cd3c53
32 changed files with 312 additions and 107 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
package io.github.sspanak.tt9.ime;
|
package io.github.sspanak.tt9.ime;
|
||||||
|
|
||||||
|
import android.view.KeyEvent;
|
||||||
|
|
||||||
import io.github.sspanak.tt9.R;
|
import io.github.sspanak.tt9.R;
|
||||||
import io.github.sspanak.tt9.db.DataStore;
|
import io.github.sspanak.tt9.db.DataStore;
|
||||||
import io.github.sspanak.tt9.db.words.DictionaryLoader;
|
import io.github.sspanak.tt9.db.words.DictionaryLoader;
|
||||||
|
|
@ -57,9 +59,15 @@ abstract public class CommandHandler extends TextEditingHandler {
|
||||||
case 3:
|
case 3:
|
||||||
toggleVoiceInput();
|
toggleVoiceInput();
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
undo();
|
||||||
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
showTextEditingPalette();
|
showTextEditingPalette();
|
||||||
break;
|
break;
|
||||||
|
case 6:
|
||||||
|
redo();
|
||||||
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
selectKeyboard();
|
selectKeyboard();
|
||||||
break;
|
break;
|
||||||
|
|
@ -250,4 +258,14 @@ abstract public class CommandHandler extends TextEditingHandler {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected boolean undo() {
|
||||||
|
return textField.sendDownUpKeyEvents(KeyEvent.KEYCODE_Z, false, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected boolean redo() {
|
||||||
|
return textField.sendDownUpKeyEvents(KeyEvent.KEYCODE_Z, true, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,14 @@ public abstract class HotkeyHandler extends CommandHandler {
|
||||||
return onKeyShowSettings(validateOnly);
|
return onKeyShowSettings(validateOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (keyCode == settings.getKeyUndo()) {
|
||||||
|
return onKeyUndo(validateOnly);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keyCode == settings.getKeyRedo()) {
|
||||||
|
return onKeyRedo(validateOnly);
|
||||||
|
}
|
||||||
|
|
||||||
if (keyCode == settings.getKeyVoiceInput()) {
|
if (keyCode == settings.getKeyVoiceInput()) {
|
||||||
return onKeyVoiceInput(validateOnly);
|
return onKeyVoiceInput(validateOnly);
|
||||||
}
|
}
|
||||||
|
|
@ -416,6 +424,24 @@ public abstract class HotkeyHandler extends CommandHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean onKeyUndo(boolean validateOnly) {
|
||||||
|
if (!isInputViewShown() || shouldBeOff()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return validateOnly || undo();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean onKeyRedo(boolean validateOnly) {
|
||||||
|
if (!isInputViewShown() || shouldBeOff()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return validateOnly || redo();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean onKeyVoiceInput(boolean validateOnly) {
|
private boolean onKeyVoiceInput(boolean validateOnly) {
|
||||||
if (!isInputViewShown() || shouldBeOff() || !voiceInputOps.isAvailable()) {
|
if (!isInputViewShown() || shouldBeOff() || !voiceInputOps.isAvailable()) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import android.view.KeyEvent;
|
||||||
import io.github.sspanak.tt9.util.Logger;
|
import io.github.sspanak.tt9.util.Logger;
|
||||||
|
|
||||||
public class SettingsHotkeys extends SettingsUI {
|
public class SettingsHotkeys extends SettingsUI {
|
||||||
private static final String HOTKEY_VERSION = "hotkeys_v5";
|
private static final String HOTKEY_VERSION = "hotkeys_v6";
|
||||||
|
|
||||||
public static final String FUNC_ADD_WORD = "key_add_word";
|
public static final String FUNC_ADD_WORD = "key_add_word";
|
||||||
public static final String FUNC_BACKSPACE = "key_backspace";
|
public static final String FUNC_BACKSPACE = "key_backspace";
|
||||||
|
|
@ -23,6 +23,8 @@ public class SettingsHotkeys extends SettingsUI {
|
||||||
public static final String FUNC_SHIFT = "key_shift";
|
public static final String FUNC_SHIFT = "key_shift";
|
||||||
public static final String FUNC_SPACE_KOREAN = "key_space_korean";
|
public static final String FUNC_SPACE_KOREAN = "key_space_korean";
|
||||||
public static final String FUNC_SHOW_SETTINGS = "key_show_settings";
|
public static final String FUNC_SHOW_SETTINGS = "key_show_settings";
|
||||||
|
public static final String FUNC_UNDO = "key_undo";
|
||||||
|
public static final String FUNC_REDO = "key_redo";
|
||||||
public static final String FUNC_VOICE_INPUT = "key_voice_input";
|
public static final String FUNC_VOICE_INPUT = "key_voice_input";
|
||||||
|
|
||||||
public static final String[] FUNCTIONS = {
|
public static final String[] FUNCTIONS = {
|
||||||
|
|
@ -40,6 +42,8 @@ public class SettingsHotkeys extends SettingsUI {
|
||||||
FUNC_SHIFT,
|
FUNC_SHIFT,
|
||||||
FUNC_SPACE_KOREAN,
|
FUNC_SPACE_KOREAN,
|
||||||
FUNC_SHOW_SETTINGS,
|
FUNC_SHOW_SETTINGS,
|
||||||
|
FUNC_UNDO,
|
||||||
|
FUNC_REDO,
|
||||||
FUNC_VOICE_INPUT,
|
FUNC_VOICE_INPUT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -62,7 +66,7 @@ public class SettingsHotkeys extends SettingsUI {
|
||||||
*/
|
*/
|
||||||
public void setDefaultKeys() {
|
public void setDefaultKeys() {
|
||||||
// no default keys
|
// no default keys
|
||||||
String[] unassigned = { FUNC_ADD_WORD, FUNC_EDIT_TEXT, FUNC_SELECT_KEYBOARD, FUNC_SHOW_SETTINGS, FUNC_VOICE_INPUT };
|
String[] unassigned = { FUNC_ADD_WORD, FUNC_EDIT_TEXT, FUNC_SELECT_KEYBOARD, FUNC_SHOW_SETTINGS, FUNC_UNDO, FUNC_REDO, FUNC_VOICE_INPUT };
|
||||||
for (String key : unassigned) {
|
for (String key : unassigned) {
|
||||||
prefsEditor.putString(key, String.valueOf(KeyEvent.KEYCODE_UNKNOWN));
|
prefsEditor.putString(key, String.valueOf(KeyEvent.KEYCODE_UNKNOWN));
|
||||||
}
|
}
|
||||||
|
|
@ -172,6 +176,12 @@ public class SettingsHotkeys extends SettingsUI {
|
||||||
public int getKeyShowSettings() {
|
public int getKeyShowSettings() {
|
||||||
return getFunctionKey(FUNC_SHOW_SETTINGS);
|
return getFunctionKey(FUNC_SHOW_SETTINGS);
|
||||||
}
|
}
|
||||||
|
public int getKeyUndo() {
|
||||||
|
return getFunctionKey(FUNC_UNDO);
|
||||||
|
}
|
||||||
|
public int getKeyRedo() {
|
||||||
|
return getFunctionKey(FUNC_REDO);
|
||||||
|
}
|
||||||
public int getKeyVoiceInput() {
|
public int getKeyVoiceInput() {
|
||||||
return getFunctionKey(FUNC_VOICE_INPUT);
|
return getFunctionKey(FUNC_VOICE_INPUT);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
public class SoftKeyF4 extends SoftKeyFn {
|
||||||
|
public SoftKeyF4(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SoftKeyF4(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SoftKeyF4(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean handleRelease() {
|
||||||
|
return tt9 != null && tt9.onKeyUndo(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
public class SoftKeyF6 extends SoftKeyFn {
|
||||||
|
public SoftKeyF6(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SoftKeyF6(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SoftKeyF6(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean handleRelease() {
|
||||||
|
return tt9 != null && tt9.onKeyRedo(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,17 +2,26 @@ package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
import android.view.ViewParent;
|
||||||
|
import android.widget.RelativeLayout;
|
||||||
|
|
||||||
import io.github.sspanak.tt9.R;
|
|
||||||
import io.github.sspanak.tt9.languages.LanguageKind;
|
|
||||||
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
import io.github.sspanak.tt9.preferences.settings.SettingsStore;
|
||||||
import io.github.sspanak.tt9.util.chars.Characters;
|
import io.github.sspanak.tt9.util.chars.Characters;
|
||||||
|
|
||||||
public class SoftKeyPunctuation extends SoftKey {
|
abstract public class SoftKeyPunctuation extends BaseSoftKeyWithIcons {
|
||||||
public SoftKeyPunctuation(Context context) { super(context); }
|
public SoftKeyPunctuation(Context context) { super(context); }
|
||||||
public SoftKeyPunctuation(Context context, AttributeSet attrs) { super(context, attrs); }
|
public SoftKeyPunctuation(Context context, AttributeSet attrs) { super(context, attrs); }
|
||||||
public SoftKeyPunctuation(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
public SoftKeyPunctuation(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
||||||
|
|
||||||
|
|
||||||
|
abstract protected String getKeyChar();
|
||||||
|
|
||||||
|
|
||||||
|
protected boolean isTextEditingOn() {
|
||||||
|
return tt9 != null && tt9.isTextEditingActive();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
protected boolean isHiddenWhenLongSpace() {
|
protected boolean isHiddenWhenLongSpace() {
|
||||||
return
|
return
|
||||||
tt9 != null
|
tt9 != null
|
||||||
|
|
@ -21,18 +30,13 @@ public class SoftKeyPunctuation extends SoftKey {
|
||||||
&& !hasLettersOnAllKeys();
|
&& !hasLettersOnAllKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isTransparentWhenTextEditing() {
|
|
||||||
return tt9 != null && tt9.isTextEditingActive();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean handleRelease() {
|
protected boolean handleRelease() {
|
||||||
return
|
return tt9 != null && tt9.onText(getKeyChar(), false);
|
||||||
tt9 != null
|
|
||||||
&& !tt9.isTextEditingActive()
|
|
||||||
&& tt9.onText(getKeyChar(), false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getTitle() {
|
protected String getTitle() {
|
||||||
String keyChar = getKeyChar();
|
String keyChar = getKeyChar();
|
||||||
|
|
@ -44,42 +48,6 @@ public class SoftKeyPunctuation extends SoftKey {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getKeyChar() {
|
|
||||||
int keyId = getId();
|
|
||||||
if (keyId == R.id.soft_key_punctuation_1) {
|
|
||||||
return getKey1Char();
|
|
||||||
} else if (keyId == R.id.soft_key_punctuation_2) {
|
|
||||||
return getKey2Char();
|
|
||||||
}
|
|
||||||
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String getKey1Char() {
|
|
||||||
if (tt9 == null) return "";
|
|
||||||
if (tt9.isInputModePhone()) return "*";
|
|
||||||
if (tt9.isInputModeNumeric()) return ",";
|
|
||||||
|
|
||||||
if (LanguageKind.isChinese(tt9.getLanguage()) || LanguageKind.isJapanese(tt9.getLanguage())) {
|
|
||||||
return Characters.ZH_EXCLAMATION_MARK;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "!";
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String getKey2Char() {
|
|
||||||
if (tt9 == null) return "";
|
|
||||||
if (tt9.isInputModePhone()) return "#";
|
|
||||||
if (tt9.isInputModeNumeric()) return ".";
|
|
||||||
|
|
||||||
if (LanguageKind.isArabic(tt9.getLanguage())) return Characters.AR_QUESTION_MARK;
|
|
||||||
if (LanguageKind.isGreek(tt9.getLanguage())) return Characters.GR_QUESTION_MARK;
|
|
||||||
if (LanguageKind.isChinese(tt9.getLanguage()) || LanguageKind.isJapanese(tt9.getLanguage())) {
|
|
||||||
return Characters.ZH_QUESTION_MARK;
|
|
||||||
}
|
|
||||||
|
|
||||||
return "?";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setHeight(int height) {
|
public void setHeight(int height) {
|
||||||
|
|
@ -93,12 +61,12 @@ public class SoftKeyPunctuation extends SoftKey {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render() {
|
public void render() {
|
||||||
if (isHiddenWhenLongSpace()) {
|
boolean isHidden = isHiddenWhenLongSpace();
|
||||||
setVisibility(GONE);
|
setVisibility(isHidden ? GONE : VISIBLE);
|
||||||
} else if (isTransparentWhenTextEditing()) {
|
|
||||||
setVisibility(INVISIBLE);
|
ViewParent parent = getParent();
|
||||||
} else {
|
if (parent instanceof RelativeLayout) {
|
||||||
setVisibility(VISIBLE);
|
((RelativeLayout) parent).setVisibility(isHidden ? RelativeLayout.GONE : RelativeLayout.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
super.render();
|
super.render();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
import io.github.sspanak.tt9.R;
|
||||||
|
import io.github.sspanak.tt9.languages.LanguageKind;
|
||||||
|
import io.github.sspanak.tt9.util.chars.Characters;
|
||||||
|
|
||||||
|
public class SoftKeyPunctuationLeft extends SoftKeyPunctuation {
|
||||||
|
public SoftKeyPunctuationLeft(Context context) { super(context); }
|
||||||
|
public SoftKeyPunctuationLeft(Context context, AttributeSet attrs) { super(context, attrs); }
|
||||||
|
public SoftKeyPunctuationLeft(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getKeyChar() {
|
||||||
|
if (tt9 == null) return "";
|
||||||
|
if (tt9.isInputModePhone()) return "*";
|
||||||
|
if (tt9.isInputModeNumeric()) return ",";
|
||||||
|
if (tt9.isTextEditingActive()) return "↶";
|
||||||
|
|
||||||
|
if (LanguageKind.isChinese(tt9.getLanguage()) || LanguageKind.isJapanese(tt9.getLanguage())) {
|
||||||
|
return Characters.ZH_EXCLAMATION_MARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "!";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean handleRelease() {
|
||||||
|
return isTextEditingOn() ? tt9.onKeyUndo(false) : super.handleRelease();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return isTextEditingOn() ? "" : super.getTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getCentralIcon() {
|
||||||
|
return isTextEditingOn() && !isHiddenWhenLongSpace() ? R.drawable.ic_fn_undo : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
public class SoftKeyPunctuationLeftShort extends SoftKeyPunctuationLeft {
|
||||||
|
public SoftKeyPunctuationLeftShort(Context context) { super(context); }
|
||||||
|
public SoftKeyPunctuationLeftShort(Context context, AttributeSet attrs) { super(context, attrs); }
|
||||||
|
public SoftKeyPunctuationLeftShort(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
||||||
|
@Override protected boolean isHiddenWhenLongSpace() { return false; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
import io.github.sspanak.tt9.R;
|
||||||
|
import io.github.sspanak.tt9.languages.LanguageKind;
|
||||||
|
import io.github.sspanak.tt9.util.chars.Characters;
|
||||||
|
|
||||||
|
public class SoftKeyPunctuationRight extends SoftKeyPunctuation {
|
||||||
|
public SoftKeyPunctuationRight(Context context) { super(context); }
|
||||||
|
public SoftKeyPunctuationRight(Context context, AttributeSet attrs) { super(context, attrs); }
|
||||||
|
public SoftKeyPunctuationRight(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
||||||
|
|
||||||
|
protected String getKeyChar() {
|
||||||
|
if (tt9 == null) return "";
|
||||||
|
if (tt9.isInputModePhone()) return "#";
|
||||||
|
if (tt9.isInputModeNumeric()) return ".";
|
||||||
|
if (tt9.isTextEditingActive()) return "↷";
|
||||||
|
|
||||||
|
if (LanguageKind.isArabic(tt9.getLanguage())) return Characters.AR_QUESTION_MARK;
|
||||||
|
if (LanguageKind.isGreek(tt9.getLanguage())) return Characters.GR_QUESTION_MARK;
|
||||||
|
if (LanguageKind.isChinese(tt9.getLanguage()) || LanguageKind.isJapanese(tt9.getLanguage())) {
|
||||||
|
return Characters.ZH_QUESTION_MARK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "?";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean handleRelease() {
|
||||||
|
return tt9 != null && tt9.isTextEditingActive() ? tt9.onKeyRedo(false) : super.handleRelease();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTitle() {
|
||||||
|
return isTextEditingOn() ? "" : super.getTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getCentralIcon() {
|
||||||
|
return isTextEditingOn() && !isHiddenWhenLongSpace() ? R.drawable.ic_fn_redo : -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package io.github.sspanak.tt9.ui.main.keys;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
|
public class SoftKeyPunctuationRightShort extends SoftKeyPunctuationRight {
|
||||||
|
public SoftKeyPunctuationRightShort(Context context) { super(context); }
|
||||||
|
public SoftKeyPunctuationRightShort(Context context, AttributeSet attrs) { super(context, attrs); }
|
||||||
|
public SoftKeyPunctuationRightShort(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
||||||
|
@Override protected boolean isHiddenWhenLongSpace() { return false; }
|
||||||
|
}
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
package io.github.sspanak.tt9.ui.main.keys;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.AttributeSet;
|
|
||||||
|
|
||||||
import io.github.sspanak.tt9.R;
|
|
||||||
|
|
||||||
public class SoftKeyPunctuationShort extends SoftKeyPunctuation {
|
|
||||||
public SoftKeyPunctuationShort(Context context) { super(context); }
|
|
||||||
public SoftKeyPunctuationShort(Context context, AttributeSet attrs) { super(context, attrs); }
|
|
||||||
public SoftKeyPunctuationShort(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
|
|
||||||
|
|
||||||
@Override protected boolean isHiddenWhenLongSpace() { return false; }
|
|
||||||
|
|
||||||
protected String getKeyChar() {
|
|
||||||
if (!validateTT9Handler()) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
int keyId = getId();
|
|
||||||
if (keyId == R.id.soft_key_punctuation_201) {
|
|
||||||
return getKey1Char();
|
|
||||||
} else if (keyId == R.id.soft_key_punctuation_202) {
|
|
||||||
return getKey2Char();
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.getKeyChar();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
3
app/src/main/res/drawable/ic_fn_redo.xml
Normal file
3
app/src/main/res/drawable/ic_fn_redo.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M18.4,10.6C16.55,8.99 14.15,8 11.5,8c-4.65,0 -8.58,3.03 -9.96,7.22L3.9,16c1.05,-3.19 4.05,-5.5 7.6,-5.5 1.95,0 3.73,0.72 5.12,1.88L13,16h9V7l-3.6,3.6z"/>
|
||||||
|
</vector>
|
||||||
3
app/src/main/res/drawable/ic_fn_undo.xml
Normal file
3
app/src/main/res/drawable/ic_fn_undo.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="false" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12.5,8c-2.65,0 -5.05,0.99 -6.9,2.6L2,7v9h9l-3.62,-3.62c1.39,-1.16 3.16,-1.88 5.12,-1.88 3.54,0 6.55,2.31 7.6,5.5l2.37,-0.78C21.08,11.03 17.15,8 12.5,8z"/>
|
||||||
|
</vector>
|
||||||
|
|
@ -4,9 +4,12 @@
|
||||||
style="@style/TTheme.Numpad.CentralBlock.Row.LongSpacebar"
|
style="@style/TTheme.Numpad.CentralBlock.Row.LongSpacebar"
|
||||||
android:id="@+id/panel_long_spacebar">
|
android:id="@+id/panel_long_spacebar">
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationShort
|
<RelativeLayout style="@style/TTheme.Numpad.Key.ShortPunctuation.Overlay.Wrapper">
|
||||||
style="@style/TTheme.Numpad.Key.ShortPunctuation"
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationLeftShort
|
||||||
android:id="@+id/soft_key_punctuation_201" />
|
style="@style/TTheme.Numpad.Key.Number"
|
||||||
|
android:id="@+id/soft_key_punctuation_201" />
|
||||||
|
<include layout="@layout/key_overlay_icons" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<RelativeLayout style="@style/TTheme.Numpad.Key.LongSpace.Overlay.Wrapper">
|
<RelativeLayout style="@style/TTheme.Numpad.Key.LongSpace.Overlay.Wrapper">
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyNumber0Long
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyNumber0Long
|
||||||
|
|
@ -15,8 +18,11 @@
|
||||||
<include layout="@layout/key_overlay_number_hold_text" />
|
<include layout="@layout/key_overlay_number_hold_text" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationShort
|
<RelativeLayout style="@style/TTheme.Numpad.Key.ShortPunctuation.Overlay.Wrapper">
|
||||||
style="@style/TTheme.Numpad.Key.ShortPunctuation"
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationRightShort
|
||||||
android:id="@+id/soft_key_punctuation_202" />
|
style="@style/TTheme.Numpad.Key.Number"
|
||||||
|
android:id="@+id/soft_key_punctuation_202" />
|
||||||
|
<include layout="@layout/key_overlay_icons" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
<include layout="@layout/key_overlay_number_hold_text" />
|
<include layout="@layout/key_overlay_number_hold_text" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuation
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationLeft
|
||||||
style="@style/TTheme.Numpad.Key.Number"
|
style="@style/TTheme.Numpad.Key.Number"
|
||||||
android:id="@+id/soft_key_punctuation_1" />
|
android:id="@+id/soft_key_punctuation_1" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
@ -84,7 +84,7 @@
|
||||||
<include layout="@layout/key_overlay_number_hold_text" />
|
<include layout="@layout/key_overlay_number_hold_text" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuation
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationRight
|
||||||
style="@style/TTheme.Numpad.Key.Number"
|
style="@style/TTheme.Numpad.Key.Number"
|
||||||
android:id="@+id/soft_key_punctuation_2" />
|
android:id="@+id/soft_key_punctuation_2" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,12 @@
|
||||||
<include layout="@layout/key_overlay_icons" />
|
<include layout="@layout/key_overlay_icons" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuation
|
<RelativeLayout style="@style/TTheme.Numpad.Key.Overlay.Wrapper">
|
||||||
style="@style/TTheme.Numpad.Key.Large.Placeholder"
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationLeft
|
||||||
android:id="@+id/soft_key_punctuation_101" />
|
style="@style/TTheme.Numpad.Key.Number"
|
||||||
|
android:id="@+id/soft_key_punctuation_101" />
|
||||||
|
<include layout="@layout/key_overlay_icons" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
@ -95,9 +98,12 @@
|
||||||
<include layout="@layout/key_overlay_icons" />
|
<include layout="@layout/key_overlay_icons" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuation
|
<RelativeLayout style="@style/TTheme.Numpad.Key.Overlay.Wrapper">
|
||||||
style="@style/TTheme.Numpad.Key.Large.Placeholder"
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyPunctuationRight
|
||||||
android:id="@+id/soft_key_punctuation_102" />
|
style="@style/TTheme.Numpad.Key.Number"
|
||||||
|
android:id="@+id/soft_key_punctuation_102" />
|
||||||
|
<include layout="@layout/key_overlay_icons" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</merge>
|
</merge>
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,21 @@
|
||||||
android:id="@+id/soft_key_3"
|
android:id="@+id/soft_key_3"
|
||||||
android:drawableBottom="@drawable/ic_fn_voice" />
|
android:drawableBottom="@drawable/ic_fn_voice" />
|
||||||
|
|
||||||
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyF4
|
||||||
|
style="@style/TTheme.CommandPalette.Key"
|
||||||
|
android:id="@+id/soft_key_4"
|
||||||
|
android:drawableBottom="@drawable/ic_fn_undo" />
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyF5
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyF5
|
||||||
style="@style/TTheme.CommandPalette.Key"
|
style="@style/TTheme.CommandPalette.Key"
|
||||||
android:id="@+id/soft_key_5"
|
android:id="@+id/soft_key_5"
|
||||||
android:drawableBottom="@drawable/ic_txt_cut" />
|
android:drawableBottom="@drawable/ic_txt_cut" />
|
||||||
|
|
||||||
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyF6
|
||||||
|
style="@style/TTheme.CommandPalette.Key"
|
||||||
|
android:id="@+id/soft_key_6"
|
||||||
|
android:drawableBottom="@drawable/ic_fn_redo" />
|
||||||
|
|
||||||
<io.github.sspanak.tt9.ui.main.keys.SoftKeyFn
|
<io.github.sspanak.tt9.ui.main.keys.SoftKeyFn
|
||||||
style="@style/TTheme.CommandPalette.Key"
|
style="@style/TTheme.CommandPalette.Key"
|
||||||
android:id="@+id/soft_key_8"
|
android:id="@+id/soft_key_8"
|
||||||
|
|
|
||||||
|
|
@ -177,6 +177,7 @@
|
||||||
<string name="virtual_numpad_alignment_left">Вляво</string>
|
<string name="virtual_numpad_alignment_left">Вляво</string>
|
||||||
<string name="virtual_numpad_alignment_right">Вдясно</string>
|
<string name="virtual_numpad_alignment_right">Вдясно</string>
|
||||||
<string name="function_select_keyboard">Избор на клавиатура</string>
|
<string name="function_select_keyboard">Избор на клавиатура</string>
|
||||||
|
<string name="function_redo">Повторение (Redo)</string>
|
||||||
<string name="function_voice_input">Гласово въвеждане</string>
|
<string name="function_voice_input">Гласово въвеждане</string>
|
||||||
<string name="add_word_no_confirmation">Добавяне без потвърждение</string>
|
<string name="add_word_no_confirmation">Добавяне без потвърждение</string>
|
||||||
<string name="dictionary_import_custom_words">Импортирай</string>
|
<string name="dictionary_import_custom_words">Импортирай</string>
|
||||||
|
|
@ -211,4 +212,5 @@
|
||||||
<string name="function_assign_instructions">* Натиснете или задръжте клавиш, за да го присвоите на функцията „%1$s“.\n\n* Натиснете 0, за да отмените.\n\n* Натиснете 2, за да деактивирате функцията.</string>
|
<string name="function_assign_instructions">* Натиснете или задръжте клавиш, за да го присвоите на функцията „%1$s“.\n\n* Натиснете 0, за да отмените.\n\n* Натиснете 2, за да деактивирате функцията.</string>
|
||||||
<string name="pref_allow_composing_text">Показвай текст при съставяне</string>
|
<string name="pref_allow_composing_text">Показвай текст при съставяне</string>
|
||||||
<string name="pref_drag_resize">Оразмеряване чрез влачене</string>
|
<string name="pref_drag_resize">Оразмеряване чрез влачене</string>
|
||||||
|
<string name="function_undo">Отмяна (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,7 @@
|
||||||
<string name="function_already_assigned">\tDie Taste \"%1$s\" ist bereits der Funktion \"%2$s\" zugewiesen. Möchten Sie sie \"%3$s\" zuweisen?</string>
|
<string name="function_already_assigned">\tDie Taste \"%1$s\" ist bereits der Funktion \"%2$s\" zugewiesen. Möchten Sie sie \"%3$s\" zuweisen?</string>
|
||||||
<string name="function_assign_instructions">* Drücken oder halten Sie eine Taste, um sie der Funktion \"%1$s\" zuzuweisen.\n\n* Drücken Sie 0, um abzubrechen.\n\n* Drücken Sie 2, um die Funktion zu deaktivieren.</string>
|
<string name="function_assign_instructions">* Drücken oder halten Sie eine Taste, um sie der Funktion \"%1$s\" zuzuweisen.\n\n* Drücken Sie 0, um abzubrechen.\n\n* Drücken Sie 2, um die Funktion zu deaktivieren.</string>
|
||||||
<string name="function_reassign">Neu zuweisen</string>
|
<string name="function_reassign">Neu zuweisen</string>
|
||||||
|
<string name="function_redo">Wiederholen</string>
|
||||||
<string name="function_voice_input">Spracheingabe</string>
|
<string name="function_voice_input">Spracheingabe</string>
|
||||||
<string name="function_reset_keys_title">Standardtasten wiederherstellen</string>
|
<string name="function_reset_keys_title">Standardtasten wiederherstellen</string>
|
||||||
<string name="key_hold_key">(halten)</string>
|
<string name="key_hold_key">(halten)</string>
|
||||||
|
|
@ -213,4 +214,5 @@
|
||||||
<string name="function_show_settings">Einstellungsbildschirm anzeigen</string>
|
<string name="function_show_settings">Einstellungsbildschirm anzeigen</string>
|
||||||
<string name="pref_allow_composing_text">Zusammengesetzten Text anzeigen</string>
|
<string name="pref_allow_composing_text">Zusammengesetzten Text anzeigen</string>
|
||||||
<string name="pref_drag_resize">Größe durch Ziehen ändern</string>
|
<string name="pref_drag_resize">Größe durch Ziehen ändern</string>
|
||||||
|
<string name="function_undo">Rückgängig machen</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,7 @@
|
||||||
<string name="function_reassign">Reasignar</string>
|
<string name="function_reassign">Reasignar</string>
|
||||||
<string name="function_add_word">Agregar palabra</string>
|
<string name="function_add_word">Agregar palabra</string>
|
||||||
<string name="function_show_settings">Mostrar configuración</string>
|
<string name="function_show_settings">Mostrar configuración</string>
|
||||||
|
<string name="function_redo">Rehacer</string>
|
||||||
<string name="function_voice_input">Entrada por voz</string>
|
<string name="function_voice_input">Entrada por voz</string>
|
||||||
<string name="function_reset_keys_title">Restaurar valores de teclas por defecto</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="function_reset_keys_done">Valores de teclas por defecto restaurados</string>
|
||||||
|
|
@ -211,4 +212,5 @@
|
||||||
<string name="function_assign_instructions">* Presione o mantenga pulsada una tecla para asignarla a la función \"%1$s\".\n\n* Presione 0 para cancelar.\n\n* Presione 2 para desactivar la función.</string>
|
<string name="function_assign_instructions">* Presione o mantenga pulsada una tecla para asignarla a la función \"%1$s\".\n\n* Presione 0 para cancelar.\n\n* Presione 2 para desactivar la función.</string>
|
||||||
<string name="pref_allow_composing_text">Mostrar texto en composición</string>
|
<string name="pref_allow_composing_text">Mostrar texto en composición</string>
|
||||||
<string name="pref_drag_resize">Redimensionar arrastrando</string>
|
<string name="pref_drag_resize">Redimensionar arrastrando</string>
|
||||||
|
<string name="function_undo">Deshacer</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@
|
||||||
<string name="function_reassign">Réattribuer</string>
|
<string name="function_reassign">Réattribuer</string>
|
||||||
<string name="function_add_word">Ajouter un mot</string>
|
<string name="function_add_word">Ajouter un mot</string>
|
||||||
<string name="function_show_settings">Afficher les paramètres</string>
|
<string name="function_show_settings">Afficher les paramètres</string>
|
||||||
|
<string name="function_redo">Restaurer (Redo)</string>
|
||||||
<string name="function_voice_input">Saisie vocale</string>
|
<string name="function_voice_input">Saisie vocale</string>
|
||||||
<string name="function_reset_keys_title">Restaurer les paramètres par défaut</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="function_reset_keys_done">Paramètres par défaut sont restaurés.</string>
|
||||||
|
|
@ -211,4 +212,5 @@
|
||||||
<string name="key_hold_key">(maintenir)</string>
|
<string name="key_hold_key">(maintenir)</string>
|
||||||
<string name="pref_allow_composing_text">Afficher texte en cours</string>
|
<string name="pref_allow_composing_text">Afficher texte en cours</string>
|
||||||
<string name="pref_drag_resize">Redimensionner en faisant glisser</string>
|
<string name="pref_drag_resize">Redimensionner en faisant glisser</string>
|
||||||
|
<string name="function_undo">Annuler (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -202,6 +202,7 @@
|
||||||
<string name="function_already_assigned">Il tasto \"%1$s\" è già assegnato alla funzione \"%2$s\". Vuoi assegnarlo a \"%3$s\"?</string>
|
<string name="function_already_assigned">Il tasto \"%1$s\" è già assegnato alla funzione \"%2$s\". Vuoi assegnarlo a \"%3$s\"?</string>
|
||||||
<string name="function_assign_instructions">* Premi o tieni premuto un tasto per assegnarlo alla funzione \"%1$s\".\n\n* Premi 0 per annullare.\n\n* Premi 2 per disabilitare la funzione.</string>
|
<string name="function_assign_instructions">* Premi o tieni premuto un tasto per assegnarlo alla funzione \"%1$s\".\n\n* Premi 0 per annullare.\n\n* Premi 2 per disabilitare la funzione.</string>
|
||||||
<string name="function_reassign">Riassegnare</string>
|
<string name="function_reassign">Riassegnare</string>
|
||||||
|
<string name="function_redo">Ripristina (Redo)</string>
|
||||||
<string name="function_voice_input">Input vocale</string>
|
<string name="function_voice_input">Input vocale</string>
|
||||||
<string name="function_reset_keys_title">Ripristina i tasti predefiniti</string>
|
<string name="function_reset_keys_title">Ripristina i tasti predefiniti</string>
|
||||||
<string name="key_hold_key">(tenere premuto)</string>
|
<string name="key_hold_key">(tenere premuto)</string>
|
||||||
|
|
@ -214,5 +215,6 @@
|
||||||
<string name="function_show_settings">Mostrare impostazioni</string>
|
<string name="function_show_settings">Mostrare impostazioni</string>
|
||||||
<string name="pref_allow_composing_text">Mostra testo in composizione</string>
|
<string name="pref_allow_composing_text">Mostra testo in composizione</string>
|
||||||
<string name="pref_drag_resize">Ridimensionare trascinando</string>
|
<string name="pref_drag_resize">Ridimensionare trascinando</string>
|
||||||
|
<string name="function_undo">Annulla (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@
|
||||||
<string name="function_reassign">הקצה מחדש</string>
|
<string name="function_reassign">הקצה מחדש</string>
|
||||||
<string name="function_add_word">לחצן הוספת מילה</string>
|
<string name="function_add_word">לחצן הוספת מילה</string>
|
||||||
<string name="function_show_settings">לחצן הצגת הגדרות</string>
|
<string name="function_show_settings">לחצן הצגת הגדרות</string>
|
||||||
|
<string name="function_redo">ביצוע חוזר (Redo)</string>
|
||||||
<string name="function_voice_input">קלט קולי</string>
|
<string name="function_voice_input">קלט קולי</string>
|
||||||
<string name="function_reset_keys_title">שחזור לחצני ברירת מחדל</string>
|
<string name="function_reset_keys_title">שחזור לחצני ברירת מחדל</string>
|
||||||
<string name="function_reset_keys_done">הגדרות ברירת המחדל שוחזרו.</string>
|
<string name="function_reset_keys_done">הגדרות ברירת המחדל שוחזרו.</string>
|
||||||
|
|
@ -218,4 +219,5 @@
|
||||||
<string name="function_previous_suggestion">הצעה קודמת</string>
|
<string name="function_previous_suggestion">הצעה קודמת</string>
|
||||||
<string name="pref_allow_composing_text">הצגת טקסט בהרכבה</string>
|
<string name="pref_allow_composing_text">הצגת טקסט בהרכבה</string>
|
||||||
<string name="pref_drag_resize">שינוי גודל על ידי גרירה</string>
|
<string name="pref_drag_resize">שינוי גודל על ידי גרירה</string>
|
||||||
|
<string name="function_undo">ביטול (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@
|
||||||
<string name="function_reassign">Perpriskirti</string>
|
<string name="function_reassign">Perpriskirti</string>
|
||||||
<string name="function_add_word">Pridėti žodį</string>
|
<string name="function_add_word">Pridėti žodį</string>
|
||||||
<string name="function_show_settings">Rodyti nustatymus</string>
|
<string name="function_show_settings">Rodyti nustatymus</string>
|
||||||
|
<string name="function_redo">Pakartoti (Redo)</string>
|
||||||
<string name="function_voice_input">Balso įvestis</string>
|
<string name="function_voice_input">Balso įvestis</string>
|
||||||
<string name="function_reset_keys_title">Atkurti numatytąsias reikšmes</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>
|
<string name="function_reset_keys_done">Numatytosios reikšmės atkurtos.</string>
|
||||||
|
|
@ -220,4 +221,5 @@
|
||||||
<string name="function_assign_instructions">* Paspauskite arba palaikykite klavišą, kad priskirtumėte jį funkcijai „%1$s“.\n\n* Paspauskite 0, kad atšauktumėte.\n\n* Paspauskite 2, kad išjungtumėte funkciją.</string>
|
<string name="function_assign_instructions">* Paspauskite arba palaikykite klavišą, kad priskirtumėte jį funkcijai „%1$s“.\n\n* Paspauskite 0, kad atšauktumėte.\n\n* Paspauskite 2, kad išjungtumėte funkciją.</string>
|
||||||
<string name="pref_allow_composing_text">Rodyti rašomą tekstą</string>
|
<string name="pref_allow_composing_text">Rodyti rašomą tekstą</string>
|
||||||
<string name="pref_drag_resize">Keisti dydį tempiant</string>
|
<string name="pref_drag_resize">Keisti dydį tempiant</string>
|
||||||
|
<string name="function_undo">Atšaukti (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,7 @@
|
||||||
<string name="function_assign_instructions">* Druk of houd een toets ingedrukt om deze toe te wijzen aan de functie \"%1$s\".\n\n* Druk op 0 om te annuleren.\n\n* Druk op 2 om de functie uit te schakelen.</string>
|
<string name="function_assign_instructions">* Druk of houd een toets ingedrukt om deze toe te wijzen aan de functie \"%1$s\".\n\n* Druk op 0 om te annuleren.\n\n* Druk op 2 om de functie uit te schakelen.</string>
|
||||||
<string name="function_reassign">Opnieuw toewijzen</string>
|
<string name="function_reassign">Opnieuw toewijzen</string>
|
||||||
<string name="function_show_settings">Instellingen weergeven</string>
|
<string name="function_show_settings">Instellingen weergeven</string>
|
||||||
|
<string name="function_redo">Opnieuw uitvoeren</string>
|
||||||
<string name="function_voice_input">Spraakinvoer</string>
|
<string name="function_voice_input">Spraakinvoer</string>
|
||||||
<string name="function_reset_keys_title">Standaardtoetsen herstellen</string>
|
<string name="function_reset_keys_title">Standaardtoetsen herstellen</string>
|
||||||
<string name="key_hold_key">(Ingedrukt houden)</string>
|
<string name="key_hold_key">(Ingedrukt houden)</string>
|
||||||
|
|
@ -212,4 +213,5 @@
|
||||||
<string name="function_next_language">Volgende taal</string>
|
<string name="function_next_language">Volgende taal</string>
|
||||||
<string name="function_filter_clear">Filter wissen</string>
|
<string name="function_filter_clear">Filter wissen</string>
|
||||||
<string name="pref_allow_composing_text">Compositietekst weergeven</string>
|
<string name="pref_allow_composing_text">Compositietekst weergeven</string>
|
||||||
|
<string name="function_undo">Ongedaan maken</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@
|
||||||
<string name="function_reassign">Reatribuir</string>
|
<string name="function_reassign">Reatribuir</string>
|
||||||
<string name="function_add_word">Adicionar palavra</string>
|
<string name="function_add_word">Adicionar palavra</string>
|
||||||
<string name="function_show_settings">Entrar em Configurações</string>
|
<string name="function_show_settings">Entrar em Configurações</string>
|
||||||
|
<string name="function_redo">Refazer</string>
|
||||||
<string name="function_voice_input">Entrada por Voz</string>
|
<string name="function_voice_input">Entrada por Voz</string>
|
||||||
<string name="function_reset_keys_title">Restaurar Atalhos Padrão</string>
|
<string name="function_reset_keys_title">Restaurar Atalhos Padrão</string>
|
||||||
<string name="function_reset_keys_done">Atalhos Restaurados.</string>
|
<string name="function_reset_keys_done">Atalhos Restaurados.</string>
|
||||||
|
|
@ -218,4 +219,5 @@
|
||||||
<string name="function_previous_suggestion">Sugestão Anterior</string>
|
<string name="function_previous_suggestion">Sugestão Anterior</string>
|
||||||
<string name="pref_allow_composing_text">Mostrar texto em composição</string>
|
<string name="pref_allow_composing_text">Mostrar texto em composição</string>
|
||||||
<string name="pref_drag_resize">Redimensionar arrastando</string>
|
<string name="pref_drag_resize">Redimensionar arrastando</string>
|
||||||
|
<string name="function_undo">Desfazer</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@
|
||||||
<string name="function_reassign">Назначить заново</string>
|
<string name="function_reassign">Назначить заново</string>
|
||||||
<string name="function_add_word">Добавить слово</string>
|
<string name="function_add_word">Добавить слово</string>
|
||||||
<string name="function_show_settings">Настройки</string>
|
<string name="function_show_settings">Настройки</string>
|
||||||
|
<string name="function_redo">Повторить (Redo)</string>
|
||||||
<string name="function_voice_input">Голосовой ввод</string>
|
<string name="function_voice_input">Голосовой ввод</string>
|
||||||
<string name="function_reset_keys_title">Вернуть кнопки по умолчанию</string>
|
<string name="function_reset_keys_title">Вернуть кнопки по умолчанию</string>
|
||||||
<string name="function_reset_keys_done">Настройки кнопок по умолчанию восстановлены.</string>
|
<string name="function_reset_keys_done">Настройки кнопок по умолчанию восстановлены.</string>
|
||||||
|
|
@ -211,4 +212,5 @@
|
||||||
<string name="function_assign_instructions">* Нажмите или удерживайте клавишу, чтобы назначить её на функцию «%1$s».\n\n* Нажмите 0, чтобы отменить.\n\n* Нажмите 2, чтобы отключить функцию.</string>
|
<string name="function_assign_instructions">* Нажмите или удерживайте клавишу, чтобы назначить её на функцию «%1$s».\n\n* Нажмите 0, чтобы отменить.\n\n* Нажмите 2, чтобы отключить функцию.</string>
|
||||||
<string name="pref_allow_composing_text">Показывать текст при вводе</string>
|
<string name="pref_allow_composing_text">Показывать текст при вводе</string>
|
||||||
<string name="pref_drag_resize">Изменять размер перетаскиванием</string>
|
<string name="pref_drag_resize">Изменять размер перетаскиванием</string>
|
||||||
|
<string name="function_undo">Отменить (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,7 @@
|
||||||
<string name="function_reassign">Yeniden ata</string>
|
<string name="function_reassign">Yeniden ata</string>
|
||||||
<string name="function_add_word">Kelime ekle</string>
|
<string name="function_add_word">Kelime ekle</string>
|
||||||
<string name="function_show_settings">Ayarları göster</string>
|
<string name="function_show_settings">Ayarları göster</string>
|
||||||
|
<string name="function_redo">Yinele (Redo)</string>
|
||||||
<string name="function_voice_input">Sesli giriş</string>
|
<string name="function_voice_input">Sesli giriş</string>
|
||||||
<string name="function_reset_keys_title">Varsayılan Ayarlara Geri Dön</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="function_reset_keys_done">Varsayılan tuş ayarlarına dönüldü.</string>
|
||||||
|
|
@ -216,4 +217,5 @@
|
||||||
<string name="key_hold_key">(basılı tut)</string>
|
<string name="key_hold_key">(basılı tut)</string>
|
||||||
<string name="pref_allow_composing_text">Yazılan metni göster</string>
|
<string name="pref_allow_composing_text">Yazılan metni göster</string>
|
||||||
<string name="pref_drag_resize">Sürükleyerek yeniden boyutlandır</string>
|
<string name="pref_drag_resize">Sürükleyerek yeniden boyutlandır</string>
|
||||||
|
<string name="function_undo">Geri al (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@
|
||||||
<string name="function_reassign">Перепризначити</string>
|
<string name="function_reassign">Перепризначити</string>
|
||||||
<string name="function_add_word">Додати слово</string>
|
<string name="function_add_word">Додати слово</string>
|
||||||
<string name="function_show_settings">Показати налаштування</string>
|
<string name="function_show_settings">Показати налаштування</string>
|
||||||
|
<string name="function_redo">Повторити (Redo)</string>
|
||||||
<string name="function_voice_input">Голосове введення</string>
|
<string name="function_voice_input">Голосове введення</string>
|
||||||
<string name="function_reset_keys_title">Відновити стандартні клавіші</string>
|
<string name="function_reset_keys_title">Відновити стандартні клавіші</string>
|
||||||
<string name="function_reset_keys_done">Стандартні налаштування клавіш відновленно.</string>
|
<string name="function_reset_keys_done">Стандартні налаштування клавіш відновленно.</string>
|
||||||
|
|
@ -222,4 +223,5 @@
|
||||||
<string name="function_assign_instructions">* Натисніть або утримуйте клавішу, щоб призначити її функції «%1$s».\n\n* Натисніть 0, щоб скасувати.\n\n* Натисніть 2, щоб вимкнути функцію.</string>
|
<string name="function_assign_instructions">* Натисніть або утримуйте клавішу, щоб призначити її функції «%1$s».\n\n* Натисніть 0, щоб скасувати.\n\n* Натисніть 2, щоб вимкнути функцію.</string>
|
||||||
<string name="pref_allow_composing_text">Показувати текст під час введення</string>
|
<string name="pref_allow_composing_text">Показувати текст під час введення</string>
|
||||||
<string name="pref_drag_resize">Змінювати розмір перетягуванням</string>
|
<string name="pref_drag_resize">Змінювати розмір перетягуванням</string>
|
||||||
|
<string name="function_undo">Скасувати (Undo)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,8 @@
|
||||||
<string name="function_next_mode">Input Mode</string>
|
<string name="function_next_mode">Input Mode</string>
|
||||||
<string name="function_select_keyboard">Select Keyboard</string>
|
<string name="function_select_keyboard">Select Keyboard</string>
|
||||||
<string name="function_show_settings">Show Settings</string>
|
<string name="function_show_settings">Show Settings</string>
|
||||||
|
<string name="function_undo">Undo</string>
|
||||||
|
<string name="function_redo">Redo</string>
|
||||||
<string name="function_voice_input">Voice Input</string>
|
<string name="function_voice_input">Voice Input</string>
|
||||||
<string name="function_reset_keys_title">Restore Default Keys</string>
|
<string name="function_reset_keys_title">Restore Default Keys</string>
|
||||||
<string name="function_reset_keys_done">Default key settings restored.</string>
|
<string name="function_reset_keys_done">Default key settings restored.</string>
|
||||||
|
|
|
||||||
|
|
@ -267,6 +267,11 @@
|
||||||
<item name="android:layout_width">0dp</item>
|
<item name="android:layout_width">0dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="TTheme.Numpad.Key.ShortPunctuation.Overlay.Wrapper" parent="TTheme.Numpad.Key.Number">
|
||||||
|
<item name="android:layout_weight">1</item>
|
||||||
|
<item name="android:layout_width">0dp</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="TTheme.Numpad.Key.Overlay.Element" parent="">
|
<style name="TTheme.Numpad.Key.Overlay.Element" parent="">
|
||||||
<item name="android:layout_height">match_parent</item>
|
<item name="android:layout_height">match_parent</item>
|
||||||
<item name="android:layout_width">match_parent</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
|
|
@ -387,14 +392,4 @@
|
||||||
<item name="rippleColor">@color/key_ok_ripple</item>
|
<item name="rippleColor">@color/key_ok_ripple</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="TTheme.Numpad.Key.Large.Placeholder" parent="TTheme.Numpad.Key.Number">
|
|
||||||
<item name="android:textColor">@android:color/transparent</item>
|
|
||||||
<item name="android:background">@android:color/transparent</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="TTheme.Numpad.Key.ShortPunctuation" parent="TTheme.Numpad.Key.Number">
|
|
||||||
<item name="android:layout_weight">1</item>
|
|
||||||
<item name="android:layout_width">0dp</item>
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,14 @@
|
||||||
app:key="key_show_settings"
|
app:key="key_show_settings"
|
||||||
app:title="@string/function_show_settings" />
|
app:title="@string/function_show_settings" />
|
||||||
|
|
||||||
|
<io.github.sspanak.tt9.preferences.screens.hotkeys.PreferenceHotkey
|
||||||
|
app:key="key_undo"
|
||||||
|
app:title="@string/function_undo" />
|
||||||
|
|
||||||
|
<io.github.sspanak.tt9.preferences.screens.hotkeys.PreferenceHotkey
|
||||||
|
app:key="key_redo"
|
||||||
|
app:title="@string/function_redo" />
|
||||||
|
|
||||||
<io.github.sspanak.tt9.preferences.screens.hotkeys.PreferenceVoiceInputHotkey
|
<io.github.sspanak.tt9.preferences.screens.hotkeys.PreferenceVoiceInputHotkey
|
||||||
app:key="key_voice_input"
|
app:key="key_voice_input"
|
||||||
app:title="@string/function_voice_input" />
|
app:title="@string/function_voice_input" />
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue