diff --git a/src/com/android/launcher3/ExtendedEditText.java b/src/com/android/launcher3/ExtendedEditText.java index 403c8b8ba7..4e0f2e7446 100644 --- a/src/com/android/launcher3/ExtendedEditText.java +++ b/src/com/android/launcher3/ExtendedEditText.java @@ -99,6 +99,10 @@ public class ExtendedEditText extends EditText { mShowImeAfterFirstLayout = !showSoftInput(); } + public void hideKeyboard() { + UiThreadHelper.hideKeyboardAsync(getContext(), getWindowToken()); + } + private boolean showSoftInput() { return requestFocus() && ((InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE)) @@ -106,7 +110,7 @@ public class ExtendedEditText extends EditText { } public void dispatchBackKey() { - UiThreadHelper.hideKeyboardAsync(getContext(), getWindowToken()); + hideKeyboard(); if (mBackKeyListener != null) { mBackKeyListener.onBackKey(); } @@ -135,6 +139,6 @@ public class ExtendedEditText extends EditText { nextFocus.requestFocus(); } } - UiThreadHelper.hideKeyboardAsync(getContext(), getWindowToken()); + hideKeyboard(); } } diff --git a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java index e83904fe86..dcc45545a4 100644 --- a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java +++ b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java @@ -21,6 +21,8 @@ import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.KeyEvent; +import android.view.View; +import android.view.View.OnFocusChangeListener; import android.view.inputmethod.EditorInfo; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; @@ -37,7 +39,8 @@ import java.util.ArrayList; * An interface to a search box that AllApps can command. */ public class AllAppsSearchBarController - implements TextWatcher, OnEditorActionListener, ExtendedEditText.OnBackKeyListener { + implements TextWatcher, OnEditorActionListener, ExtendedEditText.OnBackKeyListener, + OnFocusChangeListener { protected Launcher mLauncher; protected Callbacks mCb; @@ -62,6 +65,7 @@ public class AllAppsSearchBarController mInput.addTextChangedListener(this); mInput.setOnEditorActionListener(this); mInput.setOnBackKeyListener(this); + mInput.setOnFocusChangeListener(this); mSearchAlgorithm = searchAlgorithm; } @@ -123,6 +127,13 @@ public class AllAppsSearchBarController return false; } + @Override + public void onFocusChange(View view, boolean hasFocus) { + if (!hasFocus) { + mInput.hideKeyboard(); + } + } + /** * Resets the search bar state. */