aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-01-21 13:43:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-01-21 13:43:41 +0000
commit86735948306765d60dee811b31fabc1796129303 (patch)
tree790c66a88eb55c4af4e60d956d99eac0053d2516 /java/src
parent8aa9963a895f9dd5bb1bc92ab2e4f461e058f87a (diff)
parenta237cd4a025523d19cbdc45a659203b303584378 (diff)
downloadlatinime-86735948306765d60dee811b31fabc1796129303.tar.gz
latinime-86735948306765d60dee811b31fabc1796129303.tar.xz
latinime-86735948306765d60dee811b31fabc1796129303.zip
Merge "Add SlidingKeyInputPreview class"
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java29
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java69
2 files changed, 79 insertions, 19 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java b/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java
index 83a06cb48..af8bb78d8 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java
@@ -57,9 +57,7 @@ public final class PreviewPlacerView extends RelativeLayout {
private final Rect mGesturePreviewTrailBoundsRect = new Rect(); // per trail
// TODO: Move these AbstractDrawingPvreiew objects to MainKeyboardView.
private final GestureFloatingPreviewText mGestureFloatingPreviewText;
- private boolean mShowSlidingKeyInputPreview;
- private final int[] mRubberBandFrom = CoordinateUtils.newInstance();
- private final int[] mRubberBandTo = CoordinateUtils.newInstance();
+ private final SlidingKeyInputPreview mSlidingKeyInputPreview;
private final DrawingHandler mDrawingHandler;
@@ -107,6 +105,7 @@ public final class PreviewPlacerView extends RelativeLayout {
// MultiGesturePreviewText, depending on the user's choice in the settings.
mGestureFloatingPreviewText = new GestureFloatingPreviewText(this, mainKeyboardViewAttr);
mGesturePreviewTrailParams = new Params(mainKeyboardViewAttr);
+ mSlidingKeyInputPreview = new SlidingKeyInputPreview(this, mainKeyboardViewAttr);
mainKeyboardViewAttr.recycle();
mDrawingHandler = new DrawingHandler(this, mGesturePreviewTrailParams);
@@ -125,6 +124,7 @@ public final class PreviewPlacerView extends RelativeLayout {
final int height) {
CoordinateUtils.copy(mKeyboardViewOrigin, originCoords);
mGestureFloatingPreviewText.setKeyboardGeometry(originCoords, width, height);
+ mSlidingKeyInputPreview.setKeyboardGeometry(originCoords, width, height);
mOffscreenOffsetY = (int)(
height * GestureStroke.EXTRA_GESTURE_TRAIL_AREA_ABOVE_KEYBOARD_RATIO);
mOffscreenWidth = width;
@@ -156,25 +156,21 @@ public final class PreviewPlacerView extends RelativeLayout {
}
}
+ // TODO: Move this method to MainKeyboardView
public void showSlidingKeyInputPreview(final PointerTracker tracker) {
- if (!tracker.isInSlidingKeyInputFromModifier()) {
- mShowSlidingKeyInputPreview = false;
- return;
- }
- tracker.getDownCoordinates(mRubberBandFrom);
- tracker.getLastCoordinates(mRubberBandTo);
- mShowSlidingKeyInputPreview = true;
- invalidate();
+ mSlidingKeyInputPreview.setPreviewPosition(tracker);
}
+ // TODO: Move this method to MainKeyboardView
public void dismissSlidingKeyInputPreview() {
- mShowSlidingKeyInputPreview = false;
+ mSlidingKeyInputPreview.dismissSlidingKeyInputPreview();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
mGestureFloatingPreviewText.onDetachFromWindow();
+ mSlidingKeyInputPreview.onDetachFromWindow();
freeOffscreenBuffer();
}
@@ -221,9 +217,7 @@ public final class PreviewPlacerView extends RelativeLayout {
}
}
mGestureFloatingPreviewText.drawPreview(canvas);
- if (mShowSlidingKeyInputPreview) {
- drawSlidingKeyInputPreview(canvas);
- }
+ mSlidingKeyInputPreview.drawPreview(canvas);
canvas.translate(-originX, -originY);
}
@@ -253,11 +247,8 @@ public final class PreviewPlacerView extends RelativeLayout {
return needsUpdatingGesturePreviewTrail;
}
+ // TODO: Move this method to MainKeyboardView.
public void setGestureFloatingPreviewText(final SuggestedWords suggestedWords) {
mGestureFloatingPreviewText.setSuggetedWords(suggestedWords);
}
-
- private void drawSlidingKeyInputPreview(final Canvas canvas) {
- // TODO: Implement rubber band preview
- }
}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
new file mode 100644
index 000000000..322f981c4
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputPreview.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.view.View;
+
+import com.android.inputmethod.keyboard.PointerTracker;
+import com.android.inputmethod.latin.CoordinateUtils;
+
+/**
+ * Draw rubber band preview graphics during sliding key input.
+ */
+public final class SlidingKeyInputPreview extends AbstractDrawingPreview {
+ private boolean mShowSlidingKeyInputPreview;
+ private final int[] mRubberBandFrom = CoordinateUtils.newInstance();
+ private final int[] mRubberBandTo = CoordinateUtils.newInstance();
+
+ public SlidingKeyInputPreview(final View drawingView, final TypedArray mainKeyboardViewAttr) {
+ super(drawingView);
+ }
+
+ public void dismissSlidingKeyInputPreview() {
+ mShowSlidingKeyInputPreview = false;
+ }
+
+ /**
+ * Draws the preview
+ * @param canvas The canvas where the preview is drawn.
+ */
+ @Override
+ public void drawPreview(final Canvas canvas) {
+ if (!isPreviewEnabled() || mShowSlidingKeyInputPreview == false) {
+ return;
+ }
+ // TODO: Implement rubber band preview
+ }
+
+ /**
+ * Set the position of the preview.
+ * @param tracker The new location of the preview is based on the points in PointerTracker.
+ */
+ @Override
+ public void setPreviewPosition(final PointerTracker tracker) {
+ if (!tracker.isInSlidingKeyInputFromModifier()) {
+ mShowSlidingKeyInputPreview = false;
+ return;
+ }
+ tracker.getDownCoordinates(mRubberBandFrom);
+ tracker.getLastCoordinates(mRubberBandTo);
+ mShowSlidingKeyInputPreview = true;
+ getDrawingView().invalidate();
+ }
+}