aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-02-05 00:51:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-05 00:51:23 +0000
commit66b2fcf2bf2c2fc6f0fa00664f70b25d499bbbd6 (patch)
tree9001a1241613cc6d62733b08fc9f3bf6b6b3bfbd /java/src
parentad37cddd79dba43284f70e7f2c31b65df5f5c2ee (diff)
parent7d09b5681202d3df9df1d5634071091f3f45fbe5 (diff)
downloadlatinime-66b2fcf2bf2c2fc6f0fa00664f70b25d499bbbd6.tar.gz
latinime-66b2fcf2bf2c2fc6f0fa00664f70b25d499bbbd6.tar.xz
latinime-66b2fcf2bf2c2fc6f0fa00664f70b25d499bbbd6.zip
Merge "Move some XML attributes to KeyPreviewDrawParams"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/MainKeyboardView.java39
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyPreviewDrawParams.java41
2 files changed, 47 insertions, 33 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index 54cff3723..c6dae3253 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -161,16 +161,11 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
// Key preview
private static final boolean FADE_OUT_KEY_TOP_LETTER_WHEN_KEY_IS_PRESSED = false;
- private final int mKeyPreviewLayoutId;
// Free {@link TextView} pool that can be used for key preview.
private final ArrayDeque<TextView> mFreeKeyPreviewTextViews = CollectionUtils.newArrayDeque();
// Map from {@link Key} to {@link TextView} that is currently being displayed as key preview.
private final HashMap<Key,TextView> mShowingKeyPreviewTextViews = CollectionUtils.newHashMap();
private final KeyPreviewDrawParams mKeyPreviewDrawParams;
- private boolean mShowKeyPreviewPopup = true;
- private int mKeyPreviewLingerTimeout;
- private int mKeyPreviewZoomInDuration;
- private int mKeyPreviewZoomOutDuration;
private static final float KEY_PREVIEW_START_ZOOM_IN_SCALE = 0.7f;
private static final float KEY_PREVIEW_END_ZOOM_IN_SCALE = 1.0f;
private static final float KEY_PREVIEW_END_ZOOM_OUT_SCALE = 0.7f;
@@ -266,17 +261,6 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
R.styleable.MainKeyboardView_altCodeKeyWhileTypingFadeinAnimator, 0);
mKeyPreviewDrawParams = new KeyPreviewDrawParams(mainKeyboardViewAttr);
- mKeyPreviewLingerTimeout = mainKeyboardViewAttr.getInt(
- R.styleable.MainKeyboardView_keyPreviewLingerTimeout, 0);
- mKeyPreviewLayoutId = mainKeyboardViewAttr.getResourceId(
- R.styleable.MainKeyboardView_keyPreviewLayout, 0);
- if (mKeyPreviewLayoutId == 0) {
- mShowKeyPreviewPopup = false;
- }
- mKeyPreviewZoomInDuration = mainKeyboardViewAttr.getInt(
- R.styleable.MainKeyboardView_keyPreviewZoomInDuration, 0);
- mKeyPreviewZoomOutDuration = mainKeyboardViewAttr.getInt(
- R.styleable.MainKeyboardView_keyPreviewZoomOutDuration, 0);
final int moreKeysKeyboardLayoutId = mainKeyboardViewAttr.getResourceId(
R.styleable.MainKeyboardView_moreKeysKeyboardLayout, 0);
mConfigShowMoreKeysKeyboardAtTouchedPoint = mainKeyboardViewAttr.getBoolean(
@@ -450,8 +434,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
* @see #isKeyPreviewPopupEnabled()
*/
public void setKeyPreviewPopupEnabled(final boolean previewEnabled, final int delay) {
- mShowKeyPreviewPopup = previewEnabled;
- mKeyPreviewLingerTimeout = delay;
+ mKeyPreviewDrawParams.setPopupEnabled(previewEnabled, delay);
}
private void locatePreviewPlacerView() {
@@ -491,7 +474,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
* @see #setKeyPreviewPopupEnabled(boolean, int)
*/
public boolean isKeyPreviewPopupEnabled() {
- return mShowKeyPreviewPopup;
+ return mKeyPreviewDrawParams.isPopupEnabled();
}
private TextView getKeyPreviewTextView(final Key key) {
@@ -504,9 +487,10 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
return previewTextView;
}
final Context context = getContext();
- if (mKeyPreviewLayoutId != 0) {
+ final int previewLayoutId = mKeyPreviewDrawParams.mLayoutId;
+ if (previewLayoutId != 0) {
previewTextView = (TextView)LayoutInflater.from(context)
- .inflate(mKeyPreviewLayoutId, null);
+ .inflate(previewLayoutId, null);
} else {
previewTextView = new TextView(context);
}
@@ -558,7 +542,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
final KeyPreviewDrawParams previewParams = mKeyPreviewDrawParams;
final Keyboard keyboard = getKeyboard();
- if (!mShowKeyPreviewPopup) {
+ if (!previewParams.isPopupEnabled()) {
previewParams.setVisibleOffset(-keyboard.mVerticalGap);
return;
}
@@ -586,7 +570,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final int keyDrawWidth = key.getDrawWidth();
final int previewWidth = previewTextView.getMeasuredWidth();
- final int previewHeight = previewParams.mKeyPreviewHeight;
+ final int previewHeight = previewParams.mPreviewHeight;
previewParams.setGeometry(previewTextView);
getLocationInWindow(mOriginCoords);
// The key preview is horizontally aligned with the center of the visible part of the
@@ -606,7 +590,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
}
// The key preview is placed vertically above the top edge of the parent key with an
// arbitrary offset.
- final int previewY = key.getY() - previewHeight + previewParams.mKeyPreviewOffset
+ final int previewY = key.getY() - previewHeight + previewParams.mPreviewOffset
+ CoordinateUtils.y(mOriginCoords);
if (background != null) {
@@ -670,7 +654,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
final AnimatorSet zoomInAnimation = new AnimatorSet();
zoomInAnimation.play(scaleXAnimation).with(scaleYAnimation);
// TODO: Implement preference option to control key preview animation duration.
- zoomInAnimation.setDuration(mKeyPreviewZoomInDuration);
+ zoomInAnimation.setDuration(mKeyPreviewDrawParams.mZoomInDuration);
zoomInAnimation.setInterpolator(DECELERATE_INTERPOLATOR);
zoomInAnimation.addListener(new AnimatorListenerAdapter() {
@Override
@@ -691,7 +675,8 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
final AnimatorSet zoomOutAnimation = new AnimatorSet();
zoomOutAnimation.play(scaleXAnimation).with(scaleYAnimation);
// TODO: Implement preference option to control key preview animation duration.
- final int zoomOutDuration = Math.min(mKeyPreviewZoomOutDuration, mKeyPreviewLingerTimeout);
+ final int zoomOutDuration = Math.min(mKeyPreviewDrawParams.mZoomOutDuration,
+ mKeyPreviewDrawParams.getLingerTimeout());
zoomOutAnimation.setDuration(zoomOutDuration);
zoomOutAnimation.setInterpolator(ACCELERATE_INTERPOLATOR);
zoomOutAnimation.addListener(new AnimatorListenerAdapter() {
@@ -733,7 +718,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
}
if (!isHardwareAccelerated()) {
// TODO: Implement preference option to control key preview method and duration.
- mDrawingHandler.dismissKeyPreview(mKeyPreviewLingerTimeout, key);
+ mDrawingHandler.dismissKeyPreview(mKeyPreviewDrawParams.getLingerTimeout(), key);
return;
}
final Object tag = previewTextView.getTag();
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewDrawParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewDrawParams.java
index d7518ee7c..d1899af28 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewDrawParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewDrawParams.java
@@ -23,8 +23,13 @@ import com.android.inputmethod.latin.R;
public final class KeyPreviewDrawParams {
// XML attributes of {@link MainKeyboardView}.
- public final int mKeyPreviewOffset;
- public final int mKeyPreviewHeight;
+ public final int mLayoutId;
+ public final int mPreviewOffset;
+ public final int mPreviewHeight;
+ public final int mZoomInDuration;
+ public final int mZoomOutDuration;
+ private int mLingerTimeout;
+ private boolean mShowPopup = true;
// The graphical geometry of the key preview.
// <-width->
@@ -52,10 +57,21 @@ public final class KeyPreviewDrawParams {
private int mVisibleOffset;
public KeyPreviewDrawParams(final TypedArray mainKeyboardViewAttr) {
- mKeyPreviewOffset = mainKeyboardViewAttr.getDimensionPixelOffset(
+ mPreviewOffset = mainKeyboardViewAttr.getDimensionPixelOffset(
R.styleable.MainKeyboardView_keyPreviewOffset, 0);
- mKeyPreviewHeight = mainKeyboardViewAttr.getDimensionPixelSize(
+ mPreviewHeight = mainKeyboardViewAttr.getDimensionPixelSize(
R.styleable.MainKeyboardView_keyPreviewHeight, 0);
+ mLingerTimeout = mainKeyboardViewAttr.getInt(
+ R.styleable.MainKeyboardView_keyPreviewLingerTimeout, 0);
+ mLayoutId = mainKeyboardViewAttr.getResourceId(
+ R.styleable.MainKeyboardView_keyPreviewLayout, 0);
+ if (mLayoutId == 0) {
+ mShowPopup = false;
+ }
+ mZoomInDuration = mainKeyboardViewAttr.getInt(
+ R.styleable.MainKeyboardView_keyPreviewZoomInDuration, 0);
+ mZoomOutDuration = mainKeyboardViewAttr.getInt(
+ R.styleable.MainKeyboardView_keyPreviewZoomOutDuration, 0);
}
public void setVisibleOffset(final int previewVisibleOffset) {
@@ -68,7 +84,7 @@ public final class KeyPreviewDrawParams {
public void setGeometry(final View previewTextView) {
final int previewWidth = previewTextView.getMeasuredWidth();
- final int previewHeight = mKeyPreviewHeight;
+ final int previewHeight = mPreviewHeight;
// The width and height of visible part of the key preview background. The content marker
// of the background 9-patch have to cover the visible part of the background.
mVisibleWidth = previewWidth - previewTextView.getPaddingLeft()
@@ -77,7 +93,7 @@ public final class KeyPreviewDrawParams {
- previewTextView.getPaddingBottom();
// The distance between the top edge of the parent key and the bottom of the visible part
// of the key preview background.
- setVisibleOffset(mKeyPreviewOffset - previewTextView.getPaddingBottom());
+ setVisibleOffset(mPreviewOffset - previewTextView.getPaddingBottom());
}
public int getVisibleWidth() {
@@ -87,4 +103,17 @@ public final class KeyPreviewDrawParams {
public int getVisibleHeight() {
return mVisibleHeight;
}
+
+ public void setPopupEnabled(final boolean enabled, final int lingerTimeout) {
+ mShowPopup = enabled;
+ mLingerTimeout = lingerTimeout;
+ }
+
+ public boolean isPopupEnabled() {
+ return mShowPopup;
+ }
+
+ public int getLingerTimeout() {
+ return mLingerTimeout;
+ }
}