Use String instaed of CharSequence in Key class
Change-Id: Ia76a41daede402ed2a509e110ae97d6bb660c760
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 3a9423f..b3c5ed7 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -52,9 +52,9 @@
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 @@
/**
* 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 @@
// 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 @@
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,
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index c548f11..8c386da 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -245,10 +245,10 @@
}
// 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;
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index abc220e..c2798bb 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -557,7 +557,7 @@
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 @@
// 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 @@
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);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index faea389..b7215ec 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -40,8 +40,8 @@
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 @@
}
@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 @@
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 @@
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 @@
// 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 @@
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 @@
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);
}
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
index 3d26d97..f42b8e6 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
@@ -72,7 +72,7 @@
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;
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java
index 29881d9..2ae8027 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java
@@ -39,7 +39,7 @@
}
private void assertTextArray(String message, String value, String ... expected) {
- final String actual[] = KeyStyles.parseCsvText(value, mTestResources,
+ final String actual[] = KeyStyles.parseCsvString(value, mTestResources,
R.string.empty_string);
if (expected.length == 0) {
assertNull(message, actual);