summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-01-24 16:08:33 +0900
committerTadashi G. Takaoka <takaoka@google.com>2013-01-24 18:14:20 +0900
commitff961ddf8c58df569c97684bfd83a01b2a9470aa (patch)
treebb26b90bec7415b832cf3c1ded7c40f2b4edcaf1 /java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
parentef43cc9d1c78d051b3d2923ce3166e9703d4b2ce (diff)
Add preliminary graphics of sliding key input preview
Bug: 7548583 Change-Id: Idde6a62f9e64458055c99c893b71c02d1adc7b04
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java33
1 files changed, 27 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
index 322f981c4..37f4e3582 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
@@ -18,25 +18,40 @@ package com.android.inputmethod.keyboard.internal;
import android.content.res.TypedArray;
import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Path;
import android.view.View;
import com.android.inputmethod.keyboard.PointerTracker;
import com.android.inputmethod.latin.CoordinateUtils;
+import com.android.inputmethod.latin.R;
/**
* Draw rubber band preview graphics during sliding key input.
*/
public final class SlidingKeyInputPreview extends AbstractDrawingPreview {
+ private final int mPreviewWidth;
+
private boolean mShowSlidingKeyInputPreview;
- private final int[] mRubberBandFrom = CoordinateUtils.newInstance();
- private final int[] mRubberBandTo = CoordinateUtils.newInstance();
+ private final int[] mPreviewFrom = CoordinateUtils.newInstance();
+ private final int[] mPreviewTo = CoordinateUtils.newInstance();
+
+ // TODO: Finalize the rubber band preview implementation.
+ private final RoundedLine mRoundedLine = new RoundedLine();
+ private final Paint mPaint = new Paint();
public SlidingKeyInputPreview(final View drawingView, final TypedArray mainKeyboardViewAttr) {
super(drawingView);
+ final int previewColor = mainKeyboardViewAttr.getColor(
+ R.styleable.MainKeyboardView_slidingKeyInputPreviewColor, 0);
+ mPreviewWidth = mainKeyboardViewAttr.getDimensionPixelSize(
+ R.styleable.MainKeyboardView_slidingKeyInputPreviewWidth, 0);
+ mPaint.setColor(previewColor);
}
public void dismissSlidingKeyInputPreview() {
mShowSlidingKeyInputPreview = false;
+ getDrawingView().invalidate();
}
/**
@@ -45,10 +60,16 @@ public final class SlidingKeyInputPreview extends AbstractDrawingPreview {
*/
@Override
public void drawPreview(final Canvas canvas) {
- if (!isPreviewEnabled() || mShowSlidingKeyInputPreview == false) {
+ if (!isPreviewEnabled() || !mShowSlidingKeyInputPreview) {
return;
}
- // TODO: Implement rubber band preview
+
+ // TODO: Finalize the rubber band preview implementation.
+ final int radius = mPreviewWidth / 2;
+ final Path path = mRoundedLine.makePath(
+ CoordinateUtils.x(mPreviewFrom), CoordinateUtils.y(mPreviewFrom), radius,
+ CoordinateUtils.x(mPreviewTo), CoordinateUtils.y(mPreviewTo), radius);
+ canvas.drawPath(path, mPaint);
}
/**
@@ -61,8 +82,8 @@ public final class SlidingKeyInputPreview extends AbstractDrawingPreview {
mShowSlidingKeyInputPreview = false;
return;
}
- tracker.getDownCoordinates(mRubberBandFrom);
- tracker.getLastCoordinates(mRubberBandTo);
+ tracker.getDownCoordinates(mPreviewFrom);
+ tracker.getLastCoordinates(mPreviewTo);
mShowSlidingKeyInputPreview = true;
getDrawingView().invalidate();
}