diff options
| author | Tadashi G. Takaoka <takaoka@google.com> | 2012-08-07 11:48:10 +0900 |
|---|---|---|
| committer | Tadashi G. Takaoka <takaoka@google.com> | 2012-08-07 13:54:42 +0900 |
| commit | 27e48447a449d2eb534dfa2dc07060727e1a8fb0 (patch) | |
| tree | c21fc907f7ab10e206c3368e3e1173244a86eb24 /java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java | |
| parent | 2a0975be66cc899a065b802f410877c659d84035 (diff) | |
Lingering gesture floating preview text a bit
Bug: 6936095
Change-Id: I873343e9aa6afdf6bdb223795f03232509b012a7
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java')
| -rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java b/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java index c38febf49..d0fecf060 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java +++ b/java/src/com/android/inputmethod/keyboard/internal/PreviewPlacerView.java @@ -21,12 +21,14 @@ import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Paint.Align; +import android.os.Message; import android.text.TextUtils; import android.util.SparseArray; import android.widget.RelativeLayout; import com.android.inputmethod.keyboard.PointerTracker; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.StaticInnerHandlerWrapper; public class PreviewPlacerView extends RelativeLayout { private final Paint mGesturePaint; @@ -39,6 +41,7 @@ public class PreviewPlacerView extends RelativeLayout { private final int mGestureFloatingPreviewTextShadingBorder; private final int mGestureFloatingPreviewTextConnectorColor; private final int mGestureFloatingPreviewTextConnectorWidth; + /* package */ final int mGestureFloatingPreviewTextLingerTimeout; private int mXOrigin; private int mYOrigin; @@ -49,6 +52,43 @@ public class PreviewPlacerView extends RelativeLayout { private boolean mDrawsGesturePreviewTrail; private boolean mDrawsGestureFloatingPreviewText; + private final DrawingHandler mDrawingHandler = new DrawingHandler(this); + + private static class DrawingHandler extends StaticInnerHandlerWrapper<PreviewPlacerView> { + private static final int MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 0; + + public DrawingHandler(PreviewPlacerView outerInstance) { + super(outerInstance); + } + + @Override + public void handleMessage(Message msg) { + final PreviewPlacerView placerView = getOuterInstance(); + if (placerView == null) return; + switch (msg.what) { + case MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT: + placerView.setGestureFloatingPreviewText(null); + break; + } + } + + private void cancelDismissGestureFloatingPreviewText() { + removeMessages(MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT); + } + + public void dismissGestureFloatingPreviewText() { + cancelDismissGestureFloatingPreviewText(); + final PreviewPlacerView placerView = getOuterInstance(); + sendMessageDelayed( + obtainMessage(MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT), + placerView.mGestureFloatingPreviewTextLingerTimeout); + } + + public void cancelAllMessages() { + cancelDismissGestureFloatingPreviewText(); + } + } + public PreviewPlacerView(Context context, TypedArray keyboardViewAttr) { super(context); setWillNotDraw(false); @@ -71,6 +111,8 @@ public class PreviewPlacerView extends RelativeLayout { R.styleable.KeyboardView_gestureFloatingPreviewTextConnectorColor, 0); mGestureFloatingPreviewTextConnectorWidth = keyboardViewAttr.getDimensionPixelSize( R.styleable.KeyboardView_gestureFloatingPreviewTextConnectorWidth, 0); + mGestureFloatingPreviewTextLingerTimeout = keyboardViewAttr.getInt( + R.styleable.KeyboardView_gestureFloatingPreviewTextLingerTimeout, 0); final int gesturePreviewTrailColor = keyboardViewAttr.getColor( R.styleable.KeyboardView_gesturePreviewTrailColor, 0); final int gesturePreviewTrailWidth = keyboardViewAttr.getDimensionPixelSize( @@ -136,6 +178,14 @@ public class PreviewPlacerView extends RelativeLayout { invalidate(); } + public void dismissGestureFloatingPreviewText() { + mDrawingHandler.dismissGestureFloatingPreviewText(); + } + + public void cancelAllMessages() { + mDrawingHandler.cancelAllMessages(); + } + private void drawGestureFloatingPreviewText(Canvas canvas, PointerTracker tracker, String gestureFloatingPreviewText) { if (TextUtils.isEmpty(gestureFloatingPreviewText)) { |
