Use String instaed of CharSequence in Key class

Change-Id: Ia76a41daede402ed2a509e110ae97d6bb660c760
This commit is contained in:
Tadashi G. Takaoka 2012-01-25 17:01:53 +09:00
parent 117c124c13
commit 38d6a18821
6 changed files with 36 additions and 37 deletions

View file

@ -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,

View file

@ -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;
}

View file

@ -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);

View file

@ -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);
}

View file

@ -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;

View file

@ -39,7 +39,7 @@ public class KeyStylesTests extends AndroidTestCase {
}
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);