From 13b2b976350f6cf85a8154e98d1f313d8ad479fa Mon Sep 17 00:00:00 2001 From: Ralston Da Silva Date: Thu, 14 Feb 2019 15:43:23 -0800 Subject: [PATCH] Removing usage of unsupportedApi AutoCompleteTextView.ensureImeVisible from SearchDialog Bug: 124452405 Test: No CTS test because SearchDialog is not exposed externally. Change-Id: Iea9c0e8191992df22032cc4edaaed1509151901d --- core/java/android/app/SearchDialog.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 4a451509f5387..8493fb25b8a5f 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -47,8 +47,10 @@ import android.view.Window; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.AutoCompleteTextView; +import android.widget.Filterable; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.ListPopupWindow; import android.widget.SearchView; import android.widget.TextView; @@ -370,7 +372,10 @@ public class SearchDialog extends Dialog { updateSearchAppIcon(); updateSearchBadge(); if (isLandscapeMode(getContext())) { - mSearchAutoComplete.ensureImeVisible(true); + mSearchAutoComplete.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NEEDED); + if (mSearchAutoComplete.isDropDownAlwaysVisible() || enoughToFilter()) { + mSearchAutoComplete.showDropDown(); + } } } } @@ -381,6 +386,15 @@ public class SearchDialog extends Dialog { == Configuration.ORIENTATION_LANDSCAPE; } + private boolean enoughToFilter() { + Filterable filterableAdapter = (Filterable) mSearchAutoComplete.getAdapter(); + if (filterableAdapter == null || filterableAdapter.getFilter() == null) { + return false; + } + + return mSearchAutoComplete.enoughToFilter(); + } + /** * Update the UI according to the info in the current value of {@link #mSearchable}. */