Merge "Always display the VoiceIME language in the Speak Now pop-up" into honeycomb
diff --git a/java/res/layout/recognition_status.xml b/java/res/layout/recognition_status.xml
index 81fae2a..9474d6f 100644
--- a/java/res/layout/recognition_status.xml
+++ b/java/res/layout/recognition_status.xml
@@ -26,7 +26,7 @@
             xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/popup_layout"
             android:orientation="vertical"
-            android:layout_height="0dip"
+            android:layout_height="371dip"
             android:layout_width="500dip"
             android:layout_centerInParent="true"
             android:background="@drawable/vs_dialog_red">
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index ffce66e..d3aa70c 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -435,7 +435,7 @@
             mVoiceInput = vi;
             if (isVoiceMode()) {
                 if (DBG) {
-                    Log.d(TAG, "Set and call voice input.");
+                    Log.d(TAG, "Set and call voice input.: " + getInputLocaleStr());
                 }
                 triggerVoiceIME();
                 return true;
diff --git a/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java b/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
index 6c9b7d5..a3a3ea8 100644
--- a/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
+++ b/java/src/com/android/inputmethod/voice/VoiceIMEConnector.java
@@ -78,6 +78,7 @@
     // given text field. For instance this is specified by the search dialog when the
     // dialog is already showing a voice search button.
     private static final String IME_OPTION_NO_MICROPHONE = "nm";
+    private static final int RECOGNITIONVIEW_HEIGHT_THRESHOLD_RATIO = 6;
 
     @SuppressWarnings("unused")
     private static final String TAG = "VoiceIMEConnector";
@@ -543,10 +544,14 @@
                 // As we add mm, we don't know how the rounding is going to work
                 // thus we may end up with few pixels extra (or less).
                 if (keyboardView != null) {
-                    int h = keyboardView.getHeight();
-                    if (h > 0) {
-                        View popupLayout = v.findViewById(R.id.popup_layout);
-                        popupLayout.getLayoutParams().height = h;
+                    View popupLayout = v.findViewById(R.id.popup_layout);
+                    final int displayHeight =
+                            mService.getResources().getDisplayMetrics().heightPixels;
+                    final int currentHeight = popupLayout.getLayoutParams().height;
+                    final int keyboardHeight = keyboardView.getHeight();
+                    if (keyboardHeight > currentHeight || keyboardHeight
+                            > (displayHeight / RECOGNITIONVIEW_HEIGHT_THRESHOLD_RATIO)) {
+                        popupLayout.getLayoutParams().height = keyboardHeight;
                     }
                 }
                 mService.setInputView(v);