auto import from //depot/cupcake/@137055
diff --git a/src/com/android/launcher/Search.java b/src/com/android/launcher/Search.java
index d33fd69..522a432 100644
--- a/src/com/android/launcher/Search.java
+++ b/src/com/android/launcher/Search.java
@@ -57,8 +57,6 @@
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
-import java.util.List;
-
public class Search extends LinearLayout implements OnClickListener, OnKeyListener,
OnLongClickListener, TextWatcher, OnItemClickListener, OnItemSelectedListener {
@@ -81,6 +79,7 @@
private Intent mVoiceSearchIntent;
private Rect mTempRect = new Rect();
+ private boolean mRestoreFocus = false;
/**
* Used to inflate the Workspace from XML.
@@ -170,7 +169,26 @@
getContext().startActivity(launcher);
}
-
+
+ @Override
+ public void onWindowFocusChanged(boolean hasWindowFocus) {
+ if (!hasWindowFocus && hasFocus()) {
+ mRestoreFocus = true;
+ }
+
+ super.onWindowFocusChanged(hasWindowFocus);
+
+ if (hasWindowFocus && mRestoreFocus) {
+ if (isInTouchMode()) {
+ final AutoCompleteTextView searchText = mSearchText;
+ searchText.setSelectAllOnFocus(false);
+ searchText.requestFocusFromTouch();
+ searchText.setSelectAllOnFocus(true);
+ }
+ mRestoreFocus = false;
+ }
+ }
+
/**
* Implements TextWatcher (for EditText)
*/
@@ -371,6 +389,18 @@
}
/**
+ * Remove internal cursor references when detaching from window which
+ * prevents {@link Context} leaks.
+ */
+ @Override
+ public void onDetachedFromWindow() {
+ if (mSuggestionsAdapter != null) {
+ mSuggestionsAdapter.changeCursor(null);
+ mSuggestionsAdapter = null;
+ }
+ }
+
+ /**
* Implements OnItemClickListener
*/
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {