aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-06-28 03:01:35 +0900
committerTadashi G. Takaoka <takaoka@google.com>2011-06-28 16:00:23 +0900
commitd87f28f1457f5490df3796fa2a8d815b2bcde152 (patch)
treefcb2cb6420c1ee561fbb8f2d037b711ea6f0dca7 /java/src/com
parentf41e9f79eb19fc881b1f8fd76a767d6edf375f19 (diff)
downloadlatinime-d87f28f1457f5490df3796fa2a8d815b2bcde152.tar.gz
latinime-d87f28f1457f5490df3796fa2a8d815b2bcde152.tar.xz
latinime-d87f28f1457f5490df3796fa2a8d815b2bcde152.zip
Use left/right-edge popup preview background
Bug: 4902361 Change-Id: Iafbadd0e44c0db2fb6a0875c964304bec6ac8cb0
Diffstat (limited to 'java/src/com')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java29
1 files changed, 20 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 52e2a6a6d..da738b24c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -118,6 +118,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private final float mKeyHysteresisDistance;
private final float mVerticalCorrection;
private final Drawable mPreviewBackground;
+ private final Drawable mPreviewLeftBackground;
+ private final Drawable mPreviewRightBackground;
private final Drawable mPreviewSpacebarBackground;
private final int mPreviewTextColor;
private final float mPreviewTextRatio;
@@ -203,6 +205,9 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private static final String KEY_LABEL_REFERENCE_CHAR = "M";
private final int mKeyLabelHorizontalPadding;
+ private static final int MEASURESPEC_UNSPECIFIED = MeasureSpec.makeMeasureSpec(
+ 0, MeasureSpec.UNSPECIFIED);
+
private final UIHandler mHandler = new UIHandler(this);
public static class UIHandler extends StaticInnerHandlerWrapper<KeyboardView> {
@@ -354,6 +359,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
mShowKeyPreviewPopup = false;
}
mPreviewBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewBackground);
+ mPreviewLeftBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewLeftBackground);
+ mPreviewRightBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewRightBackground);
mPreviewSpacebarBackground = a.getDrawable(
R.styleable.KeyboardView_keyPreviewSpacebarBackground);
mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0);
@@ -1016,21 +1023,25 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
} else {
previewText.setBackgroundDrawable(mPreviewBackground);
}
- // Set the preview background state
- previewText.getBackground().setState(
- key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
- previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ previewText.measure(MEASURESPEC_UNSPECIFIED, MEASURESPEC_UNSPECIFIED);
final int previewWidth = Math.max(previewText.getMeasuredWidth(), keyDrawWidth
+ previewText.getPaddingLeft() + previewText.getPaddingRight());
final int previewHeight = mPreviewHeight;
getLocationInWindow(mCoordinates);
- final int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0];
+ int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0];
final int previewY = key.mY - previewHeight + mCoordinates[1] + mPreviewOffset;
+ if (previewX < 0 && mPreviewLeftBackground != null) {
+ previewText.setBackgroundDrawable(mPreviewLeftBackground);
+ previewX = 0;
+ } else if (previewX + previewWidth > getWidth() && mPreviewRightBackground != null) {
+ previewText.setBackgroundDrawable(mPreviewRightBackground);
+ previewX = getWidth() - previewWidth;
+ }
- // Place the key preview.
- // TODO: Adjust position of key previews which touch screen edges
+ // Set the preview background state
+ previewText.getBackground().setState(
+ key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
FrameLayoutCompatUtils.placeViewAt(
previewText, previewX, previewY, previewWidth, previewHeight);
previewText.setVisibility(VISIBLE);
@@ -1147,7 +1158,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
miniKeyboardView.setKeyboard(keyboard);
container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ MEASURESPEC_UNSPECIFIED);
return miniKeyboardView;
}