Merge "Rename popupSettingsStyle to f2PopupStyle"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index ee9eb7b..28c91b8 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -313,7 +313,12 @@
         }
 
         final boolean settingsKeyEnabled = settingsValues.isSettingsKeyEnabled(editorInfo);
-        final boolean voiceKeyEnabled = settingsValues.isVoiceKeyEnabled(editorInfo);
+        final boolean noMicrophone = Utils.inPrivateImeOptions(
+                mPackageName, LatinIME.IME_OPTION_NO_MICROPHONE, editorInfo)
+                || Utils.inPrivateImeOptions(
+                        null, LatinIME.IME_OPTION_NO_MICROPHONE_COMPAT, editorInfo);
+        final boolean voiceKeyEnabled = settingsValues.isVoiceKeyEnabled(editorInfo)
+                && !noMicrophone;
         final boolean voiceKeyOnMain = settingsValues.isVoiceKeyOnMain();
         final boolean noSettingsKey = Utils.inPrivateImeOptions(
                 mPackageName, LatinIME.IME_OPTION_NO_SETTINGS_KEY, editorInfo);
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 7dbc790..4086a8e 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -630,7 +630,7 @@
         }
 
         // Draw popup hint "..." at the bottom right corner of the key.
-        if (key.hasPopupHint()) {
+        if (key.hasPopupHint() && key.mPopupCharacters != null && key.mPopupCharacters.length > 0) {
             paint.setTextSize(params.mKeyHintLetterSize);
             paint.setColor(params.mKeyHintLabelColor);
             paint.setTextAlign(Align.CENTER);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index 30d9692..3f9f359 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -212,7 +212,7 @@
 
     public void parseKeyStyleAttributes(TypedArray keyStyleAttr, TypedArray keyAttrs,
             XmlResourceParser parser) {
-        String styleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_styleName);
+        final String styleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_styleName);
         if (DEBUG) Log.d(TAG, String.format("<%s styleName=%s />",
                 KeyboardParser.TAG_KEY_STYLE, styleName));
         if (mStyles.containsKey(styleName))
@@ -220,11 +220,11 @@
 
         final DeclaredKeyStyle style = new DeclaredKeyStyle();
         if (keyStyleAttr.hasValue(R.styleable.Keyboard_KeyStyle_parentStyle)) {
-            String parentStyle = keyStyleAttr.getString(
+            final String parentStyle = keyStyleAttr.getString(
                     R.styleable.Keyboard_KeyStyle_parentStyle);
             final DeclaredKeyStyle parent = mStyles.get(parentStyle);
             if (parent == null)
-                throw new ParseException("Unknown parentStyle " + parent, parser);
+                throw new ParseException("Unknown parentStyle " + parentStyle, parser);
             style.addParent(parent);
         }
         style.parseKeyStyleAttributes(keyAttrs);