aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-01-05 23:00:54 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-01-05 23:00:54 -0800
commit0b157cc66f6ea9b7a638c425111dc5ae0f6d9709 (patch)
tree1392472f723d912957bd0a9e99b2358b56ecc813 /java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
parent7b3e2b79dafd135cc2d0605775c03653fe31426d (diff)
parent7aedc8a054aca41e6c80d8faf0ed2dd47f9815c4 (diff)
downloadlatinime-0b157cc66f6ea9b7a638c425111dc5ae0f6d9709.tar.gz
latinime-0b157cc66f6ea9b7a638c425111dc5ae0f6d9709.tar.xz
latinime-0b157cc66f6ea9b7a638c425111dc5ae0f6d9709.zip
am 7aedc8a0: Automaticaly snap back to the previous mode from sliding input (DO NOT MERGE)
* commit '7aedc8a054aca41e6c80d8faf0ed2dd47f9815c4': Automaticaly snap back to the previous mode from sliding input (DO NOT MERGE)
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java31
1 files changed, 26 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index b1ef08573..008d37202 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -343,7 +343,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
cancelPopupPreview();
cancelDismissPreview();
}
- };
+ }
static class PointerQueue {
private LinkedList<PointerTracker> mQueue = new LinkedList<PointerTracker>();
@@ -391,6 +391,14 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
public void remove(PointerTracker tracker) {
mQueue.remove(tracker);
}
+
+ public boolean isInSlidingKeyInput() {
+ for (final PointerTracker tracker : mQueue) {
+ if (tracker.isInSlidingKeyInput())
+ return true;
+ }
+ return false;
+ }
}
public LatinKeyboardBaseView(Context context, AttributeSet attrs) {
@@ -1086,6 +1094,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
}
public void onCancel() {
+ mKeyboardActionListener.onCancel();
dismissPopupKeyboard();
}
@@ -1294,15 +1303,29 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
return pointers.get(id);
}
+ public boolean isInSlidingKeyInput() {
+ if (mMiniKeyboard != null) {
+ return mMiniKeyboard.isInSlidingKeyInput();
+ } else {
+ return mPointerQueue.isInSlidingKeyInput();
+ }
+ }
+
+ public int getPointerCount() {
+ return mOldPointerCount;
+ }
+
@Override
public boolean onTouchEvent(MotionEvent me) {
- final int pointerCount = me.getPointerCount();
final int action = me.getActionMasked();
+ final int pointerCount = me.getPointerCount();
+ final int oldPointerCount = mOldPointerCount;
+ mOldPointerCount = pointerCount;
// TODO: cleanup this code into a multi-touch to single-touch event converter class?
// If the device does not have distinct multi-touch support panel, ignore all multi-touch
// events except a transition from/to single-touch.
- if (!mHasDistinctMultitouch && pointerCount > 1 && mOldPointerCount > 1) {
+ if (!mHasDistinctMultitouch && pointerCount > 1 && oldPointerCount > 1) {
return true;
}
@@ -1358,7 +1381,6 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
if (!mHasDistinctMultitouch) {
// Use only main (id=0) pointer tracker.
PointerTracker tracker = getPointerTracker(0);
- int oldPointerCount = mOldPointerCount;
if (pointerCount == 1 && oldPointerCount == 2) {
// Multi-touch to single touch transition.
// Send a down event for the latest pointer.
@@ -1373,7 +1395,6 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
Log.w(TAG, "Unknown touch panel behavior: pointer count is " + pointerCount
+ " (old " + oldPointerCount + ")");
}
- mOldPointerCount = pointerCount;
return true;
}