Fix long press behavior of akye that has altCode defined
This issue has been introduced by I2bd4daf2
Change-Id: Ie10b3e0bb360986597a0f5a8e5b8253400f924c4
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 89dad7b..e7676c6 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -481,8 +481,11 @@
*/
protected boolean onLongPress(Key parentKey, PointerTracker tracker) {
final int primaryCode = parentKey.mCode;
- if (parentKey.mAltCode != Keyboard.CODE_UNSPECIFIED) {
- // Long press on a key that has altCode defined.
+ if (parentKey.mMoreKeys == null && !parentKey.altCodeWhileTyping()
+ && parentKey.mAltCode != Keyboard.CODE_UNSPECIFIED) {
+ // Long press on a key that has no more keys and not altCodeWhileTyping but altCode
+ // defined, such as "0 +" key on phone layout and "/ :" key on datetime
+ // layout.
tracker.onLongPressed();
invokeCodeInput(parentKey.mAltCode);
invokeReleaseKey(primaryCode);