Set minimum height for RecognitionView in the case that there is no keyboard view loaded.

Bug: 3352322

Change-Id: I9a7b2a745b47bdc62a96a5cd2c0d8ad717e1b406
main
satok 2011-01-24 17:38:49 +09:00
parent 47e482157e
commit 8cacb024cf
3 changed files with 11 additions and 6 deletions

View File

@ -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">

View File

@ -435,7 +435,7 @@ public class SubtypeSwitcher {
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;

View File

@ -78,6 +78,7 @@ public class VoiceIMEConnector implements VoiceInput.UiListener {
// 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 @@ public class VoiceIMEConnector implements VoiceInput.UiListener {
// 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;
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);