Move AbstractDrawingPreview objects to MainKeyboardView
Change-Id: I0be72fba9a66f7c326028ec8e4670ca74a46053f
This commit is contained in:
parent
2277733048
commit
fb523d7f5d
2 changed files with 49 additions and 69 deletions
|
@ -50,9 +50,12 @@ import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
|||
import com.android.inputmethod.annotations.ExternallyReferenced;
|
||||
import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
|
||||
import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
|
||||
import com.android.inputmethod.keyboard.internal.GestureFloatingPreviewText;
|
||||
import com.android.inputmethod.keyboard.internal.GestureTrailsPreview;
|
||||
import com.android.inputmethod.keyboard.internal.KeyDrawParams;
|
||||
import com.android.inputmethod.keyboard.internal.KeyPreviewDrawParams;
|
||||
import com.android.inputmethod.keyboard.internal.PreviewPlacerView;
|
||||
import com.android.inputmethod.keyboard.internal.SlidingKeyInputPreview;
|
||||
import com.android.inputmethod.keyboard.internal.TouchScreenRegulator;
|
||||
import com.android.inputmethod.latin.CollectionUtils;
|
||||
import com.android.inputmethod.latin.Constants;
|
||||
|
@ -154,6 +157,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
// Preview placer view
|
||||
private final PreviewPlacerView mPreviewPlacerView;
|
||||
private final int[] mOriginCoords = CoordinateUtils.newInstance();
|
||||
private final GestureFloatingPreviewText mGestureFloatingPreviewText;
|
||||
private final GestureTrailsPreview mGestureTrailsPreview;
|
||||
private final SlidingKeyInputPreview mSlidingKeyInputPreview;
|
||||
|
||||
// Key preview
|
||||
private static final int PREVIEW_ALPHA = 240;
|
||||
|
@ -446,8 +452,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
}
|
||||
break;
|
||||
case MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT:
|
||||
mainKeyboardView.mPreviewPlacerView.setGestureFloatingPreviewText(
|
||||
SuggestedWords.EMPTY);
|
||||
mainKeyboardView.showGestureFloatingPreviewText(SuggestedWords.EMPTY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -493,6 +498,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
ResourceUtils.getDeviceOverrideValue(
|
||||
res, R.array.phantom_sudden_move_event_device_list));
|
||||
PointerTracker.init(needsPhantomSuddenMoveEventHack);
|
||||
mPreviewPlacerView = new PreviewPlacerView(context, attrs);
|
||||
|
||||
final TypedArray mainKeyboardViewAttr = context.obtainStyledAttributes(
|
||||
attrs, R.styleable.MainKeyboardView, defStyle, R.style.MainKeyboardView);
|
||||
|
@ -546,6 +552,18 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
mGestureFloatingPreviewTextLingerTimeout = mainKeyboardViewAttr.getInt(
|
||||
R.styleable.MainKeyboardView_gestureFloatingPreviewTextLingerTimeout, 0);
|
||||
PointerTracker.setParameters(mainKeyboardViewAttr);
|
||||
|
||||
mGestureFloatingPreviewText = new GestureFloatingPreviewText(
|
||||
mPreviewPlacerView, mainKeyboardViewAttr);
|
||||
mPreviewPlacerView.addPreview(mGestureFloatingPreviewText);
|
||||
|
||||
mGestureTrailsPreview = new GestureTrailsPreview(
|
||||
mPreviewPlacerView, mainKeyboardViewAttr);
|
||||
mPreviewPlacerView.addPreview(mGestureTrailsPreview);
|
||||
|
||||
mSlidingKeyInputPreview = new SlidingKeyInputPreview(
|
||||
mPreviewPlacerView, mainKeyboardViewAttr);
|
||||
mPreviewPlacerView.addPreview(mSlidingKeyInputPreview);
|
||||
mainKeyboardViewAttr.recycle();
|
||||
|
||||
mLanguageOnSpacebarFadeoutAnimator = loadObjectAnimator(
|
||||
|
@ -554,8 +572,6 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
altCodeKeyWhileTypingFadeoutAnimatorResId, this);
|
||||
mAltCodeKeyWhileTypingFadeinAnimator = loadObjectAnimator(
|
||||
altCodeKeyWhileTypingFadeinAnimatorResId, this);
|
||||
|
||||
mPreviewPlacerView = new PreviewPlacerView(context, attrs);
|
||||
}
|
||||
|
||||
private ObjectAnimator loadObjectAnimator(final int resId, final Object target) {
|
||||
|
@ -864,23 +880,23 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
@Override
|
||||
public void showSlidingKeyInputPreview(final PointerTracker tracker) {
|
||||
locatePreviewPlacerView();
|
||||
mPreviewPlacerView.showSlidingKeyInputPreview(tracker);
|
||||
mSlidingKeyInputPreview.setPreviewPosition(tracker);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismissSlidingKeyInputPreview() {
|
||||
mPreviewPlacerView.dismissSlidingKeyInputPreview();
|
||||
mSlidingKeyInputPreview.dismissSlidingKeyInputPreview();
|
||||
}
|
||||
|
||||
public void setGesturePreviewMode(final boolean drawsGesturePreviewTrail,
|
||||
final boolean drawsGestureFloatingPreviewText) {
|
||||
mPreviewPlacerView.setGesturePreviewMode(
|
||||
drawsGesturePreviewTrail, drawsGestureFloatingPreviewText);
|
||||
mGestureFloatingPreviewText.setPreviewEnabled(drawsGestureFloatingPreviewText);
|
||||
mGestureTrailsPreview.setPreviewEnabled(drawsGesturePreviewTrail);
|
||||
}
|
||||
|
||||
public void showGestureFloatingPreviewText(final SuggestedWords suggestedWords) {
|
||||
locatePreviewPlacerView();
|
||||
mPreviewPlacerView.setGestureFloatingPreviewText(suggestedWords);
|
||||
mGestureFloatingPreviewText.setSuggetedWords(suggestedWords);
|
||||
}
|
||||
|
||||
public void dismissGestureFloatingPreviewText() {
|
||||
|
@ -888,9 +904,11 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
|||
mDrawingHandler.dismissGestureFloatingPreviewText(mGestureFloatingPreviewTextLingerTimeout);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showGesturePreviewTrail(final PointerTracker tracker) {
|
||||
locatePreviewPlacerView();
|
||||
mPreviewPlacerView.invalidatePointer(tracker);
|
||||
mGestureFloatingPreviewText.setPreviewPosition(tracker);
|
||||
mGestureTrailsPreview.setPreviewPosition(tracker);
|
||||
}
|
||||
|
||||
// Note that this method is called from a non-UI thread.
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
package com.android.inputmethod.keyboard.internal;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PorterDuff;
|
||||
|
@ -25,78 +24,45 @@ import android.graphics.PorterDuffXfermode;
|
|||
import android.util.AttributeSet;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import com.android.inputmethod.keyboard.PointerTracker;
|
||||
import com.android.inputmethod.latin.CollectionUtils;
|
||||
import com.android.inputmethod.latin.CoordinateUtils;
|
||||
import com.android.inputmethod.latin.R;
|
||||
import com.android.inputmethod.latin.SuggestedWords;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public final class PreviewPlacerView extends RelativeLayout {
|
||||
private final int[] mKeyboardViewOrigin = CoordinateUtils.newInstance();
|
||||
|
||||
// TODO: Move these AbstractDrawingPvreiew objects to MainKeyboardView.
|
||||
private final GestureFloatingPreviewText mGestureFloatingPreviewText;
|
||||
private final GestureTrailsPreview mGestureTrailsPreview;
|
||||
private final SlidingKeyInputPreview mSlidingKeyInputPreview;
|
||||
private final ArrayList<AbstractDrawingPreview> mPreviews = CollectionUtils.newArrayList();
|
||||
|
||||
public PreviewPlacerView(final Context context, final AttributeSet attrs) {
|
||||
this(context, attrs, R.attr.keyboardViewStyle);
|
||||
}
|
||||
|
||||
public PreviewPlacerView(final Context context, final AttributeSet attrs, final int defStyle) {
|
||||
super(context);
|
||||
super(context, attrs);
|
||||
setWillNotDraw(false);
|
||||
|
||||
final TypedArray mainKeyboardViewAttr = context.obtainStyledAttributes(
|
||||
attrs, R.styleable.MainKeyboardView, defStyle, R.style.MainKeyboardView);
|
||||
// TODO: mGestureFloatingPreviewText could be an instance of GestureFloatingPreviewText or
|
||||
// MultiGesturePreviewText, depending on the user's choice in the settings.
|
||||
mGestureFloatingPreviewText = new GestureFloatingPreviewText(this, mainKeyboardViewAttr);
|
||||
mGestureTrailsPreview = new GestureTrailsPreview(this, mainKeyboardViewAttr);
|
||||
mSlidingKeyInputPreview = new SlidingKeyInputPreview(this, mainKeyboardViewAttr);
|
||||
mainKeyboardViewAttr.recycle();
|
||||
|
||||
final Paint layerPaint = new Paint();
|
||||
layerPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
|
||||
setLayerType(LAYER_TYPE_HARDWARE, layerPaint);
|
||||
}
|
||||
|
||||
public void addPreview(final AbstractDrawingPreview preview) {
|
||||
mPreviews.add(preview);
|
||||
}
|
||||
|
||||
public void setKeyboardViewGeometry(final int[] originCoords, final int width,
|
||||
final int height) {
|
||||
CoordinateUtils.copy(mKeyboardViewOrigin, originCoords);
|
||||
mGestureFloatingPreviewText.setKeyboardGeometry(originCoords, width, height);
|
||||
mGestureTrailsPreview.setKeyboardGeometry(originCoords, width, height);
|
||||
mSlidingKeyInputPreview.setKeyboardGeometry(originCoords, width, height);
|
||||
}
|
||||
|
||||
// TODO: Move this method to MainKeyboardView
|
||||
public void setGesturePreviewMode(final boolean drawsGesturePreviewTrail,
|
||||
final boolean drawsGestureFloatingPreviewText) {
|
||||
mGestureFloatingPreviewText.setPreviewEnabled(drawsGestureFloatingPreviewText);
|
||||
mGestureTrailsPreview.setPreviewEnabled(drawsGesturePreviewTrail);
|
||||
}
|
||||
|
||||
// TODO: Move this method to MainKeyboardView
|
||||
public void invalidatePointer(final PointerTracker tracker) {
|
||||
mGestureFloatingPreviewText.setPreviewPosition(tracker);
|
||||
mGestureTrailsPreview.setPreviewPosition(tracker);
|
||||
}
|
||||
|
||||
// TODO: Move this method to MainKeyboardView
|
||||
public void showSlidingKeyInputPreview(final PointerTracker tracker) {
|
||||
mSlidingKeyInputPreview.setPreviewPosition(tracker);
|
||||
}
|
||||
|
||||
// TODO: Move this method to MainKeyboardView
|
||||
public void dismissSlidingKeyInputPreview() {
|
||||
mSlidingKeyInputPreview.dismissSlidingKeyInputPreview();
|
||||
final int count = mPreviews.size();
|
||||
for (int i = 0; i < count; i++) {
|
||||
mPreviews.get(i).setKeyboardGeometry(originCoords, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
mGestureFloatingPreviewText.onDetachFromWindow();
|
||||
mGestureTrailsPreview.onDetachFromWindow();
|
||||
mSlidingKeyInputPreview.onDetachFromWindow();
|
||||
final int count = mPreviews.size();
|
||||
for (int i = 0; i < count; i++) {
|
||||
mPreviews.get(i).onDetachFromWindow();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -105,14 +71,10 @@ public final class PreviewPlacerView extends RelativeLayout {
|
|||
final int originX = CoordinateUtils.x(mKeyboardViewOrigin);
|
||||
final int originY = CoordinateUtils.y(mKeyboardViewOrigin);
|
||||
canvas.translate(originX, originY);
|
||||
mGestureFloatingPreviewText.drawPreview(canvas);
|
||||
mGestureTrailsPreview.drawPreview(canvas);
|
||||
mSlidingKeyInputPreview.drawPreview(canvas);
|
||||
final int count = mPreviews.size();
|
||||
for (int i = 0; i < count; i++) {
|
||||
mPreviews.get(i).drawPreview(canvas);
|
||||
}
|
||||
canvas.translate(-originX, -originY);
|
||||
}
|
||||
|
||||
// TODO: Move this method to MainKeyboardView.
|
||||
public void setGestureFloatingPreviewText(final SuggestedWords suggestedWords) {
|
||||
mGestureFloatingPreviewText.setSuggetedWords(suggestedWords);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue