aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-12-07 11:05:14 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-12-07 11:24:18 +0900
commit292faee8ba73797c8a97052c02f9b571cfb128b3 (patch)
tree5ffeb688f70b3b558dc323d977710cf68da05d80 /java/src
parentca7c1b56aaccdd16a24dcc93b13e909ad54cdfc4 (diff)
downloadlatinime-292faee8ba73797c8a97052c02f9b571cfb128b3.tar.gz
latinime-292faee8ba73797c8a97052c02f9b571cfb128b3.tar.xz
latinime-292faee8ba73797c8a97052c02f9b571cfb128b3.zip
Fix ghost popup mini keyboard
Bug: 3257700 Change-Id: I522ceb426b825575c90e8445336191bcf889f05d
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java28
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java3
2 files changed, 20 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 87d128fe0..cd426690b 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -202,11 +202,19 @@ public class Key {
this.mX = x + mGap / 2;
this.mY = y;
- int[] codes = style.getIntArray(a, R.styleable.Keyboard_Key_codes);
mPreviewIcon = style.getDrawable(a, R.styleable.Keyboard_Key_iconPreview);
Keyboard.setDefaultBounds(mPreviewIcon);
- mPopupCharacters = style.getText(a, R.styleable.Keyboard_Key_popupCharacters);
- mPopupResId = style.getResourceId(a, R.styleable.Keyboard_Key_popupKeyboard, 0);
+ final CharSequence popupCharacters = style.getText(a,
+ R.styleable.Keyboard_Key_popupCharacters);
+ final int popupResId = style.getResourceId(a, R.styleable.Keyboard_Key_popupKeyboard, 0);
+ // Set popup keyboard resource and characters only when both are specified.
+ if (popupResId != 0 && !TextUtils.isEmpty(popupCharacters)) {
+ mPopupResId = popupResId;
+ mPopupCharacters = popupCharacters;
+ } else {
+ mPopupResId = 0;
+ mPopupCharacters = null;
+ }
mRepeatable = style.getBoolean(a, R.styleable.Keyboard_Key_isRepeatable, false);
mModifier = style.getBoolean(a, R.styleable.Keyboard_Key_isModifier, false);
mSticky = style.getBoolean(a, R.styleable.Keyboard_Key_isSticky, false);
@@ -226,16 +234,20 @@ public class Key {
mManualTemporaryUpperCaseCode = style.getInt(a,
R.styleable.Keyboard_Key_manualTemporaryUpperCaseCode, 0);
mOutputText = style.getText(a, R.styleable.Keyboard_Key_keyOutputText);
+ // Choose the first letter of the label as primary code if not specified.
+ final int[] codes = style.getIntArray(a, R.styleable.Keyboard_Key_codes);
+ if (codes == null && !TextUtils.isEmpty(mLabel)) {
+ mCodes = new int[] { mLabel.charAt(0) };
+ } else {
+ mCodes = codes;
+ }
+
final Drawable shiftedIcon = style.getDrawable(a,
R.styleable.Keyboard_Key_shiftedIcon);
- a.recycle();
-
if (shiftedIcon != null)
mKeyboard.getShiftedIcons().put(this, shiftedIcon);
- if (codes == null && !TextUtils.isEmpty(mLabel))
- codes = new int[] { mLabel.charAt(0) };
- mCodes = codes;
+ a.recycle();
}
public Drawable getIcon() {
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index c54b1b459..98426862c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -1187,9 +1187,6 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
* method on the base class if the subclass doesn't wish to handle the call.
*/
protected boolean onLongPress(Key popupKey) {
- // TODO if popupKey.popupCharacters has only one letter, send it as key without opening
- // mini keyboard.
-
if (popupKey.mPopupResId == 0)
return false;