Loading java/res/values/attrs.xml +2 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,8 @@ <attr name="enableProximityCharsCorrection" format="boolean" /> <!-- Indicates if the keyboard layout supports being split or not. false by default --> <attr name="supportsSplitLayout" format="boolean" /> <!-- Allow redundant more keys when they are in the base layout. true by default. --> <attr name="allowRedundantMoreKeys" format="boolean" /> </declare-styleable> <declare-styleable name="KeyboardLayoutSet_Feature"> Loading java/res/xml/keyboard_layout_set_nordic.xml +2 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,8 @@ <Element latin:elementName="alphabet" latin:elementKeyboard="@xml/kbd_nordic" latin:enableProximityCharsCorrection="true" /> latin:enableProximityCharsCorrection="true" latin:allowRedundantMoreKeys="true" /> <Element latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> Loading java/res/xml/keyboard_layout_set_swiss.xml +2 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,8 @@ <Element latin:elementName="alphabet" latin:elementKeyboard="@xml/kbd_swiss" latin:enableProximityCharsCorrection="true" /> latin:enableProximityCharsCorrection="true" latin:allowRedundantMoreKeys="true" /> <Element latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> Loading java/src/com/android/inputmethod/compat/CharacterCompat.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.inputmethod.compat; import java.lang.reflect.Method; public final class CharacterCompat { // Note that Character.isAlphabetic(int), has been introduced in API level 19 // (Build.VERSION_CODE.KITKAT). private static final Method METHOD_isAlphabetic = CompatUtils.getMethod( Character.class, "isAlphabetic", int.class); private CharacterCompat() { // This utility class is not publicly instantiable. } public static boolean isAlphabetic(final int code) { if (METHOD_isAlphabetic != null) { return (Boolean)CompatUtils.invoke(null, false, METHOD_isAlphabetic, code); } switch (Character.getType(code)) { case Character.UPPERCASE_LETTER: case Character.LOWERCASE_LETTER: case Character.TITLECASE_LETTER: case Character.MODIFIER_LETTER: case Character.OTHER_LETTER: case Character.LETTER_NUMBER: return true; default: return false; } } } java/src/com/android/inputmethod/keyboard/Key.java +13 −1 Original line number Diff line number Diff line Loading @@ -395,6 +395,10 @@ public class Key implements Comparable<Key> { * @param key the original key. */ protected Key(final Key key) { this(key, key.mMoreKeys); } private Key(final Key key, final MoreKeySpec[] moreKeys) { // Final attributes. mCode = key.mCode; mLabel = key.mLabel; Loading @@ -408,7 +412,7 @@ public class Key implements Comparable<Key> { mX = key.mX; mY = key.mY; mHitBox.set(key.mHitBox); mMoreKeys = key.mMoreKeys; mMoreKeys = moreKeys; mMoreKeysColumnAndFlags = key.mMoreKeysColumnAndFlags; mBackgroundType = key.mBackgroundType; mActionFlags = key.mActionFlags; Loading @@ -420,6 +424,14 @@ public class Key implements Comparable<Key> { mEnabled = key.mEnabled; } public static Key removeRedundantMoreKeys(final Key key, final MoreKeySpec.LettersOnBaseLayout lettersOnBaseLayout) { final MoreKeySpec[] moreKeys = key.getMoreKeys(); final MoreKeySpec[] filteredMoreKeys = MoreKeySpec.removeRedundantMoreKeys( moreKeys, lettersOnBaseLayout); return (filteredMoreKeys == moreKeys) ? key : new Key(key, filteredMoreKeys); } private static boolean needsToUpperCase(final int labelFlags, final int keyboardElementId) { if ((labelFlags & LABEL_FLAGS_PRESERVE_CASE) != 0) return false; switch (keyboardElementId) { Loading Loading
java/res/values/attrs.xml +2 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,8 @@ <attr name="enableProximityCharsCorrection" format="boolean" /> <!-- Indicates if the keyboard layout supports being split or not. false by default --> <attr name="supportsSplitLayout" format="boolean" /> <!-- Allow redundant more keys when they are in the base layout. true by default. --> <attr name="allowRedundantMoreKeys" format="boolean" /> </declare-styleable> <declare-styleable name="KeyboardLayoutSet_Feature"> Loading
java/res/xml/keyboard_layout_set_nordic.xml +2 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,8 @@ <Element latin:elementName="alphabet" latin:elementKeyboard="@xml/kbd_nordic" latin:enableProximityCharsCorrection="true" /> latin:enableProximityCharsCorrection="true" latin:allowRedundantMoreKeys="true" /> <Element latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> Loading
java/res/xml/keyboard_layout_set_swiss.xml +2 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,8 @@ <Element latin:elementName="alphabet" latin:elementKeyboard="@xml/kbd_swiss" latin:enableProximityCharsCorrection="true" /> latin:enableProximityCharsCorrection="true" latin:allowRedundantMoreKeys="true" /> <Element latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> Loading
java/src/com/android/inputmethod/compat/CharacterCompat.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.inputmethod.compat; import java.lang.reflect.Method; public final class CharacterCompat { // Note that Character.isAlphabetic(int), has been introduced in API level 19 // (Build.VERSION_CODE.KITKAT). private static final Method METHOD_isAlphabetic = CompatUtils.getMethod( Character.class, "isAlphabetic", int.class); private CharacterCompat() { // This utility class is not publicly instantiable. } public static boolean isAlphabetic(final int code) { if (METHOD_isAlphabetic != null) { return (Boolean)CompatUtils.invoke(null, false, METHOD_isAlphabetic, code); } switch (Character.getType(code)) { case Character.UPPERCASE_LETTER: case Character.LOWERCASE_LETTER: case Character.TITLECASE_LETTER: case Character.MODIFIER_LETTER: case Character.OTHER_LETTER: case Character.LETTER_NUMBER: return true; default: return false; } } }
java/src/com/android/inputmethod/keyboard/Key.java +13 −1 Original line number Diff line number Diff line Loading @@ -395,6 +395,10 @@ public class Key implements Comparable<Key> { * @param key the original key. */ protected Key(final Key key) { this(key, key.mMoreKeys); } private Key(final Key key, final MoreKeySpec[] moreKeys) { // Final attributes. mCode = key.mCode; mLabel = key.mLabel; Loading @@ -408,7 +412,7 @@ public class Key implements Comparable<Key> { mX = key.mX; mY = key.mY; mHitBox.set(key.mHitBox); mMoreKeys = key.mMoreKeys; mMoreKeys = moreKeys; mMoreKeysColumnAndFlags = key.mMoreKeysColumnAndFlags; mBackgroundType = key.mBackgroundType; mActionFlags = key.mActionFlags; Loading @@ -420,6 +424,14 @@ public class Key implements Comparable<Key> { mEnabled = key.mEnabled; } public static Key removeRedundantMoreKeys(final Key key, final MoreKeySpec.LettersOnBaseLayout lettersOnBaseLayout) { final MoreKeySpec[] moreKeys = key.getMoreKeys(); final MoreKeySpec[] filteredMoreKeys = MoreKeySpec.removeRedundantMoreKeys( moreKeys, lettersOnBaseLayout); return (filteredMoreKeys == moreKeys) ? key : new Key(key, filteredMoreKeys); } private static boolean needsToUpperCase(final int labelFlags, final int keyboardElementId) { if ((labelFlags & LABEL_FLAGS_PRESERVE_CASE) != 0) return false; switch (keyboardElementId) { Loading