aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-05-24 03:01:48 +0900
committerTadashi G. Takaoka <takaoka@google.com>2014-05-25 10:54:15 +0900
commit0380421bf7aea2fd3c39f5e3cf13e1593c0da02e (patch)
tree50f6f159c3a087e0941efd503db568f7529d881c /java/src
parentdb21267b788592ce99b9fb052801c6ec90bfe7b6 (diff)
downloadlatinime-0380421bf7aea2fd3c39f5e3cf13e1593c0da02e.tar.gz
latinime-0380421bf7aea2fd3c39f5e3cf13e1593c0da02e.tar.xz
latinime-0380421bf7aea2fd3c39f5e3cf13e1593c0da02e.zip
Release and register current key when emoji palette is hidden
Bug: 13290802 Change-Id: Ib087152f8bd47a5c81901377291e4223ee4a49ec
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java15
-rw-r--r--java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java11
-rw-r--r--java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java1
3 files changed, 18 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
index 48efa17ad..4d74ea989 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
@@ -102,7 +102,7 @@ final class EmojiPageKeyboardView extends KeyboardView implements
}
final Key key = getKey(e);
if (key != null && key != mCurrentKey) {
- releaseCurrentKey();
+ releaseCurrentKey(false /* withKeyRegistering */);
}
return true;
}
@@ -119,7 +119,7 @@ final class EmojiPageKeyboardView extends KeyboardView implements
return mKeyDetector.detectHitKey(x, y);
}
- public void releaseCurrentKey() {
+ public void releaseCurrentKey(final boolean withKeyRegistering) {
mHandler.removeCallbacks(mPendingKeyDown);
mPendingKeyDown = null;
final Key currentKey = mCurrentKey;
@@ -128,13 +128,16 @@ final class EmojiPageKeyboardView extends KeyboardView implements
}
currentKey.onReleased();
invalidateKey(currentKey);
+ if (withKeyRegistering) {
+ mListener.onReleaseKey(currentKey);
+ }
mCurrentKey = null;
}
@Override
public boolean onDown(final MotionEvent e) {
final Key key = getKey(e);
- releaseCurrentKey();
+ releaseCurrentKey(false /* withKeyRegistering */);
mCurrentKey = key;
if (key == null) {
return false;
@@ -163,7 +166,7 @@ final class EmojiPageKeyboardView extends KeyboardView implements
final Key key = getKey(e);
final Runnable pendingKeyDown = mPendingKeyDown;
final Key currentKey = mCurrentKey;
- releaseCurrentKey();
+ releaseCurrentKey(false /* withKeyRegistering */);
if (key == null) {
return false;
}
@@ -189,14 +192,14 @@ final class EmojiPageKeyboardView extends KeyboardView implements
@Override
public boolean onScroll(final MotionEvent e1, final MotionEvent e2, final float distanceX,
final float distanceY) {
- releaseCurrentKey();
+ releaseCurrentKey(false /* withKeyRegistering */);
return false;
}
@Override
public boolean onFling(final MotionEvent e1, final MotionEvent e2, final float velocityX,
final float velocityY) {
- releaseCurrentKey();
+ releaseCurrentKey(false /* withKeyRegistering */);
return false;
}
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java
index b1e6dd318..68056e0eb 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesAdapter.java
@@ -68,13 +68,18 @@ final class EmojiPalettesAdapter extends PagerAdapter {
}
public void onPageScrolled() {
+ releaseCurrentKey(false /* withKeyRegistering */);
+ }
+
+ public void releaseCurrentKey(final boolean withKeyRegistering) {
// Make sure the delayed key-down event (highlight effect and haptic feedback) will be
// canceled.
final EmojiPageKeyboardView currentKeyboardView =
mActiveKeyboardViews.get(mActivePosition);
- if (currentKeyboardView != null) {
- currentKeyboardView.releaseCurrentKey();
+ if (currentKeyboardView == null) {
+ return;
}
+ currentKeyboardView.releaseCurrentKey(withKeyRegistering);
}
@Override
@@ -90,7 +95,7 @@ final class EmojiPalettesAdapter extends PagerAdapter {
}
final EmojiPageKeyboardView oldKeyboardView = mActiveKeyboardViews.get(mActivePosition);
if (oldKeyboardView != null) {
- oldKeyboardView.releaseCurrentKey();
+ oldKeyboardView.releaseCurrentKey(false /* withKeyRegistering */);
oldKeyboardView.deallocateMemory();
}
mActivePosition = position;
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
index 7368f3c72..f9e25bcc3 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
@@ -380,6 +380,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
}
public void stopEmojiPalettes() {
+ mEmojiPalettesAdapter.releaseCurrentKey(true /* withKeyRegistering */);
mEmojiPalettesAdapter.flushPendingRecentKeys();
mEmojiPager.setAdapter(null);
}