Fix more suggestions text width calculation

Bug: 7345983
Change-Id: Ic1554db98e7aaf032eb90a98c0c37c7c789461b5
main
Tadashi G. Takaoka 2012-10-16 13:26:45 -07:00
parent c1bcb8ee10
commit bdc8b9e42b
3 changed files with 9 additions and 2 deletions

View File

@ -105,7 +105,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
private static final String TAG = KeyboardView.class.getSimpleName(); private static final String TAG = KeyboardView.class.getSimpleName();
// XML attributes // XML attributes
private final KeyVisualAttributes mKeyVisualAttributes; protected final KeyVisualAttributes mKeyVisualAttributes;
private final int mKeyLabelHorizontalPadding; private final int mKeyLabelHorizontalPadding;
private final float mKeyHintLetterPadding; private final float mKeyHintLetterPadding;
private final float mKeyPopupHintLetterPadding; private final float mKeyPopupHintLetterPadding;
@ -733,6 +733,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
return width; return width;
} }
// TODO: Remove this method.
public float getLabelWidth(final String label, final Paint paint) { public float getLabelWidth(final String label, final Paint paint) {
paint.getTextBounds(label, 0, label.length(), mTextBounds); paint.getTextBounds(label, 0, label.length(), mTextBounds);
return mTextBounds.width(); return mTextBounds.width();

View File

@ -51,10 +51,11 @@ public final class MoreSuggestions extends Keyboard {
super(); super();
} }
// TODO: Remove {@link MoreSuggestionsView} argument.
public int layout(final SuggestedWords suggestions, final int fromPos, final int maxWidth, public int layout(final SuggestedWords suggestions, final int fromPos, final int maxWidth,
final int minWidth, final int maxRow, final MoreSuggestionsView view) { final int minWidth, final int maxRow, final MoreSuggestionsView view) {
clearKeys(); clearKeys();
final Resources res = view.getContext().getResources(); final Resources res = view.getResources();
mDivider = res.getDrawable(R.drawable.more_suggestions_divider); mDivider = res.getDrawable(R.drawable.more_suggestions_divider);
mDividerWidth = mDivider.getIntrinsicWidth(); mDividerWidth = mDivider.getIntrinsicWidth();
final int padding = (int) res.getDimension( final int padding = (int) res.getDimension(
@ -181,6 +182,7 @@ public final class MoreSuggestions extends Keyboard {
load(xmlId, keyboard.mId); load(xmlId, keyboard.mId);
mParams.mVerticalGap = mParams.mTopPadding = keyboard.mVerticalGap / 2; mParams.mVerticalGap = mParams.mTopPadding = keyboard.mVerticalGap / 2;
mPaneView.updateKeyboardGeometry(mParams.mDefaultRowHeight);
final int count = mParams.layout(suggestions, fromPos, maxWidth, minWidth, maxRow, final int count = mParams.layout(suggestions, fromPos, maxWidth, minWidth, maxRow,
mPaneView); mPaneView);
mFromPos = fromPos; mFromPos = fromPos;

View File

@ -105,6 +105,10 @@ public final class MoreSuggestionsView extends KeyboardView implements MoreKeysP
} }
} }
public void updateKeyboardGeometry(final int keyHeight) {
mKeyDrawParams.updateParams(keyHeight, mKeyVisualAttributes);
}
@Override @Override
public void setKeyboard(Keyboard keyboard) { public void setKeyboard(Keyboard keyboard) {
super.setKeyboard(keyboard); super.setKeyboard(keyboard);