summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher/Search.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:41 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:41 -0800
commitb28e1b7d95a4a9aeae54dcac6d1a24fa612ab918 (patch)
tree84e76f294704a009453c337f6d4aea69bca5134b /src/com/android/launcher/Search.java
parent233a0136ea1fe86c61f02eb7b60dd2a9e3af4d91 (diff)
downloadandroid_packages_apps_Trebuchet-b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918.tar.gz
android_packages_apps_Trebuchet-b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918.tar.bz2
android_packages_apps_Trebuchet-b28e1b7d95a4a9aeae54dcac6d1a24fa612ab918.zip
auto import from //depot/cupcake/@137055
Diffstat (limited to 'src/com/android/launcher/Search.java')
-rw-r--r--src/com/android/launcher/Search.java36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/com/android/launcher/Search.java b/src/com/android/launcher/Search.java
index d33fd69fa..522a43262 100644
--- a/src/com/android/launcher/Search.java
+++ b/src/com/android/launcher/Search.java
@@ -57,8 +57,6 @@ import android.widget.TextView;
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 @@ public class Search extends LinearLayout implements OnClickListener, OnKeyListen
private Intent mVoiceSearchIntent;
private Rect mTempRect = new Rect();
+ private boolean mRestoreFocus = false;
/**
* Used to inflate the Workspace from XML.
@@ -170,7 +169,26 @@ public class Search extends LinearLayout implements OnClickListener, OnKeyListen
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 @@ public class Search extends LinearLayout implements OnClickListener, OnKeyListen
}
/**
+ * 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) {