From de66f3af8aa3407f4aab6d896866efcfd224013c Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Mon, 12 Dec 2011 12:52:42 +0900 Subject: [PATCH] Assign Key.mCode from the label only when outputText is not specified Bug: 5742827 Change-Id: I72b55ce246b14a2d8f4fd16211b71dc716db30b2 --- java/src/com/android/inputmethod/keyboard/Key.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index b2b68f0ad..ced763841 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -22,6 +22,7 @@ import android.graphics.Rect; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.text.TextUtils; +import android.util.Log; import android.util.Xml; import com.android.inputmethod.keyboard.internal.KeyStyles; @@ -42,6 +43,8 @@ import java.util.Map; * Class for describing the position and characteristics of a single key in the keyboard. */ public class Key { + private static final String TAG = Key.class.getSimpleName(); + /** * The key code (unicode or custom code) that this key generates. */ @@ -284,7 +287,11 @@ public class Key { // specified. final int code = style.getInt(keyAttr, R.styleable.Keyboard_Key_code, Keyboard.CODE_UNSPECIFIED); - if (code == Keyboard.CODE_UNSPECIFIED && !TextUtils.isEmpty(mLabel)) { + if (code == Keyboard.CODE_UNSPECIFIED && mOutputText == null + && !TextUtils.isEmpty(mLabel)) { + if (mLabel.length() != 1) { + Log.w(TAG, "Label is not a single letter: label=" + mLabel); + } final int firstChar = mLabel.charAt(0); mCode = getRtlParenthesisCode(firstChar, params.mIsRtlKeyboard); } else if (code != Keyboard.CODE_UNSPECIFIED) {