Loading java/src/com/android/inputmethod/keyboard/KeyboardView.java +19 −18 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // Main keyboard private Keyboard mKeyboard; private final KeyDrawParams mKeyDrawParams; protected final KeyDrawParams mKeyDrawParams; // Key preview private final int mKeyPreviewLayoutId; Loading Loading @@ -171,7 +171,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } } /* package */ static class KeyDrawParams { protected static class KeyDrawParams { // XML attributes public final int mKeyTextColor; public final int mKeyTextInactivatedColor; Loading Loading @@ -351,7 +351,6 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { mDelayAfterPreview = mKeyPreviewDrawParams.mLingerTimeout; mPaint.setAntiAlias(true); mPaint.setTextAlign(Align.CENTER); } // Read fraction value in TypedArray as float. Loading Loading @@ -729,10 +728,10 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } } private static int getCharGeometryCacheKey(char reference, Paint paint) { private static int getCharGeometryCacheKey(char referenceChar, Paint paint) { final int labelSize = (int)paint.getTextSize(); final Typeface face = paint.getTypeface(); final int codePointOffset = reference << 15; final int codePointOffset = referenceChar << 15; if (face == Typeface.DEFAULT) { return codePointOffset + labelSize; } else if (face == Typeface.DEFAULT_BOLD) { Loading @@ -747,41 +746,35 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // Working variable for the following methods. private final Rect mTextBounds = new Rect(); private float getCharHeight(char[] character, Paint paint) { final Integer key = getCharGeometryCacheKey(character[0], paint); private float getCharHeight(char[] referenceChar, Paint paint) { final Integer key = getCharGeometryCacheKey(referenceChar[0], paint); final Float cachedValue = sTextHeightCache.get(key); if (cachedValue != null) return cachedValue; paint.getTextBounds(character, 0, 1, mTextBounds); paint.getTextBounds(referenceChar, 0, 1, mTextBounds); final float height = mTextBounds.height(); sTextHeightCache.put(key, height); return height; } private float getCharWidth(char[] character, Paint paint) { final Integer key = getCharGeometryCacheKey(character[0], paint); private float getCharWidth(char[] referenceChar, Paint paint) { final Integer key = getCharGeometryCacheKey(referenceChar[0], paint); final Float cachedValue = sTextWidthCache.get(key); if (cachedValue != null) return cachedValue; paint.getTextBounds(character, 0, 1, mTextBounds); paint.getTextBounds(referenceChar, 0, 1, mTextBounds); final float width = mTextBounds.width(); sTextWidthCache.put(key, width); return width; } protected float getLabelWidth(CharSequence label, Paint paint) { public float getLabelWidth(String label, Paint paint) { paint.getTextBounds(label.toString(), 0, label.length(), mTextBounds); return mTextBounds.width(); } public float getDefaultLabelWidth(String label, Paint paint) { paint.setTextSize(mKeyDrawParams.mKeyLabelSize); paint.setTypeface(mKeyDrawParams.mKeyTextStyle); return getLabelWidth(label, paint); } protected static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width, int height) { canvas.translate(x, y); Loading Loading @@ -815,6 +808,14 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { canvas.translate(-x, -y); } public Paint newDefaultLabelPaint() { final Paint paint = new Paint(); paint.setAntiAlias(true); paint.setTypeface(mKeyDrawParams.mKeyTextStyle); paint.setTextSize(mKeyDrawParams.mKeyLabelSize); return paint; } public void cancelAllMessages() { mDrawingHandler.cancelAllMessages(); } Loading java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java +5 −6 Original line number Diff line number Diff line Loading @@ -296,17 +296,16 @@ public class MoreKeysKeyboard extends Keyboard { final int padding = (int)(view.getResources() .getDimension(R.dimen.more_keys_keyboard_key_horizontal_padding) + (parentKey.hasLabelsInMoreKeys() ? minKeyWidth * LABEL_PADDING_RATIO : 0)); Paint paint = null; final Paint paint = view.newDefaultLabelPaint(); paint.setTextSize(parentKey.hasLabelsInMoreKeys() ? view.mKeyDrawParams.mKeyLabelSize : view.mKeyDrawParams.mKeyLetterSize); int maxWidth = minKeyWidth; for (String moreKeySpec : parentKey.mMoreKeys) { final String label = KeySpecParser.getLabel(moreKeySpec); // If the label is single letter, minKeyWidth is enough to hold the label. if (label != null && StringUtils.codePointCount(label) > 1) { if (paint == null) { paint = new Paint(); paint.setAntiAlias(true); } final int width = (int)view.getDefaultLabelWidth(label, paint) + padding; final int width = (int)view.getLabelWidth(label, paint) + padding; if (maxWidth < width) { maxWidth = width; } Loading java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java +3 −8 Original line number Diff line number Diff line Loading @@ -23,9 +23,7 @@ import android.graphics.drawable.Drawable; import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.keyboard.KeyboardView; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.SuggestedWords; import com.android.inputmethod.latin.Utils; Loading @@ -38,8 +36,6 @@ public class MoreSuggestions extends Keyboard { } public static class Builder extends Keyboard.Builder<Builder.MoreSuggestionsParam> { private static final boolean DBG = LatinImeLogger.sDBG; private final MoreSuggestionsView mPaneView; private SuggestedWords mSuggestions; private int mFromPos; Loading @@ -56,10 +52,8 @@ public class MoreSuggestions extends Keyboard { public int mDividerWidth; public int layout(SuggestedWords suggestions, int fromPos, int maxWidth, int minWidth, int maxRow, KeyboardView view) { int maxRow, MoreSuggestionsView view) { clearKeys(); final Paint paint = new Paint(); paint.setAntiAlias(true); final Resources res = view.getContext().getResources(); mDivider = res.getDrawable(R.drawable.more_suggestions_divider); // TODO: Drawable itself should have an alpha value. Loading @@ -67,6 +61,7 @@ public class MoreSuggestions extends Keyboard { mDividerWidth = mDivider.getIntrinsicWidth(); final int padding = (int) res.getDimension( R.dimen.more_suggestions_key_horizontal_padding); final Paint paint = view.newDefaultLabelPaint(); int row = 0; int pos = fromPos, rowStartPos = fromPos; Loading @@ -74,7 +69,7 @@ public class MoreSuggestions extends Keyboard { while (pos < size) { final String word = suggestions.getWord(pos).toString(); // TODO: Should take care of text x-scaling. mWidths[pos] = (int)view.getDefaultLabelWidth(word, paint) + padding; mWidths[pos] = (int)view.getLabelWidth(word, paint) + padding; final int numColumn = pos - rowStartPos + 1; final int columnWidth = (maxWidth - mDividerWidth * (numColumn - 1)) / numColumn; Loading java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java +4 −4 Original line number Diff line number Diff line Loading @@ -43,17 +43,17 @@ import com.android.inputmethod.latin.R; public class MoreSuggestionsView extends KeyboardView implements MoreKeysPanel { private final int[] mCoordinates = new int[2]; private final KeyDetector mModalPanelKeyDetector; final KeyDetector mModalPanelKeyDetector; private final KeyDetector mSlidingPanelKeyDetector; private Controller mController; private KeyboardActionListener mListener; KeyboardActionListener mListener; private int mOriginX; private int mOriginY; private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter(); static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter(); private final KeyboardActionListener mSuggestionsPaneListener = final KeyboardActionListener mSuggestionsPaneListener = new KeyboardActionListener.Adapter() { @Override public void onPressKey(int primaryCode) { Loading java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java +0 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,6 @@ import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.StaticInnerHandlerWrapper; import com.android.inputmethod.latin.Suggest; import com.android.inputmethod.latin.SuggestedWords; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.Utils; import java.util.ArrayList; Loading Loading
java/src/com/android/inputmethod/keyboard/KeyboardView.java +19 −18 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // Main keyboard private Keyboard mKeyboard; private final KeyDrawParams mKeyDrawParams; protected final KeyDrawParams mKeyDrawParams; // Key preview private final int mKeyPreviewLayoutId; Loading Loading @@ -171,7 +171,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } } /* package */ static class KeyDrawParams { protected static class KeyDrawParams { // XML attributes public final int mKeyTextColor; public final int mKeyTextInactivatedColor; Loading Loading @@ -351,7 +351,6 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { mDelayAfterPreview = mKeyPreviewDrawParams.mLingerTimeout; mPaint.setAntiAlias(true); mPaint.setTextAlign(Align.CENTER); } // Read fraction value in TypedArray as float. Loading Loading @@ -729,10 +728,10 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { } } private static int getCharGeometryCacheKey(char reference, Paint paint) { private static int getCharGeometryCacheKey(char referenceChar, Paint paint) { final int labelSize = (int)paint.getTextSize(); final Typeface face = paint.getTypeface(); final int codePointOffset = reference << 15; final int codePointOffset = referenceChar << 15; if (face == Typeface.DEFAULT) { return codePointOffset + labelSize; } else if (face == Typeface.DEFAULT_BOLD) { Loading @@ -747,41 +746,35 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // Working variable for the following methods. private final Rect mTextBounds = new Rect(); private float getCharHeight(char[] character, Paint paint) { final Integer key = getCharGeometryCacheKey(character[0], paint); private float getCharHeight(char[] referenceChar, Paint paint) { final Integer key = getCharGeometryCacheKey(referenceChar[0], paint); final Float cachedValue = sTextHeightCache.get(key); if (cachedValue != null) return cachedValue; paint.getTextBounds(character, 0, 1, mTextBounds); paint.getTextBounds(referenceChar, 0, 1, mTextBounds); final float height = mTextBounds.height(); sTextHeightCache.put(key, height); return height; } private float getCharWidth(char[] character, Paint paint) { final Integer key = getCharGeometryCacheKey(character[0], paint); private float getCharWidth(char[] referenceChar, Paint paint) { final Integer key = getCharGeometryCacheKey(referenceChar[0], paint); final Float cachedValue = sTextWidthCache.get(key); if (cachedValue != null) return cachedValue; paint.getTextBounds(character, 0, 1, mTextBounds); paint.getTextBounds(referenceChar, 0, 1, mTextBounds); final float width = mTextBounds.width(); sTextWidthCache.put(key, width); return width; } protected float getLabelWidth(CharSequence label, Paint paint) { public float getLabelWidth(String label, Paint paint) { paint.getTextBounds(label.toString(), 0, label.length(), mTextBounds); return mTextBounds.width(); } public float getDefaultLabelWidth(String label, Paint paint) { paint.setTextSize(mKeyDrawParams.mKeyLabelSize); paint.setTypeface(mKeyDrawParams.mKeyTextStyle); return getLabelWidth(label, paint); } protected static void drawIcon(Canvas canvas, Drawable icon, int x, int y, int width, int height) { canvas.translate(x, y); Loading Loading @@ -815,6 +808,14 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { canvas.translate(-x, -y); } public Paint newDefaultLabelPaint() { final Paint paint = new Paint(); paint.setAntiAlias(true); paint.setTypeface(mKeyDrawParams.mKeyTextStyle); paint.setTextSize(mKeyDrawParams.mKeyLabelSize); return paint; } public void cancelAllMessages() { mDrawingHandler.cancelAllMessages(); } Loading
java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java +5 −6 Original line number Diff line number Diff line Loading @@ -296,17 +296,16 @@ public class MoreKeysKeyboard extends Keyboard { final int padding = (int)(view.getResources() .getDimension(R.dimen.more_keys_keyboard_key_horizontal_padding) + (parentKey.hasLabelsInMoreKeys() ? minKeyWidth * LABEL_PADDING_RATIO : 0)); Paint paint = null; final Paint paint = view.newDefaultLabelPaint(); paint.setTextSize(parentKey.hasLabelsInMoreKeys() ? view.mKeyDrawParams.mKeyLabelSize : view.mKeyDrawParams.mKeyLetterSize); int maxWidth = minKeyWidth; for (String moreKeySpec : parentKey.mMoreKeys) { final String label = KeySpecParser.getLabel(moreKeySpec); // If the label is single letter, minKeyWidth is enough to hold the label. if (label != null && StringUtils.codePointCount(label) > 1) { if (paint == null) { paint = new Paint(); paint.setAntiAlias(true); } final int width = (int)view.getDefaultLabelWidth(label, paint) + padding; final int width = (int)view.getLabelWidth(label, paint) + padding; if (maxWidth < width) { maxWidth = width; } Loading
java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java +3 −8 Original line number Diff line number Diff line Loading @@ -23,9 +23,7 @@ import android.graphics.drawable.Drawable; import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.keyboard.KeyboardView; import com.android.inputmethod.keyboard.internal.KeyboardIconsSet; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.SuggestedWords; import com.android.inputmethod.latin.Utils; Loading @@ -38,8 +36,6 @@ public class MoreSuggestions extends Keyboard { } public static class Builder extends Keyboard.Builder<Builder.MoreSuggestionsParam> { private static final boolean DBG = LatinImeLogger.sDBG; private final MoreSuggestionsView mPaneView; private SuggestedWords mSuggestions; private int mFromPos; Loading @@ -56,10 +52,8 @@ public class MoreSuggestions extends Keyboard { public int mDividerWidth; public int layout(SuggestedWords suggestions, int fromPos, int maxWidth, int minWidth, int maxRow, KeyboardView view) { int maxRow, MoreSuggestionsView view) { clearKeys(); final Paint paint = new Paint(); paint.setAntiAlias(true); final Resources res = view.getContext().getResources(); mDivider = res.getDrawable(R.drawable.more_suggestions_divider); // TODO: Drawable itself should have an alpha value. Loading @@ -67,6 +61,7 @@ public class MoreSuggestions extends Keyboard { mDividerWidth = mDivider.getIntrinsicWidth(); final int padding = (int) res.getDimension( R.dimen.more_suggestions_key_horizontal_padding); final Paint paint = view.newDefaultLabelPaint(); int row = 0; int pos = fromPos, rowStartPos = fromPos; Loading @@ -74,7 +69,7 @@ public class MoreSuggestions extends Keyboard { while (pos < size) { final String word = suggestions.getWord(pos).toString(); // TODO: Should take care of text x-scaling. mWidths[pos] = (int)view.getDefaultLabelWidth(word, paint) + padding; mWidths[pos] = (int)view.getLabelWidth(word, paint) + padding; final int numColumn = pos - rowStartPos + 1; final int columnWidth = (maxWidth - mDividerWidth * (numColumn - 1)) / numColumn; Loading
java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java +4 −4 Original line number Diff line number Diff line Loading @@ -43,17 +43,17 @@ import com.android.inputmethod.latin.R; public class MoreSuggestionsView extends KeyboardView implements MoreKeysPanel { private final int[] mCoordinates = new int[2]; private final KeyDetector mModalPanelKeyDetector; final KeyDetector mModalPanelKeyDetector; private final KeyDetector mSlidingPanelKeyDetector; private Controller mController; private KeyboardActionListener mListener; KeyboardActionListener mListener; private int mOriginX; private int mOriginY; private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter(); static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter(); private final KeyboardActionListener mSuggestionsPaneListener = final KeyboardActionListener mSuggestionsPaneListener = new KeyboardActionListener.Adapter() { @Override public void onPressKey(int primaryCode) { Loading
java/src/com/android/inputmethod/latin/suggestions/SuggestionsView.java +0 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,6 @@ import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.StaticInnerHandlerWrapper; import com.android.inputmethod.latin.Suggest; import com.android.inputmethod.latin.SuggestedWords; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.Utils; import java.util.ArrayList; Loading