Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38d6a188 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Use String instaed of CharSequence in Key class

Change-Id: Ia76a41daede402ed2a509e110ae97d6bb660c760
parent 117c124c
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -52,9 +52,9 @@ public class Key {
    public final int mAltCode;

    /** Label to display */
    public final CharSequence mLabel;
    public final String mLabel;
    /** Hint label to display on the key in conjunction with the label */
    public final CharSequence mHintLabel;
    public final String mHintLabel;
    /** Flags of the label */
    private final int mLabelFlags;
    private static final int LABEL_FLAGS_ALIGN_LEFT = 0x01;
@@ -187,7 +187,7 @@ public class Key {
    /**
     * This constructor is being used only for key in popup suggestions pane.
     */
    public Key(Keyboard.Params params, CharSequence label, CharSequence hintLabel, Drawable icon,
    public Key(Keyboard.Params params, String label, String hintLabel, Drawable icon,
            int code, CharSequence outputText, int x, int y, int width, int height) {
        mHeight = height - params.mVerticalGap;
        mHorizontalGap = params.mHorizontalGap;
@@ -260,7 +260,7 @@ public class Key {
        // Update row to have current x coordinate.
        row.setXPos(keyXPos + keyWidth);

        final String[] moreKeys = style.getTextArray(keyAttr,
        final String[] moreKeys = style.getStringArray(keyAttr,
                R.styleable.Keyboard_Key_moreKeys);
        // In Arabic symbol layouts, we'd like to keep digits in more keys regardless of
        // config_digit_more_keys_enabled.
@@ -291,11 +291,11 @@ public class Key {
        final int disabledIconAttrId = KeyboardIconsSet.getIconAttrId(style.getInt(keyAttr,
                R.styleable.Keyboard_Key_keyIconDisabled, KeyboardIconsSet.ICON_UNDEFINED));
        mDisabledIcon = iconsSet.getIconByAttrId(disabledIconAttrId);
        mHintLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
        mHintLabel = style.getString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);

        mLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
        mLabel = style.getString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
        mLabelFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags, 0);
        mOutputText = style.getText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
        mOutputText = style.getString(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
        // Choose the first letter of the label as primary code if not
        // specified.
        final int code = style.getInt(keyAttr, R.styleable.Keyboard_Key_code,
+2 −2
Original line number Diff line number Diff line
@@ -245,10 +245,10 @@ public class Keyboard {
    }

    // TODO: Remove this method.
    public CharSequence adjustLabelCase(CharSequence label) {
    public String adjustLabelCase(String label) {
        if (mId.isAlphabetKeyboard() && isShiftedOrShiftLocked() && !TextUtils.isEmpty(label)
                && label.length() < 3 && Character.isLowerCase(label.charAt(0))) {
            return label.toString().toUpperCase(mId.mLocale);
            return label.toUpperCase(mId.mLocale);
        }
        return label;
    }
+4 −4
Original line number Diff line number Diff line
@@ -557,7 +557,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
        float positionX = centerX;
        if (key.mLabel != null) {
            // Switch the character to uppercase if shift is pressed
            final CharSequence label = mKeyboard.adjustLabelCase(key.mLabel);
            final String label = mKeyboard.adjustLabelCase(key.mLabel);
            // For characters, use large font. For labels like "Done", use smaller font.
            paint.setTypeface(key.selectTypeface(params.mKeyTextStyle));
            final int labelSize = key.selectTextSize(params.mKeyLetterSize,
@@ -639,7 +639,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {

        // Draw hint label.
        if (key.mHintLabel != null) {
            final CharSequence hint = key.mHintLabel;
            final String hint = key.mHintLabel;
            final int hintColor;
            final int hintSize;
            if (key.hasHintLabel()) {
@@ -778,12 +778,12 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
        return width;
    }

    private static float getLabelWidth(CharSequence label, Paint paint) {
    private static float getLabelWidth(String label, Paint paint) {
        paint.getTextBounds(label.toString(), 0, label.length(), sTextBounds);
        return sTextBounds.width();
    }

    public float getDefaultLabelWidth(CharSequence label, Paint paint) {
    public float getDefaultLabelWidth(String label, Paint paint) {
        paint.setTextSize(mKeyDrawParams.mKeyLabelSize);
        paint.setTypeface(mKeyDrawParams.mKeyTextStyle);
        return getLabelWidth(label, paint);
+21 −22
Original line number Diff line number Diff line
@@ -40,8 +40,8 @@ public class KeyStyles {
    private static final KeyStyle EMPTY_KEY_STYLE = new EmptyKeyStyle();

    public interface KeyStyle {
        public String[] getTextArray(TypedArray a, int index);
        public CharSequence getText(TypedArray a, int index);
        public String[] getStringArray(TypedArray a, int index);
        public String getString(TypedArray a, int index);
        public int getInt(TypedArray a, int index, int defaultValue);
        public int getFlag(TypedArray a, int index, int defaultValue);
    }
@@ -52,13 +52,13 @@ public class KeyStyles {
        }

        @Override
        public String[] getTextArray(TypedArray a, int index) {
            return parseTextArray(a, index);
        public String[] getStringArray(TypedArray a, int index) {
            return parseStringArray(a, index);
        }

        @Override
        public CharSequence getText(TypedArray a, int index) {
            return a.getText(index);
        public String getString(TypedArray a, int index) {
            return a.getString(index);
        }

        @Override
@@ -71,16 +71,15 @@ public class KeyStyles {
            return a.getInt(index, defaultValue);
        }

        protected static String[] parseTextArray(TypedArray a, int index) {
        protected static String[] parseStringArray(TypedArray a, int index) {
            if (!a.hasValue(index))
                return null;
            final CharSequence text = a.getText(index);
            return parseCsvText(text.toString(), a.getResources(), R.string.english_ime_name);
            return parseCsvString(a.getString(index), a.getResources(), R.string.english_ime_name);
        }
    }

    /* package for test */
    static String[] parseCsvText(String rawText, Resources res, int packageNameResId) {
    static String[] parseCsvString(String rawText, Resources res, int packageNameResId) {
        final String text = Utils.resolveStringResource(rawText, res, packageNameResId);
        final int size = text.length();
        if (size == 0) {
@@ -139,15 +138,15 @@ public class KeyStyles {
        private final HashMap<Integer, Object> mAttributes = new HashMap<Integer, Object>();

        @Override
        public String[] getTextArray(TypedArray a, int index) {
        public String[] getStringArray(TypedArray a, int index) {
            return a.hasValue(index)
                    ? super.getTextArray(a, index) : (String[])mAttributes.get(index);
                    ? super.getStringArray(a, index) : (String[])mAttributes.get(index);
        }

        @Override
        public CharSequence getText(TypedArray a, int index) {
        public String getString(TypedArray a, int index) {
            return a.hasValue(index)
                    ? super.getText(a, index) : (CharSequence)mAttributes.get(index);
                    ? super.getString(a, index) : (String)mAttributes.get(index);
        }

        @Override
@@ -170,10 +169,10 @@ public class KeyStyles {
            // TODO: Currently not all Key attributes can be declared as style.
            readInt(keyAttr, R.styleable.Keyboard_Key_code);
            readInt(keyAttr, R.styleable.Keyboard_Key_altCode);
            readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
            readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
            readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
            readTextArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
            readString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
            readString(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
            readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
            readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
            readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags);
            readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
            readInt(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled);
@@ -183,9 +182,9 @@ public class KeyStyles {
            readFlag(keyAttr, R.styleable.Keyboard_Key_keyActionFlags);
        }

        private void readText(TypedArray a, int index) {
        private void readString(TypedArray a, int index) {
            if (a.hasValue(index))
                mAttributes.put(index, a.getText(index));
                mAttributes.put(index, a.getString(index));
        }

        private void readInt(TypedArray a, int index) {
@@ -199,8 +198,8 @@ public class KeyStyles {
                mAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0));
        }

        private void readTextArray(TypedArray a, int index) {
            final CharSequence[] value = parseTextArray(a, index);
        private void readStringArray(TypedArray a, int index) {
            final String[] value = parseStringArray(a, index);
            if (value != null)
                mAttributes.put(index, value);
        }
+1 −1
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ public class MoreSuggestions extends Keyboard {
                int pos = fromPos, rowStartPos = fromPos;
                final int size = Math.min(suggestions.size(), SuggestionsView.MAX_SUGGESTIONS);
                while (pos < size) {
                    final CharSequence word = suggestions.getWord(pos);
                    final String word = suggestions.getWord(pos).toString();
                    // TODO: Should take care of text x-scaling.
                    mWidths[pos] = (int)view.getDefaultLabelWidth(word, paint) + padding;
                    final int numColumn = pos - rowStartPos + 1;
Loading