Hides the keyboard when qsb loses focus in All apps
Bug: 80190879
Change-Id: I88da6ef7a88b9dd4fce06e4f2b4592ee6ce39195
diff --git a/src/com/android/launcher3/ExtendedEditText.java b/src/com/android/launcher3/ExtendedEditText.java
index 403c8b8..4e0f2e7 100644
--- a/src/com/android/launcher3/ExtendedEditText.java
+++ b/src/com/android/launcher3/ExtendedEditText.java
@@ -99,6 +99,10 @@
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 void dispatchBackKey() {
- UiThreadHelper.hideKeyboardAsync(getContext(), getWindowToken());
+ hideKeyboard();
if (mBackKeyListener != null) {
mBackKeyListener.onBackKey();
}
@@ -135,6 +139,6 @@
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 e83904f..dcc4554 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.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 @@
* 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 @@
mInput.addTextChangedListener(this);
mInput.setOnEditorActionListener(this);
mInput.setOnBackKeyListener(this);
+ mInput.setOnFocusChangeListener(this);
mSearchAlgorithm = searchAlgorithm;
}
@@ -123,6 +127,13 @@
return false;
}
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ if (!hasFocus) {
+ mInput.hideKeyboard();
+ }
+ }
+
/**
* Resets the search bar state.
*/