Loading java/res/values/attrs.xml +14 −16 Original line number Diff line number Diff line Loading @@ -41,26 +41,24 @@ checkable+checked+pressed. --> <attr name="keyBackground" format="reference" /> <!-- Size of the text for one letter keys. If not defined, keyLetterRatio takes effect. --> <attr name="keyLetterSize" format="dimension" /> <!-- Size of the text for keys with multiple letters. If not defined, keyLabelRatio takes effect. --> <attr name="keyLabelSize" format="dimension" /> <!-- Size of the text for one letter keys, in the proportion of key height. --> <attr name="keyLetterRatio" format="float" /> <!-- Size of the text for one letter keys. If specified as fraction, the text size is measured in the proportion of key height. --> <attr name="keyLetterSize" format="dimension|fraction" /> <!-- Size of the text for keys with multiple letters. If specified as fraction, the text size is measured in the proportion of key height. --> <attr name="keyLabelSize" format="dimension|fraction" /> <!-- Large size of the text for one letter keys, in the proportion of key height. --> <attr name="keyLargeLetterRatio" format="float" /> <!-- Size of the text for keys with multiple letters, in the proportion of key height. --> <attr name="keyLabelRatio" format="float" /> <attr name="keyLargeLetterRatio" format="fraction" /> <!-- Large size of the text for keys with multiple letters, in the proportion of key height. --> <attr name="keyLargeLabelRatio" format="float" /> <attr name="keyLargeLabelRatio" format="fraction" /> <!-- Size of the text for hint letter (= one character hint label), in the proportion of key height. --> <attr name="keyHintLetterRatio" format="float" /> <attr name="keyHintLetterRatio" format="fraction" /> <!-- Size of the text for hint label, in the proportion of key height. --> <attr name="keyHintLabelRatio" format="float" /> <attr name="keyHintLabelRatio" format="fraction" /> <!-- Size of the text for shifted letter hint, in the proportion of key height. --> <attr name="keyShiftedLetterHintRatio" format="float" /> <attr name="keyShiftedLetterHintRatio" format="dimension|fraction" /> <!-- Horizontal padding of left/right aligned key label to the edge of the key. --> <attr name="keyLabelHorizontalPadding" format="dimension" /> <!-- Right padding of hint letter to the edge of the key.--> Loading Loading @@ -96,8 +94,8 @@ <attr name="keyPreviewOffset" format="dimension" /> <!-- Height of the key press feedback popup. --> <attr name="keyPreviewHeight" format="dimension" /> <!-- Size of the text for key press feedback popup, int the proportion of key height --> <attr name="keyPreviewTextRatio" format="float" /> <!-- Size of the text for key press feedback popup, in the proportion of key height. --> <attr name="keyPreviewTextRatio" format="fraction" /> <!-- Delay after key releasing and key press feedback dismissing in millisecond --> <attr name="keyPreviewLingerTimeout" format="integer" /> Loading java/res/values/styles.xml +2 −2 Original line number Diff line number Diff line Loading @@ -35,9 +35,9 @@ <style name="KeyboardView"> <item name="android:background">@drawable/keyboard_background</item> <item name="keyBackground">@drawable/btn_keyboard_key</item> <item name="keyLetterRatio">@fraction/key_letter_ratio</item> <item name="keyLetterSize">@fraction/key_letter_ratio</item> <item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item> <item name="keyLabelRatio">@fraction/key_label_ratio</item> <item name="keyLabelSize">@fraction/key_label_ratio</item> <item name="keyLargeLabelRatio">@fraction/key_large_label_ratio</item> <item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item> <item name="keyHintLabelRatio">@fraction/key_hint_label_ratio</item> Loading java/src/com/android/inputmethod/keyboard/KeyboardView.java +20 −11 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // Miscellaneous constants private static final int[] LONG_PRESSABLE_STATE_SET = { android.R.attr.state_long_pressable }; private static final float UNDEFINED_RATIO = -1.0f; private static final int UNDEFINED_DIMENSION = -1; // XML attributes protected final float mVerticalCorrection; Loading Loading @@ -214,19 +215,15 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { public int mKeyHintLabelSize; public int mAnimAlpha; public KeyDrawParams(TypedArray a) { public KeyDrawParams(final TypedArray a) { mKeyBackground = a.getDrawable(R.styleable.KeyboardView_keyBackground); if (a.hasValue(R.styleable.KeyboardView_keyLetterSize)) { mKeyLetterRatio = UNDEFINED_RATIO; mKeyLetterSize = a.getDimensionPixelSize(R.styleable.KeyboardView_keyLetterSize, 0); } else { mKeyLetterRatio = getFraction(a, R.styleable.KeyboardView_keyLetterRatio); if (!isValidFraction(mKeyLetterRatio = getFraction(a, R.styleable.KeyboardView_keyLetterSize))) { mKeyLetterSize = getDimensionPixelSize(a, R.styleable.KeyboardView_keyLetterSize); } if (a.hasValue(R.styleable.KeyboardView_keyLabelSize)) { mKeyLabelRatio = UNDEFINED_RATIO; mKeyLabelSize = a.getDimensionPixelSize(R.styleable.KeyboardView_keyLabelSize, 0); } else { mKeyLabelRatio = getFraction(a, R.styleable.KeyboardView_keyLabelRatio); if (!isValidFraction(mKeyLabelRatio = getFraction(a, R.styleable.KeyboardView_keyLabelSize))) { mKeyLabelSize = getDimensionPixelSize(a, R.styleable.KeyboardView_keyLabelSize); } mKeyLargeLabelRatio = getFraction(a, R.styleable.KeyboardView_keyLargeLabelRatio); mKeyLargeLetterRatio = getFraction(a, R.styleable.KeyboardView_keyLargeLetterRatio); Loading Loading @@ -392,9 +389,21 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } static float getFraction(final TypedArray a, final int index) { final TypedValue value = a.peekValue(index); if (value == null || value.type != TypedValue.TYPE_FRACTION) { return UNDEFINED_RATIO; } return a.getFraction(index, 1, 1, UNDEFINED_RATIO); } public static int getDimensionPixelSize(final TypedArray a, final int index) { final TypedValue value = a.peekValue(index); if (value == null || value.type != TypedValue.TYPE_DIMENSION) { return UNDEFINED_DIMENSION; } return a.getDimensionPixelSize(index, UNDEFINED_DIMENSION); } /** * Attaches a keyboard to this view. The keyboard can be switched at any time and the * view will re-layout itself to accommodate the keyboard. Loading Loading
java/res/values/attrs.xml +14 −16 Original line number Diff line number Diff line Loading @@ -41,26 +41,24 @@ checkable+checked+pressed. --> <attr name="keyBackground" format="reference" /> <!-- Size of the text for one letter keys. If not defined, keyLetterRatio takes effect. --> <attr name="keyLetterSize" format="dimension" /> <!-- Size of the text for keys with multiple letters. If not defined, keyLabelRatio takes effect. --> <attr name="keyLabelSize" format="dimension" /> <!-- Size of the text for one letter keys, in the proportion of key height. --> <attr name="keyLetterRatio" format="float" /> <!-- Size of the text for one letter keys. If specified as fraction, the text size is measured in the proportion of key height. --> <attr name="keyLetterSize" format="dimension|fraction" /> <!-- Size of the text for keys with multiple letters. If specified as fraction, the text size is measured in the proportion of key height. --> <attr name="keyLabelSize" format="dimension|fraction" /> <!-- Large size of the text for one letter keys, in the proportion of key height. --> <attr name="keyLargeLetterRatio" format="float" /> <!-- Size of the text for keys with multiple letters, in the proportion of key height. --> <attr name="keyLabelRatio" format="float" /> <attr name="keyLargeLetterRatio" format="fraction" /> <!-- Large size of the text for keys with multiple letters, in the proportion of key height. --> <attr name="keyLargeLabelRatio" format="float" /> <attr name="keyLargeLabelRatio" format="fraction" /> <!-- Size of the text for hint letter (= one character hint label), in the proportion of key height. --> <attr name="keyHintLetterRatio" format="float" /> <attr name="keyHintLetterRatio" format="fraction" /> <!-- Size of the text for hint label, in the proportion of key height. --> <attr name="keyHintLabelRatio" format="float" /> <attr name="keyHintLabelRatio" format="fraction" /> <!-- Size of the text for shifted letter hint, in the proportion of key height. --> <attr name="keyShiftedLetterHintRatio" format="float" /> <attr name="keyShiftedLetterHintRatio" format="dimension|fraction" /> <!-- Horizontal padding of left/right aligned key label to the edge of the key. --> <attr name="keyLabelHorizontalPadding" format="dimension" /> <!-- Right padding of hint letter to the edge of the key.--> Loading Loading @@ -96,8 +94,8 @@ <attr name="keyPreviewOffset" format="dimension" /> <!-- Height of the key press feedback popup. --> <attr name="keyPreviewHeight" format="dimension" /> <!-- Size of the text for key press feedback popup, int the proportion of key height --> <attr name="keyPreviewTextRatio" format="float" /> <!-- Size of the text for key press feedback popup, in the proportion of key height. --> <attr name="keyPreviewTextRatio" format="fraction" /> <!-- Delay after key releasing and key press feedback dismissing in millisecond --> <attr name="keyPreviewLingerTimeout" format="integer" /> Loading
java/res/values/styles.xml +2 −2 Original line number Diff line number Diff line Loading @@ -35,9 +35,9 @@ <style name="KeyboardView"> <item name="android:background">@drawable/keyboard_background</item> <item name="keyBackground">@drawable/btn_keyboard_key</item> <item name="keyLetterRatio">@fraction/key_letter_ratio</item> <item name="keyLetterSize">@fraction/key_letter_ratio</item> <item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item> <item name="keyLabelRatio">@fraction/key_label_ratio</item> <item name="keyLabelSize">@fraction/key_label_ratio</item> <item name="keyLargeLabelRatio">@fraction/key_large_label_ratio</item> <item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item> <item name="keyHintLabelRatio">@fraction/key_hint_label_ratio</item> Loading
java/src/com/android/inputmethod/keyboard/KeyboardView.java +20 −11 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // Miscellaneous constants private static final int[] LONG_PRESSABLE_STATE_SET = { android.R.attr.state_long_pressable }; private static final float UNDEFINED_RATIO = -1.0f; private static final int UNDEFINED_DIMENSION = -1; // XML attributes protected final float mVerticalCorrection; Loading Loading @@ -214,19 +215,15 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { public int mKeyHintLabelSize; public int mAnimAlpha; public KeyDrawParams(TypedArray a) { public KeyDrawParams(final TypedArray a) { mKeyBackground = a.getDrawable(R.styleable.KeyboardView_keyBackground); if (a.hasValue(R.styleable.KeyboardView_keyLetterSize)) { mKeyLetterRatio = UNDEFINED_RATIO; mKeyLetterSize = a.getDimensionPixelSize(R.styleable.KeyboardView_keyLetterSize, 0); } else { mKeyLetterRatio = getFraction(a, R.styleable.KeyboardView_keyLetterRatio); if (!isValidFraction(mKeyLetterRatio = getFraction(a, R.styleable.KeyboardView_keyLetterSize))) { mKeyLetterSize = getDimensionPixelSize(a, R.styleable.KeyboardView_keyLetterSize); } if (a.hasValue(R.styleable.KeyboardView_keyLabelSize)) { mKeyLabelRatio = UNDEFINED_RATIO; mKeyLabelSize = a.getDimensionPixelSize(R.styleable.KeyboardView_keyLabelSize, 0); } else { mKeyLabelRatio = getFraction(a, R.styleable.KeyboardView_keyLabelRatio); if (!isValidFraction(mKeyLabelRatio = getFraction(a, R.styleable.KeyboardView_keyLabelSize))) { mKeyLabelSize = getDimensionPixelSize(a, R.styleable.KeyboardView_keyLabelSize); } mKeyLargeLabelRatio = getFraction(a, R.styleable.KeyboardView_keyLargeLabelRatio); mKeyLargeLetterRatio = getFraction(a, R.styleable.KeyboardView_keyLargeLetterRatio); Loading Loading @@ -392,9 +389,21 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } static float getFraction(final TypedArray a, final int index) { final TypedValue value = a.peekValue(index); if (value == null || value.type != TypedValue.TYPE_FRACTION) { return UNDEFINED_RATIO; } return a.getFraction(index, 1, 1, UNDEFINED_RATIO); } public static int getDimensionPixelSize(final TypedArray a, final int index) { final TypedValue value = a.peekValue(index); if (value == null || value.type != TypedValue.TYPE_DIMENSION) { return UNDEFINED_DIMENSION; } return a.getDimensionPixelSize(index, UNDEFINED_DIMENSION); } /** * Attaches a keyboard to this view. The keyboard can be switched at any time and the * view will re-layout itself to accommodate the keyboard. Loading