diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardSwitcher.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardSwitcher.java
index ba365d20f..aa15605f6 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardSwitcher.java
@@ -32,6 +32,7 @@ import org.dslul.openboard.inputmethod.keyboard.emoji.EmojiPalettesView;
import org.dslul.openboard.inputmethod.keyboard.internal.KeyboardState;
import org.dslul.openboard.inputmethod.keyboard.internal.KeyboardTextsSet;
import org.dslul.openboard.inputmethod.latin.InputView;
+import org.dslul.openboard.inputmethod.latin.KeyboardWrapperView;
import org.dslul.openboard.inputmethod.latin.LatinIME;
import org.dslul.openboard.inputmethod.latin.R;
import org.dslul.openboard.inputmethod.latin.RichInputMethodManager;
@@ -51,6 +52,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
private static final String TAG = KeyboardSwitcher.class.getSimpleName();
private InputView mCurrentInputView;
+ private KeyboardWrapperView mKeyboardViewWrapper;
private View mMainKeyboardFrame;
private MainKeyboardView mKeyboardView;
private EmojiPalettesView mEmojiPalettesView;
@@ -117,7 +119,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(
mThemeContext, editorInfo);
final Resources res = mThemeContext.getResources();
- final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
+ final int keyboardWidth = ResourceUtils.getKeyboardWidth(res, settingsValues);
final int keyboardHeight = ResourceUtils.getKeyboardHeight(res, settingsValues);
builder.setKeyboardGeometry(keyboardWidth, keyboardHeight);
builder.setSubtype(mRichImm.getCurrentSubtype());
@@ -129,7 +131,8 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
&& settingsValues.mIsSplitKeyboardEnabled);
mKeyboardLayoutSet = builder.build();
try {
- mState.onLoadKeyboard(currentAutoCapsState, currentRecapitalizeState);
+ mState.onLoadKeyboard(currentAutoCapsState, currentRecapitalizeState,
+ settingsValues.mOneHandedModeEnabled);
mKeyboardTextsSet.setLocale(mRichImm.getCurrentSubtypeLocale(), mThemeContext);
} catch (KeyboardLayoutSetException e) {
Log.w(TAG, "loading keyboard failed: " + e.mKeyboardId, e.getCause());
@@ -424,6 +427,30 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
}
}
+ // Implements {@link KeyboardState.SwitchActions}.
+ @Override
+ public void setOneHandedModeEnabled(boolean enabled) {
+ if (mKeyboardViewWrapper.getOneHandedModeEnabled() == enabled) {
+ return;
+ }
+ final Settings settings = Settings.getInstance();
+ mKeyboardViewWrapper.setOneHandedModeEnabled(enabled);
+ mKeyboardViewWrapper.setOneHandedGravity(settings.getCurrent().mOneHandedModeGravity);
+
+ settings.writeOneHandedModeEnabled(enabled);
+
+ // Reload the entire keyboard set with the same parameters
+ loadKeyboard(mLatinIME.getCurrentInputEditorInfo(), settings.getCurrent(),
+ mLatinIME.getCurrentAutoCapsState(), mLatinIME.getCurrentRecapitalizeState());
+ }
+
+ // Implements {@link KeyboardState.SwitchActions}.
+ @Override
+ public void switchOneHandedMode() {
+ mKeyboardViewWrapper.switchOneHandedModeSide();
+ Settings.getInstance().writeOneHandedModeGravity(mKeyboardViewWrapper.getOneHandedGravity());
+ }
+
// Implements {@link KeyboardState.SwitchActions}.
@Override
public boolean isInDoubleTapShiftKeyTimeout() {
@@ -476,7 +503,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
} else if (isShowingClipboardHistory()) {
return mClipboardHistoryView;
}
- return mKeyboardView;
+ return mKeyboardViewWrapper;
}
public MainKeyboardView getMainKeyboardView() {
@@ -509,6 +536,8 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
mEmojiPalettesView = mCurrentInputView.findViewById(R.id.emoji_palettes_view);
mClipboardHistoryView = mCurrentInputView.findViewById(R.id.clipboard_history_view);
+ mKeyboardViewWrapper = mCurrentInputView.findViewById(R.id.keyboard_view_wrapper);
+ mKeyboardViewWrapper.setKeyboardActionListener(mLatinIME);
mKeyboardView = mCurrentInputView.findViewById(R.id.keyboard_view);
mKeyboardView.setHardwareAcceleratedDrawingEnabled(isHardwareAcceleratedDrawingEnabled);
mKeyboardView.setKeyboardActionListener(mLatinIME);
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardCodesSet.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardCodesSet.java
index 9218b2e05..3cda8b46b 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardCodesSet.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardCodesSet.java
@@ -54,7 +54,10 @@ public final class KeyboardCodesSet {
"key_alpha_from_emoji",
"key_unspecified",
"key_clipboard",
- "key_alpha_from_clipboard"
+ "key_alpha_from_clipboard",
+ "key_start_onehanded",
+ "key_stop_onehanded",
+ "key_switch_onehanded"
};
private static final int[] DEFAULT = {
@@ -76,7 +79,10 @@ public final class KeyboardCodesSet {
Constants.CODE_ALPHA_FROM_EMOJI,
Constants.CODE_UNSPECIFIED,
Constants.CODE_CLIPBOARD,
- Constants.CODE_ALPHA_FROM_CLIPBOARD
+ Constants.CODE_ALPHA_FROM_CLIPBOARD,
+ Constants.CODE_START_ONE_HANDED_MODE,
+ Constants.CODE_STOP_ONE_HANDED_MODE,
+ Constants.CODE_SWITCH_ONE_HANDED_MODE
};
static {
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java
index d97223b3d..44f1cf358 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardIconsSet.java
@@ -62,6 +62,9 @@ public final class KeyboardIconsSet {
public static final String NAME_CLIPBOARD_ACTION_KEY = "clipboard_action_key";
public static final String NAME_CLIPBOARD_NORMAL_KEY = "clipboard_normal_key";
public static final String NAME_CLEAR_CLIPBOARD_KEY = "clear_clipboard_key";
+ public static final String NAME_START_ONEHANDED_KEY = "start_onehanded_mode_key";
+ public static final String NAME_STOP_ONEHANDED_KEY = "stop_onehanded_mode_key";
+ public static final String NAME_SWITCH_ONEHANDED_KEY = "switch_onehanded_key";
private static final SparseIntArray ATTR_ID_TO_ICON_ID = new SparseIntArray();
@@ -95,6 +98,9 @@ public final class KeyboardIconsSet {
NAME_CLIPBOARD_ACTION_KEY, R.styleable.Keyboard_iconClipboardActionKey,
NAME_CLIPBOARD_NORMAL_KEY, R.styleable.Keyboard_iconClipboardNormalKey,
NAME_CLEAR_CLIPBOARD_KEY, R.styleable.Keyboard_iconClearClipboardKey,
+ NAME_START_ONEHANDED_KEY, R.styleable.Keyboard_iconStartOneHandedMode,
+ NAME_STOP_ONEHANDED_KEY, R.styleable.Keyboard_iconStopOneHandedMode,
+ NAME_SWITCH_ONEHANDED_KEY, R.styleable.Keyboard_iconSwitchOneHandedMode,
};
private static int NUM_ICONS = NAMES_AND_ATTR_IDS.length / 2;
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardState.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardState.java
index 098de98f8..fa80f445f 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardState.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardState.java
@@ -30,7 +30,7 @@ import org.dslul.openboard.inputmethod.latin.utils.RecapitalizeStatus;
*
* This class contains all keyboard state transition logic.
*
- * The input events are {@link #onLoadKeyboard(int, int)}, {@link #onSaveKeyboardState()},
+ * The input events are {@link #onLoadKeyboard(int, int, boolean)}, {@link #onSaveKeyboardState()},
* {@link #onPressKey(int,boolean,int,int)}, {@link #onReleaseKey(int,boolean,int,int)},
* {@link #onEvent(Event,int,int)}, {@link #onFinishSlidingInput(int,int)},
* {@link #onUpdateShiftState(int,int)}, {@link #onResetKeyboardStateToAlphabet(int,int)}.
@@ -65,6 +65,9 @@ public final class KeyboardState {
void startDoubleTapShiftKeyTimer();
boolean isInDoubleTapShiftKeyTimeout();
void cancelDoubleTapShiftKeyTimer();
+
+ void setOneHandedModeEnabled(boolean enabled);
+ void switchOneHandedMode();
}
private final SwitchActions mSwitchActions;
@@ -130,7 +133,8 @@ public final class KeyboardState {
mRecapitalizeMode = RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE;
}
- public void onLoadKeyboard(final int autoCapsFlags, final int recapitalizeMode) {
+ public void onLoadKeyboard(final int autoCapsFlags, final int recapitalizeMode,
+ final boolean onHandedModeEnabled) {
if (DEBUG_EVENT) {
Log.d(TAG, "onLoadKeyboard: " + stateToString(autoCapsFlags, recapitalizeMode));
}
@@ -147,6 +151,7 @@ public final class KeyboardState {
// Reset keyboard to alphabet mode.
setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
}
+ mSwitchActions.setOneHandedModeEnabled(onHandedModeEnabled);
}
// Constants for {@link SavedKeyboardState#mShiftMode} and {@link #setShifted(int)}.
@@ -368,6 +373,20 @@ public final class KeyboardState {
mSwitchActions.setClipboardKeyboard();
}
+ private void setOneHandedModeEnabled(boolean enabled) {
+ if (DEBUG_INTERNAL_ACTION) {
+ Log.d(TAG, "setOneHandedModeEnabled");
+ }
+ mSwitchActions.setOneHandedModeEnabled(enabled);
+ }
+
+ private void switchOneHandedMode() {
+ if (DEBUG_INTERNAL_ACTION) {
+ Log.d(TAG, "switchOneHandedMode");
+ }
+ mSwitchActions.switchOneHandedMode();
+ }
+
public void onPressKey(final int code, final boolean isSinglePointer, final int autoCapsFlags,
final int recapitalizeMode) {
if (DEBUG_EVENT) {
@@ -697,6 +716,12 @@ public final class KeyboardState {
}
} else if (code == Constants.CODE_ALPHA_FROM_CLIPBOARD) {
setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
+ } else if (code == Constants.CODE_START_ONE_HANDED_MODE) {
+ setOneHandedModeEnabled(true);
+ } else if (code == Constants.CODE_STOP_ONE_HANDED_MODE) {
+ setOneHandedModeEnabled(false);
+ } else if (code == Constants.CODE_SWITCH_ONE_HANDED_MODE) {
+ switchOneHandedMode();
}
}
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 5336cbaaf..a3ce4246a 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -81,26 +81,26 @@ public final class KeyboardTextsTable {
private static final String[] NAMES = {
// /* index:histogram */ "name",
- /* 0:35 */ "morekeys_a",
- /* 1:35 */ "morekeys_o",
- /* 2:34 */ "morekeys_e",
- /* 3:33 */ "morekeys_u",
- /* 4:31 */ "morekeys_i",
- /* 5:31 */ "keylabel_to_alpha",
- /* 6:27 */ "morekeys_n",
+ /* 0:34 */ "morekeys_a",
+ /* 1:34 */ "morekeys_o",
+ /* 2:33 */ "morekeys_e",
+ /* 3:32 */ "morekeys_u",
+ /* 4:31 */ "keylabel_to_alpha",
+ /* 5:30 */ "morekeys_i",
+ /* 6:26 */ "morekeys_n",
/* 7:25 */ "morekeys_c",
- /* 8:25 */ "double_quotes",
- /* 9:24 */ "morekeys_s",
- /* 10:24 */ "single_quotes",
+ /* 8:24 */ "double_quotes",
+ /* 9:23 */ "morekeys_s",
+ /* 10:23 */ "single_quotes",
/* 11:19 */ "keyspec_currency",
/* 12:17 */ "morekeys_y",
/* 13:16 */ "morekeys_z",
/* 14:14 */ "morekeys_d",
- /* 15:11 */ "single_angle_quotes",
- /* 16:11 */ "double_angle_quotes",
- /* 17:10 */ "morekeys_t",
- /* 18:10 */ "morekeys_l",
- /* 19:10 */ "morekeys_g",
+ /* 15:10 */ "morekeys_t",
+ /* 16:10 */ "morekeys_l",
+ /* 17:10 */ "morekeys_g",
+ /* 18:10 */ "single_angle_quotes",
+ /* 19:10 */ "double_angle_quotes",
/* 20: 8 */ "morekeys_r",
/* 21: 6 */ "morekeys_k",
/* 22: 6 */ "morekeys_cyrillic_ie",
@@ -260,6 +260,7 @@ public final class KeyboardTextsTable {
/* 176: 0 */ "keyspec_emoji_normal_key",
/* 177: 0 */ "keyspec_clipboard_action_key",
/* 178: 0 */ "keyspec_clipboard_normal_key",
+ /* 179: 0 */ "keyspec_start_onehanded_mode",
};
private static final String EMPTY = "";
@@ -267,23 +268,24 @@ public final class KeyboardTextsTable {
/* Default texts */
private static final String[] TEXTS_DEFAULT = {
/* morekeys_a ~ */
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
- /* ~ morekeys_i */
+ EMPTY, EMPTY, EMPTY, EMPTY,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
/* keylabel_to_alpha */ "ABC",
- /* morekeys_n */ EMPTY,
- /* morekeys_c */ EMPTY,
+ /* morekeys_i ~ */
+ EMPTY, EMPTY, EMPTY,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_lqm_rqm",
/* morekeys_s */ EMPTY,
/* single_quotes */ "!text/single_lqm_rqm",
/* keyspec_currency */ "$",
/* morekeys_y ~ */
- EMPTY, EMPTY, EMPTY,
- /* ~ morekeys_d */
+ EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_laqm_raqm",
/* double_angle_quotes */ "!text/double_laqm_raqm",
- /* morekeys_t ~ */
- EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
+ /* morekeys_r ~ */
+ EMPTY, EMPTY, EMPTY,
/* ~ morekeys_cyrillic_ie */
/* keyspec_symbols_1 */ "1",
/* keyspec_symbols_2 */ "2",
@@ -486,6 +488,7 @@ public final class KeyboardTextsTable {
/* keyspec_emoji_normal_key */ "!icon/emoji_normal_key|!code/key_emoji",
/* keyspec_clipboard_action_key */ "!icon/clipboard_action_key|!code/key_clipboard",
/* keyspec_clipboard_normal_key */ "!icon/clipboard_normal_key|!code/key_clipboard",
+ /* keyspec_start_onehanded_mode */ "!icon/start_onehanded_mode_key|!code/key_start_onehanded",
};
/* Locale af: Afrikaans */
@@ -523,6 +526,7 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -531,7 +535,6 @@ public final class KeyboardTextsTable {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_i */ "\u00ED,\u00EC,\u00EF,\u00EE,\u012F,\u012B,\u0133",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -546,17 +549,17 @@ public final class KeyboardTextsTable {
/* Locale ar: Arabic */
private static final String[] TEXTS_ar = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
// U+200C: ZERO WIDTH NON-JOINER
// U+0628: "ب" ARABIC LETTER BEH
// U+062C: "ج" ARABIC LETTER JEEM
/* keylabel_to_alpha */ "\u0623\u200C\u0628\u200C\u062C",
- /* morekeys_n ~ */
+ /* morekeys_i ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null,
+ null, null, null,
/* ~ morekeys_cyrillic_ie */
// U+0661: "١" ARABIC-INDIC DIGIT ONE
/* keyspec_symbols_1 */ "\u0661",
@@ -699,6 +702,7 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
+ /* keylabel_to_alpha */ null,
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -707,7 +711,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u0148,\u00F1",
@@ -728,7 +731,7 @@ public final class KeyboardTextsTable {
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017E",
/* morekeys_d ~ */
- null, null, null, null, null,
+ null, null, null,
/* ~ morekeys_l */
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u011F",
@@ -737,15 +740,16 @@ public final class KeyboardTextsTable {
/* Locale be: Belarusian */
private static final String[] TEXTS_be = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
@@ -773,15 +777,16 @@ public final class KeyboardTextsTable {
/* Locale bg: Bulgarian */
private static final String[] TEXTS_bg = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
// single_quotes of Bulgarian is default single_quotes_right_left.
/* double_quotes */ "!text/double_9qm_lqm",
};
@@ -789,15 +794,15 @@ public final class KeyboardTextsTable {
/* Locale bn_BD: Bangla (Bangladesh) */
private static final String[] TEXTS_bn_BD = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0995: "क" BENGALI LETTER KA
// U+0996: "ख" BENGALI LETTER KHA
// U+0997: "ग" BENGALI LETTER GA
/* keylabel_to_alpha */ "\u0995\u0996\u0997",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+09F3: "৳" BENGALI RUPEE SIGN
/* keyspec_currency */ "\u09F3",
@@ -849,15 +854,15 @@ public final class KeyboardTextsTable {
/* Locale bn_IN: Bangla (India) */
private static final String[] TEXTS_bn_IN = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0995: "क" BENGALI LETTER KA
// U+0996: "ख" BENGALI LETTER KHA
// U+0997: "ग" BENGALI LETTER GA
/* keylabel_to_alpha */ "\u0995\u0996\u0997",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -900,6 +905,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -907,7 +913,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -916,7 +921,7 @@ public final class KeyboardTextsTable {
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
/* morekeys_c */ "\u00E7,\u0107,\u010D",
/* double_quotes ~ */
- null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null,
/* ~ morekeys_t */
// U+00B7: "·" MIDDLE DOT
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
@@ -925,6 +930,7 @@ public final class KeyboardTextsTable {
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null,
/* ~ morekeys_swiss_row2_11 */
// U+00B7: "·" MIDDLE DOT
/* morekeys_punctuation */ "!autoColumnOrder!9,\\,,?,!,\u00B7,#,),(,/,;,',@,:,-,\",+,\\%,&",
@@ -974,6 +980,7 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -981,7 +988,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -1006,12 +1012,12 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,\u017A,\u017C",
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
/* morekeys_d */ "\u010F",
- /* single_angle_quotes */ "!text/single_raqm_laqm",
- /* double_angle_quotes */ "!text/double_raqm_laqm",
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0165",
/* morekeys_l */ null,
/* morekeys_g */ null,
+ /* single_angle_quotes */ "!text/single_raqm_laqm",
+ /* double_angle_quotes */ "!text/double_raqm_laqm",
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
/* morekeys_r */ "\u0159",
};
@@ -1045,10 +1051,10 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
/* morekeys_i */ "\u00ED,\u00EF",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -1066,14 +1072,15 @@ public final class KeyboardTextsTable {
/* morekeys_z */ null,
// U+00F0: "ð" LATIN SMALL LETTER ETH
/* morekeys_d */ "\u00F0",
- /* single_angle_quotes */ "!text/single_raqm_laqm",
- /* double_angle_quotes */ "!text/double_raqm_laqm",
/* morekeys_t */ null,
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
/* morekeys_l */ "\u0142",
- /* morekeys_g ~ */
+ /* morekeys_g */ null,
+ /* single_angle_quotes */ "!text/single_raqm_laqm",
+ /* double_angle_quotes */ "!text/double_raqm_laqm",
+ /* morekeys_r ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null,
/* ~ morekeys_tablet_period */
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
/* keyspec_nordic_row1_11 */ "\u00E5",
@@ -1122,8 +1129,8 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,%,\u00FB,\u00F9,\u00FA,\u016B",
- /* morekeys_i */ null,
/* keylabel_to_alpha */ null,
+ /* morekeys_i */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -1135,14 +1142,14 @@ public final class KeyboardTextsTable {
/* morekeys_s */ "\u00DF,\u015B,\u0161",
/* single_quotes */ "!text/single_9qm_lqm",
/* keyspec_currency ~ */
- null, null, null, null,
- /* ~ morekeys_d */
+ null, null, null, null, null, null, null,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
- /* morekeys_t ~ */
+ /* morekeys_r ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null,
/* ~ morekeys_nordic_row2_11 */
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
/* keyspec_swiss_row1_11 */ "\u00FC",
@@ -1190,8 +1197,8 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
- /* morekeys_i */ null,
/* keylabel_to_alpha */ null,
+ /* morekeys_i */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -1203,14 +1210,14 @@ public final class KeyboardTextsTable {
/* morekeys_s */ "\u00DF,%,\u015B,\u0161",
/* single_quotes */ "!text/single_9qm_lqm",
/* keyspec_currency ~ */
- null, null, null, null,
- /* ~ morekeys_d */
+ null, null, null, null, null, null, null,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
- /* morekeys_t ~ */
+ /* morekeys_r ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null,
/* ~ morekeys_nordic_row2_11 */
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
/* keyspec_swiss_row1_11 */ "\u00FC",
@@ -1229,8 +1236,8 @@ public final class KeyboardTextsTable {
/* Locale el: Greek */
private static final String[] TEXTS_el = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0391: "Α" GREEK CAPITAL LETTER ALPHA
// U+0392: "Β" GREEK CAPITAL LETTER BETA
@@ -1270,13 +1277,13 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u00F1",
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
@@ -1331,6 +1338,7 @@ public final class KeyboardTextsTable {
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00B5: "µ" MICRO SIGN
/* morekeys_u */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B,\u0169,\u0171,\u0173,\u00B5",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -1341,7 +1349,6 @@ public final class KeyboardTextsTable {
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u0129,\u00EC,\u012F,\u012B,\u0131,\u0133",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
@@ -1376,8 +1383,6 @@ public final class KeyboardTextsTable {
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u00F0,\u010F,\u0111",
- /* single_angle_quotes */ null,
- /* double_angle_quotes */ null,
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
@@ -1393,6 +1398,8 @@ public final class KeyboardTextsTable {
// U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
/* morekeys_g */ "\u011F,\u0121,\u0123",
+ /* single_angle_quotes */ null,
+ /* double_angle_quotes */ null,
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
@@ -1473,6 +1480,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1480,7 +1488,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -1538,6 +1545,7 @@ public final class KeyboardTextsTable {
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
/* morekeys_u */ "\u00FC,\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u016F,\u0171",
+ /* keylabel_to_alpha */ null,
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
@@ -1546,7 +1554,6 @@ public final class KeyboardTextsTable {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
/* morekeys_i */ "\u012B,\u00EC,\u012F,\u00ED,\u00EE,\u00EF,\u0131",
- /* keylabel_to_alpha */ null,
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -1572,8 +1579,6 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,\u017C,\u017A",
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
/* morekeys_d */ "\u010F",
- /* single_angle_quotes */ null,
- /* double_angle_quotes */ null,
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0163,\u0165",
@@ -1585,6 +1590,8 @@ public final class KeyboardTextsTable {
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u0123,\u011F",
+ /* single_angle_quotes */ null,
+ /* double_angle_quotes */ null,
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
@@ -1642,6 +1649,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1649,7 +1657,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -1662,16 +1669,16 @@ public final class KeyboardTextsTable {
/* Locale fa: Persian */
private static final String[] TEXTS_fa = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0627: "ا" ARABIC LETTER ALEF
// U+200C: ZERO WIDTH NON-JOINER
// U+0628: "ب" ARABIC LETTER BEH
// U+067E: "پ" ARABIC LETTER PEH
/* keylabel_to_alpha */ "\u0627\u200C\u0628\u200C\u067E",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+FDFC: "﷼" RIAL SIGN
/* keyspec_currency */ "\uFDFC",
@@ -1825,7 +1832,7 @@ public final class KeyboardTextsTable {
/* morekeys_e */ null,
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
/* morekeys_u */ "\u00FC",
- /* morekeys_i ~ */
+ /* keylabel_to_alpha ~ */
null, null, null, null, null,
/* ~ double_quotes */
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
@@ -1895,6 +1902,7 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00F9,\u00FB,%,\u00FC,\u00FA,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1902,7 +1910,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00EE,%,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
/* morekeys_n */ null,
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
@@ -1969,6 +1976,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1976,7 +1984,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -1989,15 +1996,15 @@ public final class KeyboardTextsTable {
/* Locale hi: Hindi */
private static final String[] TEXTS_hi = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -2076,7 +2083,7 @@ public final class KeyboardTextsTable {
private static final String[] TEXTS_hr = {
/* morekeys_a ~ */
null, null, null, null, null, null,
- /* ~ keylabel_to_alpha */
+ /* ~ morekeys_i */
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -2098,6 +2105,9 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,\u017A,\u017C",
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
+ /* morekeys_t ~ */
+ null, null, null,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
};
@@ -2116,17 +2126,17 @@ public final class KeyboardTextsTable {
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
/* morekeys_u */ "\u00FA,\u00FC,\u0171",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
/* morekeys_i */ "\u00ED",
- /* keylabel_to_alpha ~ */
- null, null, null,
- /* ~ morekeys_c */
+ /* morekeys_n */ null,
+ /* morekeys_c */ null,
/* double_quotes */ "!text/double_9qm_rqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_rqm",
/* keyspec_currency ~ */
- null, null, null, null,
- /* ~ morekeys_d */
+ null, null, null, null, null, null, null,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
};
@@ -2134,17 +2144,17 @@ public final class KeyboardTextsTable {
/* Locale hy: Armenian */
private static final String[] TEXTS_hy = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0531: "Ա" ARMENIAN CAPITAL LETTER AYB
// U+0532: "Բ" ARMENIAN CAPITAL LETTER BEN
// U+0533: "Գ" ARMENIAN CAPITAL LETTER GIM
/* keylabel_to_alpha */ "\u0531\u0532\u0533",
- /* morekeys_n ~ */
+ /* morekeys_i ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null,
/* ~ additional_morekeys_symbols_0 */
/* morekeys_tablet_period */ "!text/morekeys_punctuation",
/* keyspec_nordic_row1_11 ~ */
@@ -2228,6 +2238,7 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
@@ -2235,9 +2246,8 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EE,\u00EC,\u012F,\u012B",
- /* keylabel_to_alpha ~ */
- null, null, null,
- /* ~ morekeys_c */
+ /* morekeys_n */ null,
+ /* morekeys_c */ null,
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
@@ -2248,8 +2258,6 @@ public final class KeyboardTextsTable {
/* morekeys_z */ null,
// U+00F0: "ð" LATIN SMALL LETTER ETH
/* morekeys_d */ "\u00F0",
- /* single_angle_quotes */ null,
- /* double_angle_quotes */ null,
// U+00FE: "þ" LATIN SMALL LETTER THORN
/* morekeys_t */ "\u00FE",
};
@@ -2291,6 +2299,7 @@ public final class KeyboardTextsTable {
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00F9,\u00FA,\u00FB,\u00FC,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
@@ -2298,11 +2307,11 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00EC,\u00ED,\u00EE,\u00EF,\u012F,\u012B",
- /* keylabel_to_alpha ~ */
+ /* morekeys_n ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null,
/* ~ morekeys_nordic_row2_11 */
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
/* keyspec_swiss_row1_11 */ "\u00FC",
@@ -2321,15 +2330,16 @@ public final class KeyboardTextsTable {
/* Locale iw: Hebrew */
private static final String[] TEXTS_iw = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+05D0: "א" HEBREW LETTER ALEF
// U+05D1: "ב" HEBREW LETTER BET
// U+05D2: "ג" HEBREW LETTER GIMEL
/* keylabel_to_alpha */ "\u05D0\u05D1\u05D2",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_rqm_9qm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_rqm_9qm",
@@ -2379,15 +2389,16 @@ public final class KeyboardTextsTable {
/* Locale ka: Georgian */
private static final String[] TEXTS_ka = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+10D0: "ა" GEORGIAN LETTER AN
// U+10D1: "ბ" GEORGIAN LETTER BAN
// U+10D2: "გ" GEORGIAN LETTER GAN
/* keylabel_to_alpha */ "\u10D0\u10D1\u10D2",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
@@ -2396,16 +2407,16 @@ public final class KeyboardTextsTable {
/* Locale kk: Kazakh */
private static final String[] TEXTS_kk = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n ~ */
+ /* morekeys_i ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null,
+ null, null,
/* ~ morekeys_k */
// U+0451: "ё" CYRILLIC SMALL LETTER IO
/* morekeys_cyrillic_ie */ "\u0451",
@@ -2455,14 +2466,14 @@ public final class KeyboardTextsTable {
/* Locale km: Khmer */
private static final String[] TEXTS_km = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+1780: "ក" KHMER LETTER KA
// U+1781: "ខ" KHMER LETTER KHA
// U+1782: "គ" KHMER LETTER KO
/* keylabel_to_alpha */ "\u1780\u1781\u1782",
- /* morekeys_n ~ */
+ /* morekeys_i ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2471,7 +2482,7 @@ public final class KeyboardTextsTable {
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null,
+ null, null, null, null,
/* ~ morekeys_cyrillic_a */
// U+17DB: "៛" KHMER CURRENCY SYMBOL RIEL
/* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1",
@@ -2480,15 +2491,15 @@ public final class KeyboardTextsTable {
/* Locale kn: Kannada */
private static final String[] TEXTS_kn = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0C85: "ಅ" KANNADA LETTER A
// U+0C86: "ಆ" KANNADA LETTER AA
// U+0C87: "ಇ" KANNADA LETTER I
/* keylabel_to_alpha */ "\u0C85\u0C86\u0C87",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -2497,16 +2508,16 @@ public final class KeyboardTextsTable {
/* Locale ky: Kyrgyz */
private static final String[] TEXTS_ky = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n ~ */
+ /* morekeys_i ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null,
+ null, null,
/* ~ morekeys_k */
// U+0451: "ё" CYRILLIC SMALL LETTER IO
/* morekeys_cyrillic_ie */ "\u0451",
@@ -2538,73 +2549,18 @@ public final class KeyboardTextsTable {
/* morekeys_cyrillic_o */ "\u04E9",
};
- /* Locale lb: Luxembourgish */
- private static final String[] TEXTS_lb = {
- // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
- // U+0040: "@" COMMERCIAL AT
- // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
- // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
- // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
- // U+00E6: "æ" LATIN SMALL LETTER AE
- // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
- // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
- // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
- /* morekeys_a */ "\u00E4,@,\u00E2,\u00E0,\u00E1,\u00E6,\u00E3,\u00E5,\u0101",
- // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
- // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
- // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
- // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
- // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
- // U+0153: "œ" LATIN SMALL LIGATURE OE
- // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
- // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
- /* morekeys_o */ "\u00F6,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u00F8,\u014D",
- // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
- // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
- // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
- // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
- /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB",
- // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
- // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
- // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
- // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
- // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
- /* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
- // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
- // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
- // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
- // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
- /* morekeys_i */ "\u00ED,\u00EC,\u00EE,\u00EF",
- /* keylabel_to_alpha */ null,
- // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
- // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
- /* morekeys_n */ "\u00F1,\u0144",
- /* morekeys_c */ null,
- /* double_quotes */ "!text/double_9qm_lqm",
- // U+00DF: "ß" LATIN SMALL LETTER SHARP S
- // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
- // U+0161: "š" LATIN SMALL LETTER S WITH CARON
- /* morekeys_s */ "\u00DF,\u015B,\u0161",
- /* single_quotes */ "!text/single_9qm_lqm",
- /* keyspec_currency ~ */
- null, null, null, null,
- /* ~ morekeys_d */
- /* single_angle_quotes */ "!text/single_raqm_laqm",
- /* double_angle_quotes */ "!text/double_raqm_laqm",
- };
-
/* Locale lo: Lao */
private static final String[] TEXTS_lo = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0E81: "ກ" LAO LETTER KO
// U+0E82: "ຂ" LAO LETTER KHO SUNG
// U+0E84: "ຄ" LAO LETTER KHO TAM
/* keylabel_to_alpha */ "\u0E81\u0E82\u0E84",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20AD: "₭" KIP SIGN
/* keyspec_currency */ "\u20AD",
@@ -2650,6 +2606,7 @@ public final class KeyboardTextsTable {
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
/* morekeys_u */ "\u016B,\u0173,\u00FC,\u016B,\u00F9,\u00FA,\u00FB,\u016F,\u0171",
+ /* keylabel_to_alpha */ null,
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -2658,7 +2615,6 @@ public final class KeyboardTextsTable {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
/* morekeys_i */ "\u012F,\u012B,\u00EC,\u00ED,\u00EE,\u00EF,\u0131",
- /* keylabel_to_alpha */ null,
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -2684,8 +2640,6 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,\u017C,\u017A",
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
/* morekeys_d */ "\u010F",
- /* single_angle_quotes */ null,
- /* double_angle_quotes */ null,
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0163,\u0165",
@@ -2697,6 +2651,8 @@ public final class KeyboardTextsTable {
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u0123,\u011F",
+ /* single_angle_quotes */ null,
+ /* double_angle_quotes */ null,
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
@@ -2744,6 +2700,7 @@ public final class KeyboardTextsTable {
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
/* morekeys_u */ "\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u00FC,\u016F,\u0171",
+ /* keylabel_to_alpha */ null,
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -2752,7 +2709,6 @@ public final class KeyboardTextsTable {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
/* morekeys_i */ "\u012B,\u012F,\u00EC,\u00ED,\u00EE,\u00EF,\u0131",
- /* keylabel_to_alpha */ null,
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
@@ -2778,8 +2734,6 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,\u017C,\u017A",
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
/* morekeys_d */ "\u010F",
- /* single_angle_quotes */ null,
- /* double_angle_quotes */ null,
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
/* morekeys_t */ "\u0163,\u0165",
@@ -2791,6 +2745,8 @@ public final class KeyboardTextsTable {
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u0123,\u011F",
+ /* single_angle_quotes */ null,
+ /* double_angle_quotes */ null,
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
@@ -2802,15 +2758,16 @@ public final class KeyboardTextsTable {
/* Locale mk: Macedonian */
private static final String[] TEXTS_mk = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
@@ -2841,13 +2798,13 @@ public final class KeyboardTextsTable {
/* Locale ml: Malayalam */
private static final String[] TEXTS_ml = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0D05: "അ" MALAYALAM LETTER A
/* keylabel_to_alpha */ "\u0D05",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -2856,15 +2813,15 @@ public final class KeyboardTextsTable {
/* Locale mn: Mongolian */
private static final String[] TEXTS_mn = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20AE: "₮" TUGRIK SIGN
/* keyspec_currency */ "\u20AE",
@@ -2873,15 +2830,15 @@ public final class KeyboardTextsTable {
/* Locale mr: Marathi */
private static final String[] TEXTS_mr = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -2925,18 +2882,18 @@ public final class KeyboardTextsTable {
/* Locale my: Burmese */
private static final String[] TEXTS_my = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+1000: "က" MYANMAR LETTER KA
// U+1001: "ခ" MYANMAR LETTER KHA
// U+1002: "ဂ" MYANMAR LETTER GA
/* keylabel_to_alpha */ "\u1000\u1001\u1002",
- /* morekeys_n ~ */
+ /* morekeys_i ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null,
+ null, null, null, null,
/* ~ morekeys_cyrillic_soft_sign */
/* keyspec_period */ "\u104B",
/* morekeys_period */ null,
@@ -2994,7 +2951,7 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
- /* morekeys_i ~ */
+ /* keylabel_to_alpha ~ */
null, null, null, null,
/* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_rqm",
@@ -3023,15 +2980,15 @@ public final class KeyboardTextsTable {
/* Locale ne: Nepali */
private static final String[] TEXTS_ne = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0915: "क" DEVANAGARI LETTER KA
// U+0916: "ख" DEVANAGARI LETTER KHA
// U+0917: "ग" DEVANAGARI LETTER GA
/* keylabel_to_alpha */ "\u0915\u0916\u0917",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
/* keyspec_currency */ "\u0930\u0941.",
@@ -3114,6 +3071,7 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -3122,7 +3080,6 @@ public final class KeyboardTextsTable {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B,\u0133",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -3166,7 +3123,7 @@ public final class KeyboardTextsTable {
/* morekeys_e */ "\u0119,\u00E8,\u00E9,\u00EA,\u00EB,\u0117,\u0113",
/* morekeys_u ~ */
null, null, null,
- /* ~ keylabel_to_alpha */
+ /* ~ morekeys_i */
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u0144,\u00F1",
@@ -3186,9 +3143,8 @@ public final class KeyboardTextsTable {
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017C,\u017A,\u017E",
- /* morekeys_d ~ */
- null, null, null, null,
- /* ~ morekeys_t */
+ /* morekeys_d */ null,
+ /* morekeys_t */ null,
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
/* morekeys_l */ "\u0142",
};
@@ -3228,6 +3184,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -3235,7 +3192,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EE,\u00EC,\u00EF,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
/* morekeys_n */ null,
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
@@ -3269,8 +3225,8 @@ public final class KeyboardTextsTable {
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
/* morekeys_a */ "\u0103,\u00E2,\u00E3,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101",
/* morekeys_o ~ */
- null, null, null,
- /* ~ morekeys_u */
+ null, null, null, null,
+ /* ~ keylabel_to_alpha */
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -3278,9 +3234,8 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
- /* keylabel_to_alpha ~ */
- null, null, null,
- /* ~ morekeys_c */
+ /* morekeys_n */ null,
+ /* morekeys_c */ null,
/* double_quotes */ "!text/double_9qm_rqm",
// U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
@@ -3289,8 +3244,8 @@ public final class KeyboardTextsTable {
/* morekeys_s */ "\u0219,\u00DF,\u015B,\u0161",
/* single_quotes */ "!text/single_9qm_rqm",
/* keyspec_currency ~ */
- null, null, null, null, null, null,
- /* ~ double_angle_quotes */
+ null, null, null, null,
+ /* ~ morekeys_d */
// U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
/* morekeys_t */ "\u021B",
};
@@ -3298,15 +3253,16 @@ public final class KeyboardTextsTable {
/* Locale ru: Russian */
private static final String[] TEXTS_ru = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
@@ -3334,14 +3290,14 @@ public final class KeyboardTextsTable {
/* Locale si: Sinhala */
private static final String[] TEXTS_si = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0D85: "අ" SINHALA LETTER AYANNA
// U+0D86: "ආ" SINHALA LETTER AAYANNA
/* keylabel_to_alpha */ "\u0D85,\u0D86",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+0DBB/U+0DD4: "රු" SINHALA LETTER RAYANNA/SINHALA VOWEL SIGN KETTI PAA-PILLA
/* keyspec_currency */ "\u0DBB\u0DD4",
@@ -3386,6 +3342,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
/* morekeys_u */ "\u00FA,\u016F,\u00FC,\u016B,\u0173,\u00F9,\u00FB,\u0171",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
@@ -3394,7 +3351,6 @@ public final class KeyboardTextsTable {
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
/* morekeys_i */ "\u00ED,\u012B,\u012F,\u00EC,\u00EE,\u00EF,\u0131",
- /* keylabel_to_alpha */ null,
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
@@ -3421,8 +3377,6 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,\u017C,\u017A",
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
/* morekeys_d */ "\u010F",
- /* single_angle_quotes */ "!text/single_raqm_laqm",
- /* double_angle_quotes */ "!text/double_raqm_laqm",
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
/* morekeys_t */ "\u0165,\u0163",
@@ -3434,6 +3388,8 @@ public final class KeyboardTextsTable {
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u0123,\u011F",
+ /* single_angle_quotes */ "!text/single_raqm_laqm",
+ /* double_angle_quotes */ "!text/double_raqm_laqm",
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
@@ -3460,6 +3416,9 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E",
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111",
+ /* morekeys_t ~ */
+ null, null, null,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
};
@@ -3467,27 +3426,27 @@ public final class KeyboardTextsTable {
/* Locale sr: Serbian */
private static final String[] TEXTS_sr = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// END: More keys definitions for Serbian (Cyrillic)
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
/* keyspec_currency ~ */
- null, null, null, null,
- /* ~ morekeys_d */
+ null, null, null, null, null, null, null,
+ /* ~ morekeys_g */
/* single_angle_quotes */ "!text/single_raqm_laqm",
/* double_angle_quotes */ "!text/double_raqm_laqm",
- /* morekeys_t ~ */
- null, null, null, null, null,
- /* ~ morekeys_k */
+ /* morekeys_r */ null,
+ /* morekeys_k */ null,
// U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE
/* morekeys_cyrillic_ie */ "\u0450",
/* keyspec_symbols_1 ~ */
@@ -3534,9 +3493,9 @@ public final class KeyboardTextsTable {
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
/* morekeys_e */ "\u00E8",
/* morekeys_u */ null,
+ /* keylabel_to_alpha */ null,
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
/* morekeys_i */ "\u00EC",
- /* keylabel_to_alpha */ null,
/* morekeys_n */ null,
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
@@ -3551,7 +3510,7 @@ public final class KeyboardTextsTable {
/* morekeys_z */ "\u017E,%",
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
/* morekeys_d */ "\u0111,%",
- /* single_angle_quotes ~ */
+ /* morekeys_t ~ */
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -3602,12 +3561,12 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,\u00FA,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
/* morekeys_i */ "\u00ED,\u00EC,\u00EE,\u00EF",
- /* keylabel_to_alpha */ null,
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
@@ -3634,14 +3593,14 @@ public final class KeyboardTextsTable {
// U+00F0: "ð" LATIN SMALL LETTER ETH
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
/* morekeys_d */ "\u00F0,\u010F",
- /* single_angle_quotes */ "!text/single_raqm_laqm",
- /* double_angle_quotes */ "!text/double_raqm_laqm",
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
// U+00FE: "þ" LATIN SMALL LETTER THORN
/* morekeys_t */ "\u0165,\u00FE",
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
/* morekeys_l */ "\u0142",
/* morekeys_g */ null,
+ /* single_angle_quotes */ "!text/single_raqm_laqm",
+ /* double_angle_quotes */ "!text/double_raqm_laqm",
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
/* morekeys_r */ "\u0159",
/* morekeys_k ~ */
@@ -3697,13 +3656,13 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
/* morekeys_i */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u00F1",
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
@@ -3712,7 +3671,7 @@ public final class KeyboardTextsTable {
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
/* morekeys_s */ "\u00DF",
/* single_quotes ~ */
- null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null,
/* ~ morekeys_l */
/* morekeys_g */ "g\'",
};
@@ -3720,15 +3679,15 @@ public final class KeyboardTextsTable {
/* Locale ta_IN: Tamil (India) */
private static final String[] TEXTS_ta_IN = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0BA4: "த" TAMIL LETTER TA
// U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
// U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
/* keylabel_to_alpha */ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+0BF9: "௹" TAMIL RUPEE SIGN
/* keyspec_currency */ "\u0BF9",
@@ -3737,15 +3696,15 @@ public final class KeyboardTextsTable {
/* Locale ta_LK: Tamil (Sri Lanka) */
private static final String[] TEXTS_ta_LK = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0BA4: "த" TAMIL LETTER TA
// U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
// U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
/* keylabel_to_alpha */ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+0DBB/U+0DD4: "රු" SINHALA LETTER RAYANNA/SINHALA VOWEL SIGN KETTI PAA-PILLA
/* keyspec_currency */ "\u0DBB\u0DD4",
@@ -3754,8 +3713,8 @@ public final class KeyboardTextsTable {
/* Locale ta_SG: Tamil (Singapore) */
private static final String[] TEXTS_ta_SG = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0BA4: "த" TAMIL LETTER TA
// U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
@@ -3766,15 +3725,15 @@ public final class KeyboardTextsTable {
/* Locale te: Telugu */
private static final String[] TEXTS_te = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0C05: "అ" TELUGU LETTER A
// U+0C06: "ఆ" TELUGU LETTER AA
// U+0C07: "ఇ" TELUGU LETTER I
/* keylabel_to_alpha */ "\u0C05\u0C06\u0C07",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+20B9: "₹" INDIAN RUPEE SIGN
/* keyspec_currency */ "\u20B9",
@@ -3783,15 +3742,15 @@ public final class KeyboardTextsTable {
/* Locale th: Thai */
private static final String[] TEXTS_th = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0E01: "ก" THAI CHARACTER KO KAI
// U+0E02: "ข" THAI CHARACTER KHO KHAI
// U+0E04: "ค" THAI CHARACTER KHO KHWAI
/* keylabel_to_alpha */ "\u0E01\u0E02\u0E04",
- /* morekeys_n ~ */
- null, null, null, null, null,
+ /* morekeys_i ~ */
+ null, null, null, null, null, null,
/* ~ single_quotes */
// U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
/* keyspec_currency */ "\u0E3F",
@@ -3834,6 +3793,7 @@ public final class KeyboardTextsTable {
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -3841,7 +3801,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
/* morekeys_n */ "\u00F1,\u0144",
@@ -3875,6 +3834,7 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
+ /* keylabel_to_alpha */ null,
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -3883,7 +3843,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u0148,\u00F1",
@@ -3904,7 +3863,7 @@ public final class KeyboardTextsTable {
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017E",
/* morekeys_d ~ */
- null, null, null, null, null,
+ null, null, null,
/* ~ morekeys_l */
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u011F",
@@ -3913,15 +3872,16 @@ public final class KeyboardTextsTable {
/* Locale uk: Ukrainian */
private static final String[] TEXTS_uk = {
/* morekeys_a ~ */
- null, null, null, null, null,
- /* ~ morekeys_i */
+ null, null, null, null,
+ /* ~ morekeys_u */
// Label for "switch to alphabetic" key.
// U+0410: "А" CYRILLIC CAPITAL LETTER A
// U+0411: "Б" CYRILLIC CAPITAL LETTER BE
// U+0412: "В" CYRILLIC CAPITAL LETTER VE
/* keylabel_to_alpha */ "\u0410\u0411\u0412",
- /* morekeys_n */ null,
- /* morekeys_c */ null,
+ /* morekeys_i ~ */
+ null, null, null,
+ /* ~ morekeys_c */
/* double_quotes */ "!text/double_9qm_lqm",
/* morekeys_s */ null,
/* single_quotes */ "!text/single_9qm_lqm",
@@ -3980,6 +3940,7 @@ public final class KeyboardTextsTable {
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
+ /* keylabel_to_alpha */ null,
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -3988,7 +3949,6 @@ public final class KeyboardTextsTable {
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
/* morekeys_i */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
- /* keylabel_to_alpha */ null,
// U+0148: "ň" LATIN SMALL LETTER N WITH CARON
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u0148,\u00F1",
@@ -4009,7 +3969,7 @@ public final class KeyboardTextsTable {
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
/* morekeys_z */ "\u017E",
/* morekeys_d ~ */
- null, null, null, null, null,
+ null, null, null,
/* ~ morekeys_l */
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
/* morekeys_g */ "\u011F",
@@ -4077,14 +4037,15 @@ public final class KeyboardTextsTable {
// U+1EEF: "ữ" LATIN SMALL LETTER U WITH HORN AND TILDE
// U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW
/* morekeys_u */ "\u00F9,\u00FA,\u1EE7,\u0169,\u1EE5,\u01B0,\u1EEB,\u1EE9,\u1EED,\u1EEF,\u1EF1",
+ /* keylabel_to_alpha */ null,
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE
// U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
// U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW
/* morekeys_i */ "\u00EC,\u00ED,\u1EC9,\u0129,\u1ECB",
- /* keylabel_to_alpha ~ */
- null, null, null, null, null, null,
+ /* morekeys_n ~ */
+ null, null, null, null, null,
/* ~ single_quotes */
// U+20AB: "₫" DONG SIGN
/* keyspec_currency */ "\u20AB",
@@ -4132,13 +4093,13 @@ public final class KeyboardTextsTable {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
/* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
+ /* keylabel_to_alpha */ null,
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
/* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
/* morekeys_n */ "\u00F1",
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
@@ -4195,6 +4156,7 @@ public final class KeyboardTextsTable {
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
/* morekeys_u */ "\u00F9,\u00FA,\u00FB,\u00FC,\u0169,\u016B,\u016D,\u016F,\u0171,\u0173",
+ /* keylabel_to_alpha */ null,
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
@@ -4206,7 +4168,6 @@ public final class KeyboardTextsTable {
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
// U+0133: "ij" LATIN SMALL LIGATURE IJ
/* morekeys_i */ "\u00EC,\u00ED,\u00EE,\u00EF,\u0129,\u012B,\u012D,\u012F,\u0131,\u0133",
- /* keylabel_to_alpha */ null,
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
@@ -4243,8 +4204,6 @@ public final class KeyboardTextsTable {
// U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
// U+00F0: "ð" LATIN SMALL LETTER ETH
/* morekeys_d */ "\u010F,\u0111,\u00F0",
- /* single_angle_quotes */ null,
- /* double_angle_quotes */ null,
// U+00FE: "þ" LATIN SMALL LETTER THORN
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
@@ -4261,6 +4220,8 @@ public final class KeyboardTextsTable {
// U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
/* morekeys_g */ "\u011D,\u011F,\u0121,\u0123",
+ /* single_angle_quotes */ null,
+ /* double_angle_quotes */ null,
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
@@ -4290,10 +4251,10 @@ public final class KeyboardTextsTable {
private static final Object[] LOCALES_AND_TEXTS = {
// "locale", TEXT_ARRAY, /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */
- "DEFAULT", TEXTS_DEFAULT, /* 179/179 DEFAULT */
+ "DEFAULT", TEXTS_DEFAULT, /* 180/180 DEFAULT */
"af" , TEXTS_af, /* 7/ 13 Afrikaans */
"ar" , TEXTS_ar, /* 55/110 Arabic */
- "az" , TEXTS_az, /* 11/ 20 Azerbaijani */
+ "az" , TEXTS_az, /* 11/ 18 Azerbaijani */
"be" , TEXTS_be, /* 9/ 54 Belarusian */
"bg" , TEXTS_bg, /* 2/ 9 Bulgarian */
"bn_BD" , TEXTS_bn_BD, /* 27/ 57 Bangla (Bangladesh) */
@@ -4303,7 +4264,7 @@ public final class KeyboardTextsTable {
"da" , TEXTS_da, /* 19/ 58 Danish */
"de" , TEXTS_de, /* 16/ 64 German */
"de_DE" , TEXTS_de_DE, /* 16/ 64 German (Germany) */
- "el" , TEXTS_el, /* 1/ 6 Greek */
+ "el" , TEXTS_el, /* 1/ 5 Greek */
"en" , TEXTS_en, /* 8/ 10 English */
"eo" , TEXTS_eo, /* 26/126 Esperanto */
"es" , TEXTS_es, /* 8/ 65 Spanish */
@@ -4315,10 +4276,10 @@ public final class KeyboardTextsTable {
"gl" , TEXTS_gl, /* 7/ 8 Galician */
"hi" , TEXTS_hi, /* 27/ 57 Hindi */
"hi_ZZ" , TEXTS_hi_ZZ, /* 9/118 Hindi (Unknown Region) */
- "hr" , TEXTS_hr, /* 9/ 17 Croatian */
- "hu" , TEXTS_hu, /* 9/ 17 Hungarian */
+ "hr" , TEXTS_hr, /* 9/ 20 Croatian */
+ "hu" , TEXTS_hu, /* 9/ 20 Hungarian */
"hy" , TEXTS_hy, /* 9/134 Armenian */
- "is" , TEXTS_is, /* 10/ 18 Icelandic */
+ "is" , TEXTS_is, /* 10/ 16 Icelandic */
"it" , TEXTS_it, /* 11/ 64 Italian */
"iw" , TEXTS_iw, /* 20/131 Hebrew */
"ka" , TEXTS_ka, /* 3/ 11 Georgian */
@@ -4326,7 +4287,6 @@ public final class KeyboardTextsTable {
"km" , TEXTS_km, /* 2/130 Khmer */
"kn" , TEXTS_kn, /* 2/ 12 Kannada */
"ky" , TEXTS_ky, /* 10/ 92 Kyrgyz */
- "lb" , TEXTS_lb, /* 11/ 17 Luxembourgish */
"lo" , TEXTS_lo, /* 2/ 12 Lao */
"lt" , TEXTS_lt, /* 18/ 22 Lithuanian */
"lv" , TEXTS_lv, /* 18/ 22 Latvian */
@@ -4338,27 +4298,27 @@ public final class KeyboardTextsTable {
"nb" , TEXTS_nb, /* 11/ 58 Norwegian Bokmål */
"ne" , TEXTS_ne, /* 27/ 57 Nepali */
"nl" , TEXTS_nl, /* 9/ 13 Dutch */
- "pl" , TEXTS_pl, /* 10/ 19 Polish */
+ "pl" , TEXTS_pl, /* 10/ 17 Polish */
"pt" , TEXTS_pt, /* 6/ 8 Portuguese */
"rm" , TEXTS_rm, /* 1/ 2 Romansh */
- "ro" , TEXTS_ro, /* 6/ 18 Romanian */
+ "ro" , TEXTS_ro, /* 6/ 16 Romanian */
"ru" , TEXTS_ru, /* 9/ 54 Russian */
"si" , TEXTS_si, /* 2/ 12 Sinhala */
"sk" , TEXTS_sk, /* 20/ 22 Slovak */
- "sl" , TEXTS_sl, /* 8/ 17 Slovenian */
+ "sl" , TEXTS_sl, /* 8/ 20 Slovenian */
"sr" , TEXTS_sr, /* 11/ 97 Serbian */
"sr_ZZ" , TEXTS_sr_ZZ, /* 14/118 Serbian (Unknown Region) */
"sv" , TEXTS_sv, /* 21/ 58 Swedish */
- "sw" , TEXTS_sw, /* 9/ 20 Swahili */
+ "sw" , TEXTS_sw, /* 9/ 18 Swahili */
"ta_IN" , TEXTS_ta_IN, /* 2/ 12 Tamil (India) */
"ta_LK" , TEXTS_ta_LK, /* 2/ 12 Tamil (Sri Lanka) */
- "ta_SG" , TEXTS_ta_SG, /* 1/ 6 Tamil (Singapore) */
+ "ta_SG" , TEXTS_ta_SG, /* 1/ 5 Tamil (Singapore) */
"te" , TEXTS_te, /* 2/ 12 Telugu */
"th" , TEXTS_th, /* 2/ 12 Thai */
"tl" , TEXTS_tl, /* 7/ 8 Tagalog */
- "tr" , TEXTS_tr, /* 11/ 20 Turkish */
+ "tr" , TEXTS_tr, /* 11/ 18 Turkish */
"uk" , TEXTS_uk, /* 11/ 91 Ukrainian */
- "uz" , TEXTS_uz, /* 11/ 20 Uzbek */
+ "uz" , TEXTS_uz, /* 11/ 18 Uzbek */
"vi" , TEXTS_vi, /* 8/ 15 Vietnamese */
"zu" , TEXTS_zu, /* 8/ 10 Zulu */
"zz" , TEXTS_zz, /* 19/120 Alphabet */
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/KeyboardWrapperView.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/KeyboardWrapperView.kt
new file mode 100644
index 000000000..8aa4cb942
--- /dev/null
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/KeyboardWrapperView.kt
@@ -0,0 +1,131 @@
+package org.dslul.openboard.inputmethod.latin
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.util.AttributeSet
+import android.view.Gravity
+import android.view.View
+import android.widget.FrameLayout
+import android.widget.ImageButton
+import org.dslul.openboard.inputmethod.keyboard.KeyboardActionListener
+import org.dslul.openboard.inputmethod.latin.common.Constants
+
+class KeyboardWrapperView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyle: Int = 0
+) : FrameLayout(context, attrs, defStyle), View.OnClickListener {
+
+ var keyboardActionListener: KeyboardActionListener? = null
+
+ private lateinit var stopOneHandedModeBtn: ImageButton
+ private lateinit var switchOneHandedModeBtn: ImageButton
+ private lateinit var keyboardView: View
+ private val iconStopOneHandedModeId: Int
+ private val iconSwitchOneHandedModeId: Int
+
+ var oneHandedModeEnabled = false
+ set(enabled) {
+ field = enabled
+ updateViewsVisibility()
+ requestLayout()
+ }
+
+ var oneHandedGravity = Gravity.NO_GRAVITY
+ set(value) {
+ field = value
+ updateSwitchButtonSide()
+ requestLayout()
+ }
+
+
+ override fun onFinishInflate() {
+ super.onFinishInflate()
+ stopOneHandedModeBtn = findViewById(R.id.btn_stop_one_handed_mode)
+ stopOneHandedModeBtn.setImageResource(iconStopOneHandedModeId)
+ stopOneHandedModeBtn.visibility = GONE
+ switchOneHandedModeBtn = findViewById(R.id.btn_switch_one_handed_mode)
+ switchOneHandedModeBtn.setImageResource(iconSwitchOneHandedModeId)
+ switchOneHandedModeBtn.visibility = GONE
+ keyboardView = findViewById(R.id.keyboard_view)
+
+ stopOneHandedModeBtn.setOnClickListener(this)
+ switchOneHandedModeBtn.setOnClickListener(this)
+ }
+
+ @SuppressLint("RtlHardcoded")
+ fun switchOneHandedModeSide() {
+ oneHandedGravity = if (oneHandedGravity == Gravity.LEFT) Gravity.RIGHT else Gravity.LEFT
+ }
+
+ private fun updateViewsVisibility() {
+ stopOneHandedModeBtn.visibility = if (oneHandedModeEnabled) VISIBLE else GONE
+ switchOneHandedModeBtn.visibility = if (oneHandedModeEnabled) VISIBLE else GONE
+ }
+
+ private fun updateSwitchButtonSide() {
+ switchOneHandedModeBtn.scaleX = if (oneHandedGravity == Gravity.RIGHT) -1f else 1f
+ }
+
+ override fun onClick(view: View) {
+ if (view === stopOneHandedModeBtn) {
+ keyboardActionListener?.onCodeInput(Constants.CODE_STOP_ONE_HANDED_MODE,
+ Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
+ false /* isKeyRepeat */)
+ } else if (view === switchOneHandedModeBtn) {
+ keyboardActionListener?.onCodeInput(Constants.CODE_SWITCH_ONE_HANDED_MODE,
+ Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
+ false /* isKeyRepeat */)
+ }
+ }
+
+ @SuppressLint("RtlHardcoded")
+ override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
+ if (!oneHandedModeEnabled) {
+ super.onLayout(changed, left, top, right, bottom)
+ return
+ }
+
+ val isLeftGravity = oneHandedGravity == Gravity.LEFT
+ val width = right - left
+ val spareWidth = width - keyboardView.measuredWidth
+
+ val keyboardLeft = if (isLeftGravity) 0 else spareWidth
+ keyboardView.layout(
+ keyboardLeft,
+ 0,
+ keyboardLeft + keyboardView.measuredWidth,
+ keyboardView.measuredHeight
+ )
+
+ val buttonsLeft = if (isLeftGravity) keyboardView.measuredWidth else 0
+ stopOneHandedModeBtn.layout(
+ buttonsLeft + (spareWidth - stopOneHandedModeBtn.measuredWidth) / 2,
+ stopOneHandedModeBtn.measuredHeight / 2,
+ buttonsLeft + (spareWidth + stopOneHandedModeBtn.measuredWidth) / 2,
+ 3 * stopOneHandedModeBtn.measuredHeight / 2
+ )
+ switchOneHandedModeBtn.layout(
+ buttonsLeft + (spareWidth - switchOneHandedModeBtn.measuredWidth) / 2,
+ 2 * stopOneHandedModeBtn.measuredHeight,
+ buttonsLeft + (spareWidth + switchOneHandedModeBtn.measuredWidth) / 2,
+ 2 * stopOneHandedModeBtn.measuredHeight + switchOneHandedModeBtn.measuredHeight
+ )
+ }
+
+ init {
+ val keyboardAttr = context.obtainStyledAttributes(attrs,
+ R.styleable.Keyboard, defStyle, R.style.Keyboard)
+ iconStopOneHandedModeId = keyboardAttr.getResourceId(R.styleable.Keyboard_iconStopOneHandedMode, 0)
+ iconSwitchOneHandedModeId = keyboardAttr.getResourceId(R.styleable.Keyboard_iconSwitchOneHandedMode, 0)
+ keyboardAttr.recycle()
+
+ val themeAttr = context.obtainStyledAttributes(attrs,
+ R.styleable.KeyboardTheme, defStyle, 0)
+ val keyboardViewStyleId = themeAttr.getResourceId(R.styleable.KeyboardTheme_mainKeyboardViewStyle, 0)
+ themeAttr.recycle()
+ val styleAttr = context.obtainStyledAttributes(keyboardViewStyleId, intArrayOf(android.R.attr.background))
+ setBackgroundResource(styleAttr.getResourceId(0, 0))
+ styleAttr.recycle()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
index b104e64cb..87a93a8d0 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java
@@ -1341,11 +1341,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
}
}
- int getCurrentAutoCapsState() {
+ public int getCurrentAutoCapsState() {
return mInputLogic.getCurrentAutoCapsState(mSettings.getCurrent());
}
- int getCurrentRecapitalizeState() {
+ public int getCurrentRecapitalizeState() {
return mInputLogic.getCurrentRecapitalizeState();
}
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Constants.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Constants.java
index 7311d8b55..d65f5112c 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Constants.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/common/Constants.java
@@ -247,8 +247,11 @@ public final class Constants {
public static final int CODE_SYMBOL_SHIFT = -14;
public static final int CODE_ALPHA_FROM_EMOJI = -15;
public static final int CODE_ALPHA_FROM_CLIPBOARD = -16;
+ public static final int CODE_START_ONE_HANDED_MODE = -17;
+ public static final int CODE_STOP_ONE_HANDED_MODE = -18;
+ public static final int CODE_SWITCH_ONE_HANDED_MODE = -19;
// Code value representing the code is not specified.
- public static final int CODE_UNSPECIFIED = -17;
+ public static final int CODE_UNSPECIFIED = -20;
public static boolean isLetterCode(final int code) {
return code >= CODE_SPACE;
@@ -276,6 +279,9 @@ public final class Constants {
case CODE_TAB: return "tab";
case CODE_ENTER: return "enter";
case CODE_SPACE: return "space";
+ case CODE_START_ONE_HANDED_MODE: return "startOneHandedMode";
+ case CODE_STOP_ONE_HANDED_MODE: return "stopOneHandedMode";
+ case CODE_SWITCH_ONE_HANDED_MODE: return "switchOneHandedMode";
default:
if (code < CODE_SPACE) return String.format("\\u%02X", code);
if (code < 0x100) return String.format("%c", code);
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java
index 1f85f6622..333d0957d 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java
@@ -717,6 +717,15 @@ public final class InputLogic {
// line, so that does affect the contents of the editor.
inputTransaction.setDidAffectContents();
break;
+ case Constants.CODE_START_ONE_HANDED_MODE:
+ case Constants.CODE_STOP_ONE_HANDED_MODE:
+ // Note: One-handed mode activation is being
+ // handled in {@link KeyboardState#onEvent(Event,int)}.
+ break;
+ case Constants.CODE_SWITCH_ONE_HANDED_MODE:
+ // Note: Switching one-handed side is being
+ // handled in {@link KeyboardState#onEvent(Event,int)}.
+ break;
default:
throw new RuntimeException("Unknown key code : " + event.getMKeyCode());
}
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java
index 7400620e2..24990a334 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java
@@ -16,6 +16,7 @@
package org.dslul.openboard.inputmethod.latin.settings;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
@@ -24,6 +25,7 @@ import android.content.res.Resources;
import android.os.Build;
import android.util.Log;
+import android.view.Gravity;
import org.dslul.openboard.inputmethod.latin.AudioAndHapticFeedbackManager;
import org.dslul.openboard.inputmethod.latin.InputAttributes;
import org.dslul.openboard.inputmethod.latin.R;
@@ -107,6 +109,9 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
"pref_gesture_floating_preview_text";
public static final String PREF_SHOW_SETUP_WIZARD_ICON = "pref_show_setup_wizard_icon";
+ public static final String PREF_ONE_HANDED_MODE = "pref_one_handed_mode_enabled";
+ public static final String PREF_ONE_HANDED_GRAVITY = "pref_one_handed_mode_gravity";
+
public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal";
public static final String PREF_ENABLE_METRICS_LOGGING = "pref_enable_metrics_logging";
@@ -403,6 +408,23 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
return prefs.getBoolean(PREF_SHOW_SETUP_WIZARD_ICON, false);
}
+ public static boolean readOneHandedModeEnabled(final SharedPreferences prefs) {
+ return prefs.getBoolean(PREF_ONE_HANDED_MODE, false);
+ }
+
+ public void writeOneHandedModeEnabled(final boolean enabled) {
+ mPrefs.edit().putBoolean(PREF_ONE_HANDED_MODE, enabled).apply();
+ }
+
+ @SuppressLint("RtlHardcoded")
+ public static int readOneHandedModeGravity(final SharedPreferences prefs) {
+ return prefs.getInt(PREF_ONE_HANDED_GRAVITY, Gravity.LEFT);
+ }
+
+ public void writeOneHandedModeGravity(final int gravity) {
+ mPrefs.edit().putInt(PREF_ONE_HANDED_GRAVITY, gravity).apply();
+ }
+
public static boolean readHasHardwareKeyboard(final Configuration conf) {
// The standard way of finding out whether we have a hardware keyboard. This code is taken
// from InputMethodService#onEvaluateInputShown, which canonically determines this.
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java
index 76c536ca5..009018892 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java
@@ -82,6 +82,8 @@ public class SettingsValues {
public final boolean mDeleteSwipeEnabled;
public final boolean mClipboardHistoryEnabled;
public final long mClipboardHistoryRetentionTime;
+ public final boolean mOneHandedModeEnabled;
+ public final int mOneHandedModeGravity;
// Use bigrams to predict the next word when there is no input for it yet
public final boolean mBigramPredictionEnabled;
public final boolean mGestureInputEnabled;
@@ -237,6 +239,8 @@ public class SettingsValues {
mDeleteSwipeEnabled = Settings.readDeleteSwipeEnabled(prefs);
mClipboardHistoryEnabled = Settings.readClipboardHistoryEnabled(prefs);
mClipboardHistoryRetentionTime = Settings.readClipboardHistoryRetentionTime(prefs, res);
+ mOneHandedModeEnabled = Settings.readOneHandedModeEnabled(prefs);
+ mOneHandedModeGravity = Settings.readOneHandedModeGravity(prefs);
}
public boolean isMetricsLoggingEnabled() {
diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ResourceUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ResourceUtils.java
index 25fd4ea62..ecf9df1e0 100644
--- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ResourceUtils.java
+++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ResourceUtils.java
@@ -182,6 +182,15 @@ public final class ResourceUtils {
return matchedAll;
}
+ public static int getKeyboardWidth(final Resources res, final SettingsValues settingsValues) {
+ final int defaultKeyboardWidth = getDefaultKeyboardWidth(res);
+ if (settingsValues.mOneHandedModeEnabled) {
+ return (int) res.getFraction(R.fraction.config_one_handed_mode_width_ratio,
+ defaultKeyboardWidth, defaultKeyboardWidth);
+ }
+ return defaultKeyboardWidth;
+ }
+
public static int getDefaultKeyboardWidth(final Resources res) {
final DisplayMetrics dm = res.getDisplayMetrics();
return dm.widthPixels;
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_holo_dark.png b/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_holo_dark.png
new file mode 100644
index 000000000..5575ae649
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_lxx_dark.png b/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_lxx_dark.png
new file mode 100644
index 000000000..3454ccd33
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_lxx_light.png b/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_lxx_light.png
new file mode 100644
index 000000000..e45c25ee2
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_start_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_holo_dark.png b/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_holo_dark.png
new file mode 100644
index 000000000..ee2b35a7b
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_lxx_dark.png b/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_lxx_dark.png
new file mode 100644
index 000000000..2e08a09da
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_lxx_light.png b/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_lxx_light.png
new file mode 100644
index 000000000..ac8a933a0
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_stop_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_holo_dark.png b/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_holo_dark.png
new file mode 100644
index 000000000..e4081cd38
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_lxx_dark.png b/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_lxx_dark.png
new file mode 100644
index 000000000..a1e67f662
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_lxx_light.png b/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_lxx_light.png
new file mode 100644
index 000000000..ff5b88b98
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/sym_keyboard_switch_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-mdpi/sym_keyboard_start_onehanded_holo_dark.png b/app/src/main/res/drawable-mdpi/sym_keyboard_start_onehanded_holo_dark.png
new file mode 100644
index 000000000..69e837ff6
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sym_keyboard_start_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/sym_keyboard_stop_onehanded_holo_dark.png b/app/src/main/res/drawable-mdpi/sym_keyboard_stop_onehanded_holo_dark.png
new file mode 100644
index 000000000..77b19dcff
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sym_keyboard_stop_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/sym_keyboard_switch_onehanded_holo_dark.png b/app/src/main/res/drawable-mdpi/sym_keyboard_switch_onehanded_holo_dark.png
new file mode 100644
index 000000000..defc2e09c
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/sym_keyboard_switch_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_holo_dark.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_holo_dark.png
new file mode 100644
index 000000000..4e52daf80
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_lxx_dark.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_lxx_dark.png
new file mode 100644
index 000000000..4b3089b02
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_lxx_light.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_lxx_light.png
new file mode 100644
index 000000000..fa6ec548e
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_start_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_holo_dark.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_holo_dark.png
new file mode 100644
index 000000000..def1f49bc
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_lxx_dark.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_lxx_dark.png
new file mode 100644
index 000000000..56d994593
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_lxx_light.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_lxx_light.png
new file mode 100644
index 000000000..3b20ff012
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_stop_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_holo_dark.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_holo_dark.png
new file mode 100644
index 000000000..76975aafc
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_lxx_dark.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_lxx_dark.png
new file mode 100644
index 000000000..809c5e376
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_lxx_light.png b/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_lxx_light.png
new file mode 100644
index 000000000..760749426
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/sym_keyboard_switch_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_holo_dark.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_holo_dark.png
new file mode 100644
index 000000000..197dcc5e1
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_lxx_dark.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_lxx_dark.png
new file mode 100644
index 000000000..f7b9b083c
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_lxx_light.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_lxx_light.png
new file mode 100644
index 000000000..1f3b360ff
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_start_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_holo_dark.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_holo_dark.png
new file mode 100644
index 000000000..e2e360959
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_lxx_dark.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_lxx_dark.png
new file mode 100644
index 000000000..ad3ef0154
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_lxx_light.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_lxx_light.png
new file mode 100644
index 000000000..fdd22dcf7
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_stop_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_holo_dark.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_holo_dark.png
new file mode 100644
index 000000000..0afe49c60
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_lxx_dark.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_lxx_dark.png
new file mode 100644
index 000000000..ac84f4a37
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_lxx_light.png b/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_lxx_light.png
new file mode 100644
index 000000000..cb829e801
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/sym_keyboard_switch_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_holo_dark.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_holo_dark.png
new file mode 100644
index 000000000..3baac7a41
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_lxx_dark.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_lxx_dark.png
new file mode 100644
index 000000000..f779f3743
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_lxx_light.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_lxx_light.png
new file mode 100644
index 000000000..26e1b6d26
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_start_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_holo_dark.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_holo_dark.png
new file mode 100644
index 000000000..55e337a91
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_lxx_dark.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_lxx_dark.png
new file mode 100644
index 000000000..37aaada86
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_lxx_light.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_lxx_light.png
new file mode 100644
index 000000000..ee24cc6a8
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_stop_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_holo_dark.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_holo_dark.png
new file mode 100644
index 000000000..2ba869fd5
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_holo_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_lxx_dark.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_lxx_dark.png
new file mode 100644
index 000000000..5612928f2
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_lxx_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_lxx_light.png b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_lxx_light.png
new file mode 100644
index 000000000..b1270b376
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/sym_keyboard_switch_onehanded_lxx_light.png differ
diff --git a/app/src/main/res/layout/main_keyboard_frame.xml b/app/src/main/res/layout/main_keyboard_frame.xml
index 4ae685f25..581245e36 100644
--- a/app/src/main/res/layout/main_keyboard_frame.xml
+++ b/app/src/main/res/layout/main_keyboard_frame.xml
@@ -37,9 +37,30 @@
-
+ android:layout_height="wrap_content"
+ android:layoutDirection="ltr" >
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index db069751e..88a978d0b 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -290,6 +290,9 @@
+
+
+
diff --git a/app/src/main/res/values/config.xml b/app/src/main/res/values/config.xml
index 240dc243e..b52568099 100644
--- a/app/src/main/res/values/config.xml
+++ b/app/src/main/res/values/config.xml
@@ -27,6 +27,9 @@
8.0dp
+
+ 86%
+
205.6dp
diff --git a/app/src/main/res/values/keyboard-icons-holo.xml b/app/src/main/res/values/keyboard-icons-holo.xml
index c6d956096..ce1f6ee26 100644
--- a/app/src/main/res/values/keyboard-icons-holo.xml
+++ b/app/src/main/res/values/keyboard-icons-holo.xml
@@ -41,5 +41,8 @@
- @drawable/sym_keyboard_clipboard_holo_dark
- @drawable/sym_keyboard_clipboard_holo_dark
- @drawable/sym_keyboard_clear_clipboard_holo_dark
+ - @drawable/sym_keyboard_start_onehanded_holo_dark
+ - @drawable/sym_keyboard_stop_onehanded_holo_dark
+ - @drawable/sym_keyboard_switch_onehanded_holo_dark
diff --git a/app/src/main/res/values/keyboard-icons-lxx-dark-parent.xml b/app/src/main/res/values/keyboard-icons-lxx-dark-parent.xml
index fdc0f8989..73ea197e7 100644
--- a/app/src/main/res/values/keyboard-icons-lxx-dark-parent.xml
+++ b/app/src/main/res/values/keyboard-icons-lxx-dark-parent.xml
@@ -46,5 +46,8 @@
- @drawable/sym_keyboard_clipboard_lxx_dark
- @drawable/sym_keyboard_clipboard_lxx_dark
- @drawable/sym_keyboard_clear_clipboard_lxx_dark
+ - @drawable/sym_keyboard_start_onehanded_lxx_dark
+ - @drawable/sym_keyboard_stop_onehanded_lxx_dark
+ - @drawable/sym_keyboard_switch_onehanded_lxx_dark
diff --git a/app/src/main/res/values/keyboard-icons-lxx-light-parent.xml b/app/src/main/res/values/keyboard-icons-lxx-light-parent.xml
index 0ad76be05..220e6b2e9 100644
--- a/app/src/main/res/values/keyboard-icons-lxx-light-parent.xml
+++ b/app/src/main/res/values/keyboard-icons-lxx-light-parent.xml
@@ -46,5 +46,8 @@
- @drawable/sym_keyboard_clipboard_lxx_dark
- @drawable/sym_keyboard_clipboard_lxx_light
- @drawable/sym_keyboard_clear_clipboard_lxx_light
+ - @drawable/sym_keyboard_start_onehanded_lxx_light
+ - @drawable/sym_keyboard_stop_onehanded_lxx_light
+ - @drawable/sym_keyboard_switch_onehanded_lxx_light
diff --git a/app/src/main/res/xml/key_styles_settings.xml b/app/src/main/res/xml/key_styles_settings.xml
index 32bbad3fe..b433c2d70 100644
--- a/app/src/main/res/xml/key_styles_settings.xml
+++ b/app/src/main/res/xml/key_styles_settings.xml
@@ -35,36 +35,36 @@
latin:languageSwitchKeyEnabled="true"
>
+ latin:styleName="settingsMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:additionalMoreKeys="!text/keyspec_settings,!text/keyspec_clipboard_normal_key,!text/keyspec_start_onehanded_mode"
+ latin:backgroundType="functional" />
+ latin:styleName="settingsMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:additionalMoreKeys="!text/keyspec_settings,!text/keyspec_clipboard_normal_key,!text/keyspec_emoji_normal_key,!text/keyspec_start_onehanded_mode"
+ latin:backgroundType="functional" />
+ latin:styleName="settingsMoreKeysStyle"
+ latin:keyLabelFlags="hasPopupHint"
+ latin:additionalMoreKeys="!text/keyspec_settings,!icon/language_switch_key|!code/key_language_switch,!text/keyspec_clipboard_normal_key,!text/keyspec_start_onehanded_mode"
+ latin:backgroundType="functional" />
diff --git a/tools/make-keyboard-text/src/main/resources/values/donottranslate-more-keys.xml b/tools/make-keyboard-text/src/main/resources/values/donottranslate-more-keys.xml
index 7a9964ca1..3ebd4c1dc 100644
--- a/tools/make-keyboard-text/src/main/resources/values/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/src/main/resources/values/donottranslate-more-keys.xml
@@ -262,6 +262,7 @@
!icon/emoji_normal_key|!code/key_emoji
!icon/clipboard_action_key|!code/key_clipboard
!icon/clipboard_normal_key|!code/key_clipboard
+ !icon/start_onehanded_mode_key|!code/key_start_onehanded
!string/label_go_key
!string/label_send_key
!string/label_next_key